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.
Files changed (865) hide show
  1. package/.github/ISSUE_TEMPLATE/bug_report.yml +3 -1
  2. package/.github/ISSUE_TEMPLATE/documentation.yml +2 -2
  3. package/.github/ISSUE_TEMPLATE/question.yml +1 -1
  4. package/.github/PULL_REQUEST_TEMPLATE/documentation.md +1 -1
  5. package/.github/PULL_REQUEST_TEMPLATE/new_tool.md +1 -1
  6. package/.github/agents/official-docs-researcher.agent.md +56 -0
  7. package/.github/instructions/mcp-node-tests.instructions.md +12 -916
  8. package/.github/instructions/mcp-yml-tests.instructions.md +14 -742
  9. package/.github/pull_request_template.md +1 -1
  10. package/.github/skills/agent-authoring/SKILL.md +66 -0
  11. package/.github/skills/mcp-log-debugging/SKILL.md +69 -0
  12. package/.github/skills/mcp-programmatic-testing/SKILL.md +142 -0
  13. package/.github/skills/mcp-yaml-testing/SKILL.md +136 -0
  14. package/.github/skills/salesforce-developer-site-scraper/SKILL.md +102 -0
  15. package/.github/skills/salesforce-developer-site-scraper/scripts/scrape-to-markdown.js +205 -0
  16. package/.github/skills/salesforce-help-site-scraper/SKILL.md +84 -0
  17. package/.github/skills/salesforce-help-site-scraper/scripts/scrape-help-to-markdown.js +212 -0
  18. package/.github/skills/skill-authoring/SKILL.md +228 -0
  19. package/.github/skills/skill-authoring/references/PATTERNS.md +384 -0
  20. package/.github/workflows/ci.yml +3 -3
  21. package/.github/workflows/deploy-pages.yml +9 -19
  22. package/.github/workflows/publish.yml +5 -2
  23. package/.github/workflows/update-docs.yml +1 -1
  24. package/AGENTS.md +140 -286
  25. package/CONTRIBUTING.md +10 -22
  26. package/README.md +48 -16
  27. package/ai-instructions/{github-copilot/copilot-instructions.md → AGENTS.md} +99 -127
  28. package/ai-instructions/skills/sfcc-caching/SKILL.md +89 -0
  29. package/{dist/docs/best-practices/cartridge_creation.md → ai-instructions/skills/sfcc-cartridge-development/SKILL.md} +31 -7
  30. package/ai-instructions/skills/sfcc-forms-development/SKILL.md +261 -0
  31. package/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +143 -0
  32. package/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +127 -0
  33. package/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +95 -0
  34. package/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +39 -0
  35. package/ai-instructions/skills/sfcc-isml-development/SKILL.md +370 -0
  36. package/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +116 -0
  37. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +50 -0
  38. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +45 -0
  39. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +85 -0
  40. package/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +63 -0
  41. package/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +159 -0
  42. package/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +13 -0
  43. package/ai-instructions/skills/sfcc-job-development/SKILL.md +334 -0
  44. package/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +393 -0
  45. package/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +271 -0
  46. package/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +257 -0
  47. package/ai-instructions/skills/sfcc-localization/SKILL.md +92 -0
  48. package/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +63 -0
  49. package/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +29 -0
  50. package/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +33 -0
  51. package/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +41 -0
  52. package/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +35 -0
  53. package/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +740 -0
  54. package/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +25 -0
  55. package/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +67 -0
  56. package/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +23 -0
  57. package/ai-instructions/skills/sfcc-localization/references/TESTING.md +21 -0
  58. package/{docs/best-practices/localserviceregistry.md → ai-instructions/skills/sfcc-localserviceregistry/SKILL.md} +65 -31
  59. package/ai-instructions/skills/sfcc-logging/SKILL.md +352 -0
  60. package/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +282 -0
  61. package/{docs/best-practices/ocapi_hooks.md → ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md} +51 -16
  62. package/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +108 -0
  63. package/ai-instructions/skills/sfcc-page-designer/SKILL.md +353 -0
  64. package/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +436 -0
  65. package/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +322 -0
  66. package/{dist/docs/best-practices/performance.md → ai-instructions/skills/sfcc-performance/SKILL.md} +35 -3
  67. package/ai-instructions/skills/sfcc-platform-limits/SKILL.md +89 -0
  68. package/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +237 -0
  69. package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +214 -0
  70. package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +253 -0
  71. package/{docs/best-practices/scapi_hooks.md → ai-instructions/skills/sfcc-scapi-hooks/SKILL.md} +44 -17
  72. package/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +380 -0
  73. package/{docs/best-practices/security.md → ai-instructions/skills/sfcc-security/SKILL.md} +12 -3
  74. package/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +270 -0
  75. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +285 -0
  76. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +206 -0
  77. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +165 -0
  78. package/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +185 -0
  79. package/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +347 -0
  80. package/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +257 -0
  81. package/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +193 -0
  82. package/{dist/docs/best-practices/sfra_controllers.md → ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md} +0 -670
  83. package/ai-instructions/skills/sfcc-sfra-models/SKILL.md +322 -0
  84. package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +530 -0
  85. package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +234 -0
  86. package/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +417 -0
  87. package/{dist/docs/best-practices/sfra_scss.md → ai-instructions/skills/sfcc-sfra-scss/SKILL.md} +5 -0
  88. package/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +111 -0
  89. package/dist/ai-instructions/AGENTS.md +628 -0
  90. package/dist/ai-instructions/skills/sfcc-caching/SKILL.md +89 -0
  91. package/{docs/best-practices/cartridge_creation.md → dist/ai-instructions/skills/sfcc-cartridge-development/SKILL.md} +31 -7
  92. package/dist/ai-instructions/skills/sfcc-forms-development/SKILL.md +261 -0
  93. package/dist/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +143 -0
  94. package/dist/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +127 -0
  95. package/dist/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +95 -0
  96. package/dist/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +39 -0
  97. package/dist/ai-instructions/skills/sfcc-isml-development/SKILL.md +370 -0
  98. package/dist/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +116 -0
  99. package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +50 -0
  100. package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +45 -0
  101. package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +85 -0
  102. package/dist/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +63 -0
  103. package/dist/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +159 -0
  104. package/dist/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +13 -0
  105. package/dist/ai-instructions/skills/sfcc-job-development/SKILL.md +334 -0
  106. package/dist/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +393 -0
  107. package/dist/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +271 -0
  108. package/dist/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +257 -0
  109. package/dist/ai-instructions/skills/sfcc-localization/SKILL.md +92 -0
  110. package/dist/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +63 -0
  111. package/dist/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +29 -0
  112. package/dist/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +33 -0
  113. package/dist/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +41 -0
  114. package/dist/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +35 -0
  115. package/dist/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +740 -0
  116. package/dist/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +25 -0
  117. package/dist/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +67 -0
  118. package/dist/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +23 -0
  119. package/dist/ai-instructions/skills/sfcc-localization/references/TESTING.md +21 -0
  120. package/dist/{docs/best-practices/localserviceregistry.md → ai-instructions/skills/sfcc-localserviceregistry/SKILL.md} +65 -31
  121. package/dist/ai-instructions/skills/sfcc-logging/SKILL.md +352 -0
  122. package/dist/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +282 -0
  123. package/dist/{docs/best-practices/ocapi_hooks.md → ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md} +51 -16
  124. package/dist/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +108 -0
  125. package/dist/ai-instructions/skills/sfcc-page-designer/SKILL.md +353 -0
  126. package/dist/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +436 -0
  127. package/dist/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +322 -0
  128. package/{docs/best-practices/performance.md → dist/ai-instructions/skills/sfcc-performance/SKILL.md} +35 -3
  129. package/dist/ai-instructions/skills/sfcc-platform-limits/SKILL.md +89 -0
  130. package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +237 -0
  131. package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +214 -0
  132. package/dist/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +253 -0
  133. package/dist/{docs/best-practices/scapi_hooks.md → ai-instructions/skills/sfcc-scapi-hooks/SKILL.md} +44 -17
  134. package/dist/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +380 -0
  135. package/dist/{docs/best-practices/security.md → ai-instructions/skills/sfcc-security/SKILL.md} +12 -3
  136. package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +270 -0
  137. package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +285 -0
  138. package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +206 -0
  139. package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +165 -0
  140. package/dist/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +185 -0
  141. package/dist/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +347 -0
  142. package/dist/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +257 -0
  143. package/dist/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +193 -0
  144. package/{docs/best-practices/sfra_controllers.md → dist/ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md} +0 -670
  145. package/dist/ai-instructions/skills/sfcc-sfra-models/SKILL.md +322 -0
  146. package/dist/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +530 -0
  147. package/dist/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +234 -0
  148. package/dist/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +417 -0
  149. package/{docs/best-practices/sfra_scss.md → dist/ai-instructions/skills/sfcc-sfra-scss/SKILL.md} +5 -0
  150. package/dist/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +111 -0
  151. package/dist/clients/agent-instructions-client.d.ts +66 -0
  152. package/dist/clients/agent-instructions-client.d.ts.map +1 -0
  153. package/dist/clients/agent-instructions-client.js +277 -0
  154. package/dist/clients/agent-instructions-client.js.map +1 -0
  155. package/dist/clients/base/abstract-documentation-client.d.ts +146 -0
  156. package/dist/clients/base/abstract-documentation-client.d.ts.map +1 -0
  157. package/dist/clients/base/abstract-documentation-client.js +265 -0
  158. package/dist/clients/base/abstract-documentation-client.js.map +1 -0
  159. package/dist/clients/base/oauth-token.d.ts +18 -0
  160. package/dist/clients/base/oauth-token.d.ts.map +1 -1
  161. package/dist/clients/base/oauth-token.js +45 -2
  162. package/dist/clients/base/oauth-token.js.map +1 -1
  163. package/dist/clients/cartridge/cartridge-generation-client.d.ts +59 -0
  164. package/dist/clients/cartridge/cartridge-generation-client.d.ts.map +1 -0
  165. package/dist/clients/cartridge/cartridge-generation-client.js +224 -0
  166. package/dist/clients/cartridge/cartridge-generation-client.js.map +1 -0
  167. package/dist/clients/cartridge/cartridge-structure.d.ts +17 -0
  168. package/dist/clients/cartridge/cartridge-structure.d.ts.map +1 -0
  169. package/dist/clients/cartridge/cartridge-structure.js +33 -0
  170. package/dist/clients/cartridge/cartridge-structure.js.map +1 -0
  171. package/dist/clients/cartridge/cartridge-templates.d.ts +22 -0
  172. package/dist/clients/cartridge/cartridge-templates.d.ts.map +1 -0
  173. package/dist/clients/cartridge/cartridge-templates.js +225 -0
  174. package/dist/clients/cartridge/cartridge-templates.js.map +1 -0
  175. package/dist/clients/cartridge/index.d.ts +7 -0
  176. package/dist/clients/cartridge/index.d.ts.map +1 -0
  177. package/dist/clients/cartridge/index.js +7 -0
  178. package/dist/clients/cartridge/index.js.map +1 -0
  179. package/dist/clients/docs/documentation-scanner.d.ts +5 -2
  180. package/dist/clients/docs/documentation-scanner.d.ts.map +1 -1
  181. package/dist/clients/docs/documentation-scanner.js +38 -23
  182. package/dist/clients/docs/documentation-scanner.js.map +1 -1
  183. package/dist/clients/docs-client.d.ts +13 -4
  184. package/dist/clients/docs-client.d.ts.map +1 -1
  185. package/dist/clients/docs-client.js +44 -11
  186. package/dist/clients/docs-client.js.map +1 -1
  187. package/dist/clients/isml-client.d.ts +71 -0
  188. package/dist/clients/isml-client.d.ts.map +1 -0
  189. package/dist/clients/isml-client.js +252 -0
  190. package/dist/clients/isml-client.js.map +1 -0
  191. package/dist/clients/ocapi/code-versions-client.d.ts.map +1 -1
  192. package/dist/clients/ocapi/code-versions-client.js +6 -1
  193. package/dist/clients/ocapi/code-versions-client.js.map +1 -1
  194. package/dist/clients/ocapi-client.d.ts +9 -101
  195. package/dist/clients/ocapi-client.d.ts.map +1 -1
  196. package/dist/clients/ocapi-client.js +11 -93
  197. package/dist/clients/ocapi-client.js.map +1 -1
  198. package/dist/clients/script-debugger/index.d.ts +5 -0
  199. package/dist/clients/script-debugger/index.d.ts.map +1 -0
  200. package/dist/clients/script-debugger/index.js +5 -0
  201. package/dist/clients/script-debugger/index.js.map +1 -0
  202. package/dist/clients/script-debugger/script-debugger-client.d.ts +147 -0
  203. package/dist/clients/script-debugger/script-debugger-client.d.ts.map +1 -0
  204. package/dist/clients/script-debugger/script-debugger-client.js +591 -0
  205. package/dist/clients/script-debugger/script-debugger-client.js.map +1 -0
  206. package/dist/clients/sfra-client.d.ts +13 -62
  207. package/dist/clients/sfra-client.d.ts.map +1 -1
  208. package/dist/clients/sfra-client.js +105 -326
  209. package/dist/clients/sfra-client.js.map +1 -1
  210. package/dist/config/configuration-factory.d.ts +1 -1
  211. package/dist/config/configuration-factory.d.ts.map +1 -1
  212. package/dist/config/configuration-factory.js +5 -1
  213. package/dist/config/configuration-factory.js.map +1 -1
  214. package/dist/config/dw-json-loader.d.ts +7 -0
  215. package/dist/config/dw-json-loader.d.ts.map +1 -1
  216. package/dist/config/dw-json-loader.js +92 -15
  217. package/dist/config/dw-json-loader.js.map +1 -1
  218. package/dist/config/workspace-roots.d.ts +143 -0
  219. package/dist/config/workspace-roots.d.ts.map +1 -0
  220. package/dist/config/workspace-roots.js +448 -0
  221. package/dist/config/workspace-roots.js.map +1 -0
  222. package/dist/constants/index.d.ts +1 -0
  223. package/dist/constants/index.d.ts.map +1 -0
  224. package/dist/constants/index.js +3 -0
  225. package/dist/constants/index.js.map +1 -0
  226. package/dist/core/handlers/abstract-client-handler.d.ts +52 -0
  227. package/dist/core/handlers/abstract-client-handler.d.ts.map +1 -0
  228. package/dist/core/handlers/abstract-client-handler.js +51 -0
  229. package/dist/core/handlers/abstract-client-handler.js.map +1 -0
  230. package/dist/core/handlers/agent-instructions-handler.d.ts +17 -0
  231. package/dist/core/handlers/agent-instructions-handler.d.ts.map +1 -0
  232. package/dist/core/handlers/agent-instructions-handler.js +38 -0
  233. package/dist/core/handlers/agent-instructions-handler.js.map +1 -0
  234. package/dist/core/handlers/base-handler.d.ts +3 -68
  235. package/dist/core/handlers/base-handler.d.ts.map +1 -1
  236. package/dist/core/handlers/base-handler.js +11 -84
  237. package/dist/core/handlers/base-handler.js.map +1 -1
  238. package/dist/core/handlers/cartridge-handler.d.ts +10 -11
  239. package/dist/core/handlers/cartridge-handler.d.ts.map +1 -1
  240. package/dist/core/handlers/cartridge-handler.js +10 -28
  241. package/dist/core/handlers/cartridge-handler.js.map +1 -1
  242. package/dist/core/handlers/client-factory.d.ts +12 -2
  243. package/dist/core/handlers/client-factory.d.ts.map +1 -1
  244. package/dist/core/handlers/client-factory.js +28 -1
  245. package/dist/core/handlers/client-factory.js.map +1 -1
  246. package/dist/core/handlers/code-version-handler.d.ts +11 -11
  247. package/dist/core/handlers/code-version-handler.d.ts.map +1 -1
  248. package/dist/core/handlers/code-version-handler.js +13 -27
  249. package/dist/core/handlers/code-version-handler.js.map +1 -1
  250. package/dist/core/handlers/docs-handler.d.ts +6 -12
  251. package/dist/core/handlers/docs-handler.d.ts.map +1 -1
  252. package/dist/core/handlers/docs-handler.js +11 -36
  253. package/dist/core/handlers/docs-handler.js.map +1 -1
  254. package/dist/core/handlers/isml-handler.d.ts +11 -0
  255. package/dist/core/handlers/isml-handler.d.ts.map +1 -0
  256. package/dist/core/handlers/isml-handler.js +18 -0
  257. package/dist/core/handlers/isml-handler.js.map +1 -0
  258. package/dist/core/handlers/job-log-handler.d.ts +8 -7
  259. package/dist/core/handlers/job-log-handler.d.ts.map +1 -1
  260. package/dist/core/handlers/job-log-handler.js +14 -5
  261. package/dist/core/handlers/job-log-handler.js.map +1 -1
  262. package/dist/core/handlers/log-handler.d.ts +8 -7
  263. package/dist/core/handlers/log-handler.d.ts.map +1 -1
  264. package/dist/core/handlers/log-handler.js +14 -5
  265. package/dist/core/handlers/log-handler.js.map +1 -1
  266. package/dist/core/handlers/script-debugger-handler.d.ts +18 -0
  267. package/dist/core/handlers/script-debugger-handler.d.ts.map +1 -0
  268. package/dist/core/handlers/script-debugger-handler.js +31 -0
  269. package/dist/core/handlers/script-debugger-handler.js.map +1 -0
  270. package/dist/core/handlers/sfra-handler.d.ts +6 -12
  271. package/dist/core/handlers/sfra-handler.d.ts.map +1 -1
  272. package/dist/core/handlers/sfra-handler.js +11 -36
  273. package/dist/core/handlers/sfra-handler.js.map +1 -1
  274. package/dist/core/handlers/simple-client-handler.d.ts +41 -0
  275. package/dist/core/handlers/simple-client-handler.d.ts.map +1 -0
  276. package/dist/core/handlers/simple-client-handler.js +49 -0
  277. package/dist/core/handlers/simple-client-handler.js.map +1 -0
  278. package/dist/core/handlers/system-object-handler.d.ts +11 -11
  279. package/dist/core/handlers/system-object-handler.d.ts.map +1 -1
  280. package/dist/core/handlers/system-object-handler.js +13 -27
  281. package/dist/core/handlers/system-object-handler.js.map +1 -1
  282. package/dist/core/handlers/validation-helpers.d.ts +22 -24
  283. package/dist/core/handlers/validation-helpers.d.ts.map +1 -1
  284. package/dist/core/handlers/validation-helpers.js +89 -39
  285. package/dist/core/handlers/validation-helpers.js.map +1 -1
  286. package/dist/core/instruction-advisor.d.ts +28 -0
  287. package/dist/core/instruction-advisor.d.ts.map +1 -0
  288. package/dist/core/instruction-advisor.js +114 -0
  289. package/dist/core/instruction-advisor.js.map +1 -0
  290. package/dist/core/server.d.ts +25 -0
  291. package/dist/core/server.d.ts.map +1 -1
  292. package/dist/core/server.js +151 -11
  293. package/dist/core/server.js.map +1 -1
  294. package/dist/core/tool-definitions.d.ts +6 -854
  295. package/dist/core/tool-definitions.d.ts.map +1 -1
  296. package/dist/core/tool-definitions.js +8 -1064
  297. package/dist/core/tool-definitions.js.map +1 -1
  298. package/dist/core/tool-schemas/agent-instruction-tools.d.ts +77 -0
  299. package/dist/core/tool-schemas/agent-instruction-tools.d.ts.map +1 -0
  300. package/dist/core/tool-schemas/agent-instruction-tools.js +72 -0
  301. package/dist/core/tool-schemas/agent-instruction-tools.js.map +1 -0
  302. package/dist/core/tool-schemas/cartridge-tools.d.ts +27 -0
  303. package/dist/core/tool-schemas/cartridge-tools.d.ts.map +1 -0
  304. package/dist/core/tool-schemas/cartridge-tools.js +29 -0
  305. package/dist/core/tool-schemas/cartridge-tools.js.map +1 -0
  306. package/dist/core/tool-schemas/code-version-tools.d.ts +28 -0
  307. package/dist/core/tool-schemas/code-version-tools.d.ts.map +1 -0
  308. package/dist/core/tool-schemas/code-version-tools.js +28 -0
  309. package/dist/core/tool-schemas/code-version-tools.js.map +1 -0
  310. package/dist/core/tool-schemas/documentation-tools.d.ts +139 -0
  311. package/dist/core/tool-schemas/documentation-tools.d.ts.map +1 -0
  312. package/dist/core/tool-schemas/documentation-tools.js +104 -0
  313. package/dist/core/tool-schemas/documentation-tools.js.map +1 -0
  314. package/dist/core/tool-schemas/index.d.ts +17 -0
  315. package/dist/core/tool-schemas/index.d.ts.map +1 -0
  316. package/dist/core/tool-schemas/index.js +19 -0
  317. package/dist/core/tool-schemas/index.js.map +1 -0
  318. package/dist/core/tool-schemas/isml-tools.d.ts +98 -0
  319. package/dist/core/tool-schemas/isml-tools.d.ts.map +1 -0
  320. package/dist/core/tool-schemas/isml-tools.js +89 -0
  321. package/dist/core/tool-schemas/isml-tools.js.map +1 -0
  322. package/dist/core/tool-schemas/log-tools.d.ts +221 -0
  323. package/dist/core/tool-schemas/log-tools.d.ts.map +1 -0
  324. package/dist/core/tool-schemas/log-tools.js +180 -0
  325. package/dist/core/tool-schemas/log-tools.js.map +1 -0
  326. package/dist/core/tool-schemas/script-debugger-tools.d.ts +44 -0
  327. package/dist/core/tool-schemas/script-debugger-tools.d.ts.map +1 -0
  328. package/dist/core/tool-schemas/script-debugger-tools.js +83 -0
  329. package/dist/core/tool-schemas/script-debugger-tools.js.map +1 -0
  330. package/dist/core/tool-schemas/sfra-tools.d.ts +63 -0
  331. package/dist/core/tool-schemas/sfra-tools.d.ts.map +1 -0
  332. package/dist/core/tool-schemas/sfra-tools.js +65 -0
  333. package/dist/core/tool-schemas/sfra-tools.js.map +1 -0
  334. package/dist/core/tool-schemas/shared-schemas.d.ts +350 -0
  335. package/dist/core/tool-schemas/shared-schemas.d.ts.map +1 -0
  336. package/dist/core/tool-schemas/shared-schemas.js +153 -0
  337. package/dist/core/tool-schemas/shared-schemas.js.map +1 -0
  338. package/dist/core/tool-schemas/system-object-tools.d.ts +511 -0
  339. package/dist/core/tool-schemas/system-object-tools.d.ts.map +1 -0
  340. package/dist/core/tool-schemas/system-object-tools.js +126 -0
  341. package/dist/core/tool-schemas/system-object-tools.js.map +1 -0
  342. package/dist/docs/dw_net/HTTPClient.md +46 -2
  343. package/dist/docs/dw_net/HTTPClientLoggingConfig.md +296 -0
  344. package/dist/docs/dw_order/Basket.md +7 -7
  345. package/dist/docs/dw_order/BasketMgr.md +22 -6
  346. package/dist/docs/dw_order.hooks/BasketMergeHooks.md +42 -0
  347. package/dist/docs/dw_svc/ServiceCallback.md +2 -2
  348. package/dist/docs/isml/isactivedatacontext.md +382 -0
  349. package/dist/docs/isml/isactivedatahead.md +566 -0
  350. package/dist/docs/isml/isanalyticsoff.md +537 -0
  351. package/dist/docs/isml/isapplepay.md +667 -0
  352. package/dist/docs/isml/isbreak.md +687 -0
  353. package/dist/docs/isml/isbuynow.md +682 -0
  354. package/dist/docs/isml/iscache.md +802 -0
  355. package/dist/docs/isml/iscomment.md +794 -0
  356. package/dist/docs/isml/iscomponent.md +797 -0
  357. package/dist/docs/isml/iscontent.md +594 -0
  358. package/dist/docs/isml/iscontinue.md +563 -0
  359. package/dist/docs/isml/iscookie.md +798 -0
  360. package/dist/docs/isml/isdecorate.md +818 -0
  361. package/dist/docs/isml/isif.md +737 -0
  362. package/dist/docs/isml/isinclude.md +874 -0
  363. package/dist/docs/isml/isloop.md +377 -0
  364. package/dist/docs/isml/ismodule.md +844 -0
  365. package/dist/docs/isml/isnext.md +672 -0
  366. package/dist/docs/isml/isobject.md +760 -0
  367. package/dist/docs/isml/ispayment.md +577 -0
  368. package/dist/docs/isml/ispaymentmessages.md +664 -0
  369. package/dist/docs/isml/isprint.md +875 -0
  370. package/dist/docs/isml/isredirect.md +716 -0
  371. package/dist/docs/isml/isremove.md +725 -0
  372. package/dist/docs/isml/isreplace.md +783 -0
  373. package/dist/docs/isml/isscript.md +859 -0
  374. package/dist/docs/isml/isselect.md +908 -0
  375. package/dist/docs/isml/isset.md +585 -0
  376. package/dist/docs/isml/isslot.md +824 -0
  377. package/dist/docs/isml/isstatus.md +711 -0
  378. package/dist/main.d.ts +16 -0
  379. package/dist/main.d.ts.map +1 -1
  380. package/dist/main.js +60 -28
  381. package/dist/main.js.map +1 -1
  382. package/dist/services/index.d.ts +4 -2
  383. package/dist/services/index.d.ts.map +1 -1
  384. package/dist/services/index.js +2 -2
  385. package/dist/services/index.js.map +1 -1
  386. package/dist/tool-configs/agent-instructions-tool-config.d.ts +6 -0
  387. package/dist/tool-configs/agent-instructions-tool-config.d.ts.map +1 -0
  388. package/dist/tool-configs/agent-instructions-tool-config.js +74 -0
  389. package/dist/tool-configs/agent-instructions-tool-config.js.map +1 -0
  390. package/dist/tool-configs/code-version-tool-config.d.ts.map +1 -1
  391. package/dist/tool-configs/code-version-tool-config.js +0 -5
  392. package/dist/tool-configs/code-version-tool-config.js.map +1 -1
  393. package/dist/tool-configs/docs-tool-config.d.ts.map +1 -1
  394. package/dist/tool-configs/docs-tool-config.js +0 -7
  395. package/dist/tool-configs/docs-tool-config.js.map +1 -1
  396. package/dist/tool-configs/isml-tool-config.d.ts +11 -0
  397. package/dist/tool-configs/isml-tool-config.d.ts.map +1 -0
  398. package/dist/tool-configs/isml-tool-config.js +77 -0
  399. package/dist/tool-configs/isml-tool-config.js.map +1 -0
  400. package/dist/tool-configs/job-log-tool-config.d.ts +1 -2
  401. package/dist/tool-configs/job-log-tool-config.d.ts.map +1 -1
  402. package/dist/tool-configs/job-log-tool-config.js +11 -15
  403. package/dist/tool-configs/job-log-tool-config.js.map +1 -1
  404. package/dist/tool-configs/log-tool-config.d.ts +1 -2
  405. package/dist/tool-configs/log-tool-config.d.ts.map +1 -1
  406. package/dist/tool-configs/log-tool-config.js +35 -51
  407. package/dist/tool-configs/log-tool-config.js.map +1 -1
  408. package/dist/tool-configs/script-debugger-tool-config.d.ts +11 -0
  409. package/dist/tool-configs/script-debugger-tool-config.d.ts.map +1 -0
  410. package/dist/tool-configs/script-debugger-tool-config.js +35 -0
  411. package/dist/tool-configs/script-debugger-tool-config.js.map +1 -0
  412. package/dist/tool-configs/sfra-tool-config.d.ts.map +1 -1
  413. package/dist/tool-configs/sfra-tool-config.js +0 -11
  414. package/dist/tool-configs/sfra-tool-config.js.map +1 -1
  415. package/dist/tool-configs/system-object-tool-config.d.ts.map +1 -1
  416. package/dist/tool-configs/system-object-tool-config.js +0 -5
  417. package/dist/tool-configs/system-object-tool-config.js.map +1 -1
  418. package/dist/types/types.d.ts +2 -0
  419. package/dist/types/types.d.ts.map +1 -1
  420. package/dist/utils/cache.d.ts +12 -10
  421. package/dist/utils/cache.d.ts.map +1 -1
  422. package/dist/utils/cache.js +47 -47
  423. package/dist/utils/cache.js.map +1 -1
  424. package/dist/utils/category-utils.d.ts +31 -0
  425. package/dist/utils/category-utils.d.ts.map +1 -0
  426. package/dist/utils/category-utils.js +45 -0
  427. package/dist/utils/category-utils.js.map +1 -0
  428. package/dist/utils/log-tool-constants.d.ts +16 -13
  429. package/dist/utils/log-tool-constants.d.ts.map +1 -1
  430. package/dist/utils/log-tool-constants.js +10 -11
  431. package/dist/utils/log-tool-constants.js.map +1 -1
  432. package/dist/utils/logger.d.ts +11 -0
  433. package/dist/utils/logger.d.ts.map +1 -1
  434. package/dist/utils/logger.js +35 -1
  435. package/dist/utils/logger.js.map +1 -1
  436. package/dist/utils/markdown-utils.d.ts +60 -0
  437. package/dist/utils/markdown-utils.d.ts.map +1 -0
  438. package/dist/utils/markdown-utils.js +206 -0
  439. package/dist/utils/markdown-utils.js.map +1 -0
  440. package/dist/utils/path-resolver.d.ts +12 -4
  441. package/dist/utils/path-resolver.d.ts.map +1 -1
  442. package/dist/utils/path-resolver.js +22 -8
  443. package/dist/utils/path-resolver.js.map +1 -1
  444. package/dist/utils/path-validation.d.ts +40 -0
  445. package/dist/utils/path-validation.d.ts.map +1 -0
  446. package/dist/utils/path-validation.js +84 -0
  447. package/dist/utils/path-validation.js.map +1 -0
  448. package/docs/dw_net/HTTPClient.md +46 -2
  449. package/docs/dw_net/HTTPClientLoggingConfig.md +296 -0
  450. package/docs/dw_order/Basket.md +7 -7
  451. package/docs/dw_order/BasketMgr.md +22 -6
  452. package/docs/dw_order.hooks/BasketMergeHooks.md +42 -0
  453. package/docs/dw_svc/ServiceCallback.md +2 -2
  454. package/docs/isml/isactivedatacontext.md +382 -0
  455. package/docs/isml/isactivedatahead.md +566 -0
  456. package/docs/isml/isanalyticsoff.md +537 -0
  457. package/docs/isml/isapplepay.md +667 -0
  458. package/docs/isml/isbreak.md +687 -0
  459. package/docs/isml/isbuynow.md +682 -0
  460. package/docs/isml/iscache.md +802 -0
  461. package/docs/isml/iscomment.md +794 -0
  462. package/docs/isml/iscomponent.md +797 -0
  463. package/docs/isml/iscontent.md +594 -0
  464. package/docs/isml/iscontinue.md +563 -0
  465. package/docs/isml/iscookie.md +798 -0
  466. package/docs/isml/isdecorate.md +818 -0
  467. package/docs/isml/isif.md +737 -0
  468. package/docs/isml/isinclude.md +874 -0
  469. package/docs/isml/isloop.md +377 -0
  470. package/docs/isml/ismodule.md +844 -0
  471. package/docs/isml/isnext.md +672 -0
  472. package/docs/isml/isobject.md +760 -0
  473. package/docs/isml/ispayment.md +577 -0
  474. package/docs/isml/ispaymentmessages.md +664 -0
  475. package/docs/isml/isprint.md +875 -0
  476. package/docs/isml/isredirect.md +716 -0
  477. package/docs/isml/isremove.md +725 -0
  478. package/docs/isml/isreplace.md +783 -0
  479. package/docs/isml/isscript.md +859 -0
  480. package/docs/isml/isselect.md +908 -0
  481. package/docs/isml/isset.md +585 -0
  482. package/docs/isml/isslot.md +824 -0
  483. package/docs/isml/isstatus.md +711 -0
  484. package/docs-site-v2/.vitepress/config.mts +190 -0
  485. package/docs-site-v2/.vitepress/theme/components/AssistantTabs.vue +96 -0
  486. package/docs-site-v2/.vitepress/theme/components/Callout.vue +10 -0
  487. package/docs-site-v2/.vitepress/theme/components/Collapsible.vue +14 -0
  488. package/docs-site-v2/.vitepress/theme/components/DwJsonBuilder.vue +82 -0
  489. package/docs-site-v2/.vitepress/theme/components/HomeSections.vue +552 -0
  490. package/docs-site-v2/.vitepress/theme/components/InstructionFilesTabs.vue +87 -0
  491. package/docs-site-v2/.vitepress/theme/components/ModeTabs.vue +70 -0
  492. package/docs-site-v2/.vitepress/theme/components/NewcomerCTA.vue +14 -0
  493. package/docs-site-v2/.vitepress/theme/components/QuickStartCards.vue +20 -0
  494. package/docs-site-v2/.vitepress/theme/components/QuickStartHero.vue +20 -0
  495. package/docs-site-v2/.vitepress/theme/components/SkillsList.vue +48 -0
  496. package/docs-site-v2/.vitepress/theme/components/ToolExplorer.vue +85 -0
  497. package/docs-site-v2/.vitepress/theme/custom.css +1373 -0
  498. package/docs-site-v2/.vitepress/theme/index.ts +39 -0
  499. package/docs-site-v2/data/skills.ts +147 -0
  500. package/docs-site-v2/data/tools.ts +490 -0
  501. package/docs-site-v2/development/index.md +151 -0
  502. package/docs-site-v2/examples/index.md +333 -0
  503. package/docs-site-v2/features/index.md +144 -0
  504. package/docs-site-v2/guide/ai-interfaces.md +58 -0
  505. package/docs-site-v2/guide/configuration.md +208 -0
  506. package/docs-site-v2/guide/index.md +50 -0
  507. package/docs-site-v2/index.md +32 -0
  508. package/docs-site-v2/package-lock.json +2511 -0
  509. package/docs-site-v2/package.json +15 -0
  510. package/docs-site-v2/public/android-chrome-192x192.png +0 -0
  511. package/docs-site-v2/public/android-chrome-512x512.png +0 -0
  512. package/docs-site-v2/public/apple-touch-icon.png +0 -0
  513. package/docs-site-v2/public/favicon-16x16.png +0 -0
  514. package/docs-site-v2/public/favicon-32x32.png +0 -0
  515. package/docs-site-v2/public/favicon.ico +0 -0
  516. package/docs-site-v2/public/index.css +4174 -0
  517. package/docs-site-v2/public/llms.txt +44 -0
  518. package/docs-site-v2/public/logo-dark.svg +8 -0
  519. package/docs-site-v2/public/logo.svg +8 -0
  520. package/{docs-site → docs-site-v2}/public/robots.txt +1 -6
  521. package/{docs-site → docs-site-v2}/public/site.webmanifest +1 -1
  522. package/{docs-site → docs-site-v2}/public/sitemap.xml +33 -12
  523. package/docs-site-v2/script-debugger/index.md +105 -0
  524. package/docs-site-v2/scripts/generate-llms.js +71 -0
  525. package/docs-site-v2/scripts/generate-sitemap.js +97 -0
  526. package/docs-site-v2/security/index.md +115 -0
  527. package/docs-site-v2/skills/index.md +40 -0
  528. package/docs-site-v2/tools/index.md +36 -0
  529. package/docs-site-v2/troubleshooting/index.md +204 -0
  530. package/eslint.config.js +3 -1
  531. package/memories/repo/docs-site-v2-build.json +11 -0
  532. package/package.json +18 -14
  533. package/scripts/validate-server-json.js +68 -0
  534. package/server.json +4 -6
  535. package/src/clients/agent-instructions-client.ts +370 -0
  536. package/src/clients/base/abstract-documentation-client.ts +405 -0
  537. package/src/clients/base/oauth-token.ts +52 -2
  538. package/src/clients/cartridge/cartridge-generation-client.ts +302 -0
  539. package/src/clients/cartridge/cartridge-structure.ts +37 -0
  540. package/src/clients/cartridge/cartridge-templates.ts +246 -0
  541. package/src/clients/cartridge/index.ts +6 -0
  542. package/src/clients/docs/documentation-scanner.ts +44 -28
  543. package/src/clients/docs-client.ts +54 -14
  544. package/src/clients/isml-client.ts +353 -0
  545. package/src/clients/ocapi/code-versions-client.ts +7 -1
  546. package/src/clients/ocapi-client.ts +11 -166
  547. package/src/clients/script-debugger/index.ts +5 -0
  548. package/src/clients/script-debugger/script-debugger-client.ts +754 -0
  549. package/src/clients/sfra-client.ts +134 -397
  550. package/src/config/configuration-factory.ts +6 -1
  551. package/src/config/dw-json-loader.ts +96 -15
  552. package/src/config/workspace-roots.ts +540 -0
  553. package/src/constants/index.ts +1 -0
  554. package/src/core/handlers/abstract-client-handler.ts +85 -0
  555. package/src/core/handlers/agent-instructions-handler.ts +48 -0
  556. package/src/core/handlers/base-handler.ts +17 -127
  557. package/src/core/handlers/cartridge-handler.ts +13 -33
  558. package/src/core/handlers/client-factory.ts +32 -2
  559. package/src/core/handlers/code-version-handler.ts +17 -32
  560. package/src/core/handlers/docs-handler.ts +12 -44
  561. package/src/core/handlers/isml-handler.ts +19 -0
  562. package/src/core/handlers/job-log-handler.ts +19 -8
  563. package/src/core/handlers/log-handler.ts +19 -8
  564. package/src/core/handlers/script-debugger-handler.ts +46 -0
  565. package/src/core/handlers/sfra-handler.ts +12 -44
  566. package/src/core/handlers/simple-client-handler.ts +78 -0
  567. package/src/core/handlers/system-object-handler.ts +17 -32
  568. package/src/core/handlers/validation-helpers.ts +87 -47
  569. package/src/core/instruction-advisor.ts +122 -0
  570. package/src/core/server.ts +178 -13
  571. package/src/core/tool-definitions.ts +25 -1071
  572. package/src/core/tool-schemas/agent-instruction-tools.ts +72 -0
  573. package/src/core/tool-schemas/cartridge-tools.ts +29 -0
  574. package/src/core/tool-schemas/code-version-tools.ts +28 -0
  575. package/src/core/tool-schemas/documentation-tools.ts +104 -0
  576. package/src/core/tool-schemas/index.ts +27 -0
  577. package/src/core/tool-schemas/isml-tools.ts +89 -0
  578. package/src/core/tool-schemas/log-tools.ts +196 -0
  579. package/src/core/tool-schemas/script-debugger-tools.ts +83 -0
  580. package/src/core/tool-schemas/sfra-tools.ts +65 -0
  581. package/src/core/tool-schemas/shared-schemas.ts +158 -0
  582. package/src/core/tool-schemas/system-object-tools.ts +127 -0
  583. package/src/main.ts +63 -30
  584. package/src/services/index.ts +4 -10
  585. package/src/tool-configs/agent-instructions-tool-config.ts +83 -0
  586. package/src/tool-configs/cartridge-tool-config.ts +1 -1
  587. package/src/tool-configs/code-version-tool-config.ts +0 -5
  588. package/src/tool-configs/docs-tool-config.ts +0 -7
  589. package/src/tool-configs/isml-tool-config.ts +87 -0
  590. package/src/tool-configs/job-log-tool-config.ts +18 -17
  591. package/src/tool-configs/log-tool-config.ts +49 -64
  592. package/src/tool-configs/script-debugger-tool-config.ts +69 -0
  593. package/src/tool-configs/sfra-tool-config.ts +0 -11
  594. package/src/tool-configs/system-object-tool-config.ts +0 -5
  595. package/src/types/types.ts +2 -0
  596. package/src/utils/cache.ts +49 -54
  597. package/src/utils/category-utils.ts +70 -0
  598. package/src/utils/log-tool-constants.ts +25 -17
  599. package/src/utils/logger.ts +38 -1
  600. package/src/utils/markdown-utils.ts +280 -0
  601. package/src/utils/path-resolver.ts +25 -9
  602. package/src/utils/path-validation.ts +113 -0
  603. package/tests/base-handler.test.ts +1 -1
  604. package/tests/cache.test.ts +2 -2
  605. package/tests/cartridge-handler.test.ts +4 -4
  606. package/tests/client-factory.test.ts +1 -1
  607. package/tests/code-version-handler.test.ts +3 -3
  608. package/tests/docs-handler.test.ts +2 -2
  609. package/tests/documentation-scanner.test.ts +4 -4
  610. package/tests/isml-client.test.ts +463 -0
  611. package/tests/isml-handler.test.ts +375 -0
  612. package/tests/job-log-handler.test.ts +1 -1
  613. package/tests/log-handler.test.ts +8 -8
  614. package/tests/log-validation.test.ts +149 -0
  615. package/tests/mcp/README.md +22 -18
  616. package/tests/mcp/node/activate-code-version-advanced.full-mode.programmatic.test.js +30 -12
  617. package/tests/mcp/node/evaluate-script.full-mode.programmatic.test.js +387 -0
  618. package/tests/mcp/node/generate-cartridge-structure.docs-only.programmatic.test.js +14 -8
  619. package/tests/mcp/node/get-isml-categories.programmatic.test.js +278 -0
  620. package/tests/mcp/node/get-isml-element.programmatic.test.js +278 -0
  621. package/tests/mcp/node/get-isml-elements-by-category.programmatic.test.js +363 -0
  622. package/tests/mcp/node/get-sfra-categories.docs-only.programmatic.test.js +24 -24
  623. package/tests/mcp/node/get-sfra-document.programmatic.test.js +4 -2
  624. package/tests/mcp/node/list-isml-elements.programmatic.test.js +311 -0
  625. package/tests/mcp/node/list-sfcc-classes.docs-only.programmatic.test.js +2 -33
  626. package/tests/mcp/node/search-isml-elements.programmatic.test.js +325 -0
  627. package/tests/mcp/node/search-sfcc-classes.docs-only.programmatic.test.js +5 -9
  628. package/tests/mcp/node/search-sfcc-methods.docs-only.programmatic.test.js +7 -9
  629. package/tests/mcp/node/tools.docs-only.programmatic.test.js +42 -65
  630. package/tests/mcp/node/tools.full-mode.programmatic.test.js +7 -8
  631. package/tests/mcp/yaml/activate-code-version.full-mode.test.mcp.yml +2 -2
  632. package/tests/mcp/yaml/evaluate-script.full-mode.test.mcp.yml +281 -0
  633. package/tests/mcp/yaml/get-isml-categories.docs-only.test.mcp.yml +330 -0
  634. package/tests/mcp/yaml/get-isml-element.docs-only.test.mcp.yml +294 -0
  635. package/tests/mcp/yaml/get-isml-elements-by-category.docs-only.test.mcp.yml +334 -0
  636. package/tests/mcp/yaml/get-sfcc-class-info.docs-only.test.mcp.yml +2 -2
  637. package/tests/mcp/yaml/get-sfra-categories.docs-only.test.mcp.yml +13 -13
  638. package/tests/mcp/yaml/get-sfra-categories.full-mode.test.mcp.yml +13 -13
  639. package/tests/mcp/yaml/get-system-object-definitions.docs-only.test.mcp.yml +1 -16
  640. package/tests/mcp/yaml/list-isml-elements.docs-only.test.mcp.yml +212 -0
  641. package/tests/mcp/yaml/search-isml-elements.docs-only.test.mcp.yml +312 -0
  642. package/tests/mcp/yaml/search-sfcc-classes.docs-only.test.mcp.yml +1 -1
  643. package/tests/mcp/yaml/search-sfcc-classes.full-mode.test.mcp.yml +1 -1
  644. package/tests/mcp/yaml/search-site-preferences.docs-only.test.mcp.yml +1 -1
  645. package/tests/mcp/yaml/tools.docs-only.test.mcp.yml +3 -57
  646. package/tests/mcp/yaml/tools.full-mode.test.mcp.yml +3 -3
  647. package/tests/oauth-token.test.ts +107 -12
  648. package/tests/ocapi-client.test.ts +53 -106
  649. package/tests/script-debugger-client.test.ts +430 -0
  650. package/tests/servers/sfcc-mock-server/src/app.js +15 -0
  651. package/tests/servers/sfcc-mock-server/src/routes/cartridge-webdav.js +258 -0
  652. package/tests/servers/sfcc-mock-server/src/routes/ocapi/debugger-handler.js +396 -0
  653. package/tests/servers/sfcc-mock-server/src/routes/ocapi.js +5 -0
  654. package/tests/servers/sfcc-mock-server/src/routes/storefront.js +86 -0
  655. package/tests/servers/sfcc-mock-server/src/routes/webdav.js +6 -4
  656. package/tests/validation-helpers.test.ts +0 -31
  657. package/tests/workspace-roots.test.ts +227 -0
  658. package/ai-instructions/claude-desktop/claude_custom_instructions.md +0 -321
  659. package/ai-instructions/cursor/.cursor/rules/debugging-workflows.mdc +0 -171
  660. package/ai-instructions/cursor/.cursor/rules/hooks-development.mdc +0 -168
  661. package/ai-instructions/cursor/.cursor/rules/isml-templates.mdc +0 -209
  662. package/ai-instructions/cursor/.cursor/rules/job-framework.mdc +0 -379
  663. package/ai-instructions/cursor/.cursor/rules/performance-optimization.mdc +0 -215
  664. package/ai-instructions/cursor/.cursor/rules/scapi-endpoints.mdc +0 -98
  665. package/ai-instructions/cursor/.cursor/rules/security-patterns.mdc +0 -375
  666. package/ai-instructions/cursor/.cursor/rules/sfcc-development.mdc +0 -144
  667. package/ai-instructions/cursor/.cursor/rules/sfra-controllers.mdc +0 -376
  668. package/ai-instructions/cursor/.cursor/rules/sfra-models.mdc +0 -412
  669. package/ai-instructions/cursor/.cursor/rules/system-objects.mdc +0 -383
  670. package/ai-instructions/cursor/.cursor/rules/testing-patterns.mdc +0 -418
  671. package/dist/clients/best-practices-client.d.ts +0 -57
  672. package/dist/clients/best-practices-client.d.ts.map +0 -1
  673. package/dist/clients/best-practices-client.js +0 -288
  674. package/dist/clients/best-practices-client.js.map +0 -1
  675. package/dist/clients/cartridge-generation-client.d.ts +0 -57
  676. package/dist/clients/cartridge-generation-client.d.ts.map +0 -1
  677. package/dist/clients/cartridge-generation-client.js +0 -384
  678. package/dist/clients/cartridge-generation-client.js.map +0 -1
  679. package/dist/clients/logs/index.d.ts +0 -13
  680. package/dist/clients/logs/index.d.ts.map +0 -1
  681. package/dist/clients/logs/index.js +0 -15
  682. package/dist/clients/logs/index.js.map +0 -1
  683. package/dist/clients/logs/log-analyzer.d.ts +0 -55
  684. package/dist/clients/logs/log-analyzer.d.ts.map +0 -1
  685. package/dist/clients/logs/log-analyzer.js +0 -228
  686. package/dist/clients/logs/log-analyzer.js.map +0 -1
  687. package/dist/clients/logs/log-client.d.ts +0 -87
  688. package/dist/clients/logs/log-client.d.ts.map +0 -1
  689. package/dist/clients/logs/log-client.js +0 -418
  690. package/dist/clients/logs/log-client.js.map +0 -1
  691. package/dist/clients/logs/log-constants.d.ts +0 -37
  692. package/dist/clients/logs/log-constants.d.ts.map +0 -1
  693. package/dist/clients/logs/log-constants.js +0 -37
  694. package/dist/clients/logs/log-constants.js.map +0 -1
  695. package/dist/clients/logs/log-file-discovery.d.ts +0 -62
  696. package/dist/clients/logs/log-file-discovery.d.ts.map +0 -1
  697. package/dist/clients/logs/log-file-discovery.js +0 -238
  698. package/dist/clients/logs/log-file-discovery.js.map +0 -1
  699. package/dist/clients/logs/log-file-reader.d.ts +0 -53
  700. package/dist/clients/logs/log-file-reader.d.ts.map +0 -1
  701. package/dist/clients/logs/log-file-reader.js +0 -194
  702. package/dist/clients/logs/log-file-reader.js.map +0 -1
  703. package/dist/clients/logs/log-formatter.d.ts +0 -90
  704. package/dist/clients/logs/log-formatter.d.ts.map +0 -1
  705. package/dist/clients/logs/log-formatter.js +0 -189
  706. package/dist/clients/logs/log-formatter.js.map +0 -1
  707. package/dist/clients/logs/log-processor.d.ts +0 -91
  708. package/dist/clients/logs/log-processor.d.ts.map +0 -1
  709. package/dist/clients/logs/log-processor.js +0 -328
  710. package/dist/clients/logs/log-processor.js.map +0 -1
  711. package/dist/clients/logs/log-types.d.ts +0 -69
  712. package/dist/clients/logs/log-types.d.ts.map +0 -1
  713. package/dist/clients/logs/log-types.js +0 -5
  714. package/dist/clients/logs/log-types.js.map +0 -1
  715. package/dist/clients/logs/webdav-client-manager.d.ts +0 -28
  716. package/dist/clients/logs/webdav-client-manager.d.ts.map +0 -1
  717. package/dist/clients/logs/webdav-client-manager.js +0 -77
  718. package/dist/clients/logs/webdav-client-manager.js.map +0 -1
  719. package/dist/core/handlers/abstract-log-tool-handler.d.ts +0 -35
  720. package/dist/core/handlers/abstract-log-tool-handler.d.ts.map +0 -1
  721. package/dist/core/handlers/abstract-log-tool-handler.js +0 -46
  722. package/dist/core/handlers/abstract-log-tool-handler.js.map +0 -1
  723. package/dist/core/handlers/best-practices-handler.d.ts +0 -17
  724. package/dist/core/handlers/best-practices-handler.d.ts.map +0 -1
  725. package/dist/core/handlers/best-practices-handler.js +0 -43
  726. package/dist/core/handlers/best-practices-handler.js.map +0 -1
  727. package/dist/core/handlers/job-log-tool-config.d.ts +0 -8
  728. package/dist/core/handlers/job-log-tool-config.d.ts.map +0 -1
  729. package/dist/core/handlers/job-log-tool-config.js +0 -76
  730. package/dist/core/handlers/job-log-tool-config.js.map +0 -1
  731. package/dist/core/handlers/log-tool-config.d.ts +0 -8
  732. package/dist/core/handlers/log-tool-config.d.ts.map +0 -1
  733. package/dist/core/handlers/log-tool-config.js +0 -73
  734. package/dist/core/handlers/log-tool-config.js.map +0 -1
  735. package/dist/docs/best-practices/isml_templates.md +0 -1933
  736. package/dist/docs/best-practices/job_framework.md +0 -1173
  737. package/dist/docs/best-practices/scapi_custom_endpoint.md +0 -963
  738. package/dist/docs/best-practices/sfra_client_side_js.md +0 -736
  739. package/dist/docs/best-practices/sfra_models.md +0 -1142
  740. package/dist/tool-configs/best-practices-tool-config.d.ts +0 -11
  741. package/dist/tool-configs/best-practices-tool-config.d.ts.map +0 -1
  742. package/dist/tool-configs/best-practices-tool-config.js +0 -59
  743. package/dist/tool-configs/best-practices-tool-config.js.map +0 -1
  744. package/dist/utils/job-log-tool-config.d.ts +0 -8
  745. package/dist/utils/job-log-tool-config.d.ts.map +0 -1
  746. package/dist/utils/job-log-tool-config.js +0 -76
  747. package/dist/utils/job-log-tool-config.js.map +0 -1
  748. package/dist/utils/job-log-utils.d.ts +0 -34
  749. package/dist/utils/job-log-utils.d.ts.map +0 -1
  750. package/dist/utils/job-log-utils.js +0 -60
  751. package/dist/utils/job-log-utils.js.map +0 -1
  752. package/dist/utils/log-cache.d.ts +0 -53
  753. package/dist/utils/log-cache.d.ts.map +0 -1
  754. package/dist/utils/log-cache.js +0 -114
  755. package/dist/utils/log-cache.js.map +0 -1
  756. package/dist/utils/log-tool-config.d.ts +0 -8
  757. package/dist/utils/log-tool-config.d.ts.map +0 -1
  758. package/dist/utils/log-tool-config.js +0 -73
  759. package/dist/utils/log-tool-config.js.map +0 -1
  760. package/dist/utils/log-tool-utils.d.ts +0 -39
  761. package/dist/utils/log-tool-utils.d.ts.map +0 -1
  762. package/dist/utils/log-tool-utils.js +0 -94
  763. package/dist/utils/log-tool-utils.js.map +0 -1
  764. package/docs/best-practices/isml_templates.md +0 -1933
  765. package/docs/best-practices/job_framework.md +0 -1173
  766. package/docs/best-practices/scapi_custom_endpoint.md +0 -963
  767. package/docs/best-practices/sfra_client_side_js.md +0 -736
  768. package/docs/best-practices/sfra_models.md +0 -1142
  769. package/docs-site/App.tsx +0 -103
  770. package/docs-site/README.md +0 -113
  771. package/docs-site/components/Badge.tsx +0 -38
  772. package/docs-site/components/BreadcrumbSchema.tsx +0 -34
  773. package/docs-site/components/CodeBlock.tsx +0 -132
  774. package/docs-site/components/Collapsible.tsx +0 -40
  775. package/docs-site/components/ConfigBuilder.tsx +0 -118
  776. package/docs-site/components/ConfigHero.tsx +0 -19
  777. package/docs-site/components/ConfigModeTabs.tsx +0 -42
  778. package/docs-site/components/Layout.tsx +0 -174
  779. package/docs-site/components/LightCodeContainer.tsx +0 -44
  780. package/docs-site/components/NewcomerCTA.tsx +0 -57
  781. package/docs-site/components/NextStepsStrip.tsx +0 -23
  782. package/docs-site/components/OnThisPage.tsx +0 -91
  783. package/docs-site/components/SEO.tsx +0 -79
  784. package/docs-site/components/Search.tsx +0 -207
  785. package/docs-site/components/Sidebar.tsx +0 -96
  786. package/docs-site/components/StructuredData.tsx +0 -72
  787. package/docs-site/components/ToolCard.tsx +0 -84
  788. package/docs-site/components/ToolFilters.tsx +0 -39
  789. package/docs-site/components/Typography.tsx +0 -30
  790. package/docs-site/components/VersionBadge.tsx +0 -18
  791. package/docs-site/components/icons.tsx +0 -37
  792. package/docs-site/constants.tsx +0 -34
  793. package/docs-site/index.html +0 -62
  794. package/docs-site/main.tsx +0 -16
  795. package/docs-site/metadata.json +0 -5
  796. package/docs-site/package-lock.json +0 -3966
  797. package/docs-site/package.json +0 -35
  798. package/docs-site/pages/AIInterfacesPage.tsx +0 -610
  799. package/docs-site/pages/ConfigurationPage.tsx +0 -315
  800. package/docs-site/pages/DevelopmentPage.tsx +0 -607
  801. package/docs-site/pages/ExamplesPage.tsx +0 -558
  802. package/docs-site/pages/FeaturesPage.tsx +0 -353
  803. package/docs-site/pages/HomePage.tsx +0 -1046
  804. package/docs-site/pages/SecurityPage.tsx +0 -372
  805. package/docs-site/pages/ToolsPage.tsx +0 -205
  806. package/docs-site/pages/TroubleshootingPage.tsx +0 -590
  807. package/docs-site/postcss.config.js +0 -6
  808. package/docs-site/public/.well-known/security.txt +0 -6
  809. package/docs-site/public/android-chrome-192x192.png +0 -0
  810. package/docs-site/public/android-chrome-512x512.png +0 -0
  811. package/docs-site/public/apple-touch-icon.png +0 -0
  812. package/docs-site/public/favicon-16x16.png +0 -0
  813. package/docs-site/public/favicon-32x32.png +0 -0
  814. package/docs-site/public/favicon.ico +0 -0
  815. package/docs-site/public/llms.txt +0 -47
  816. package/docs-site/scripts/generate-search-index.js +0 -323
  817. package/docs-site/scripts/generate-sitemap.js +0 -156
  818. package/docs-site/scripts/search-dev.js +0 -112
  819. package/docs-site/src/styles/input.css +0 -248
  820. package/docs-site/src/styles/prism-theme.css +0 -124
  821. package/docs-site/tailwind.config.js +0 -70
  822. package/docs-site/tsconfig.json +0 -29
  823. package/docs-site/types.ts +0 -16
  824. package/docs-site/utils/search.ts +0 -132
  825. package/docs-site/utils/toolsData.ts +0 -116
  826. package/docs-site/vite.config.ts +0 -63
  827. package/src/clients/best-practices-client.ts +0 -332
  828. package/src/clients/cartridge-generation-client.ts +0 -507
  829. package/src/clients/logs/index.ts +0 -18
  830. package/src/clients/logs/log-analyzer.ts +0 -289
  831. package/src/clients/logs/log-client.ts +0 -540
  832. package/src/clients/logs/log-constants.ts +0 -53
  833. package/src/clients/logs/log-file-discovery.ts +0 -299
  834. package/src/clients/logs/log-file-reader.ts +0 -227
  835. package/src/clients/logs/log-formatter.ts +0 -258
  836. package/src/clients/logs/log-processor.ts +0 -402
  837. package/src/clients/logs/log-types.ts +0 -80
  838. package/src/clients/logs/webdav-client-manager.ts +0 -93
  839. package/src/core/handlers/abstract-log-tool-handler.ts +0 -64
  840. package/src/core/handlers/best-practices-handler.ts +0 -55
  841. package/src/core/handlers/job-log-tool-config.ts +0 -89
  842. package/src/core/handlers/log-tool-config.ts +0 -98
  843. package/src/tool-configs/best-practices-tool-config.ts +0 -68
  844. package/src/utils/job-log-tool-config.ts +0 -89
  845. package/src/utils/job-log-utils.ts +0 -78
  846. package/src/utils/log-cache.ts +0 -134
  847. package/src/utils/log-tool-config.ts +0 -98
  848. package/src/utils/log-tool-utils.ts +0 -122
  849. package/tests/best-practices-handler.test.ts +0 -236
  850. package/tests/job-log-utils.test.ts +0 -182
  851. package/tests/mcp/node/get-available-best-practice-guides.docs-only.programmatic.test.js +0 -516
  852. package/tests/mcp/node/get-best-practice-guide.docs-only.programmatic.test.js +0 -733
  853. package/tests/mcp/node/get-hook-reference.docs-only.programmatic.test.js +0 -185
  854. package/tests/mcp/node/search-best-practices.docs-only.programmatic.test.js +0 -836
  855. package/tests/mcp/yaml/get-available-best-practice-guides.docs-only.test.mcp.yml +0 -885
  856. package/tests/mcp/yaml/get-available-best-practice-guides.full-mode.test.mcp.yml +0 -885
  857. package/tests/mcp/yaml/get-best-practice-guide.docs-only.test.mcp.yml +0 -462
  858. package/tests/mcp/yaml/get-best-practice-guide.full-mode.test.mcp.yml +0 -462
  859. package/tests/mcp/yaml/get-hook-reference.docs-only.test.mcp.yml +0 -321
  860. package/tests/mcp/yaml/get-hook-reference.full-mode.test.mcp.yml +0 -321
  861. package/tests/mcp/yaml/search-best-practices.docs-only.test.mcp.yml +0 -655
  862. package/tests/mcp/yaml/search-best-practices.full-mode.test.mcp.yml +0 -655
  863. /package/{docs-site → docs-site-v2}/public/404.html +0 -0
  864. /package/{docs-site → docs-site-v2}/public/explain-product-pricing-methods-no-mcp.png +0 -0
  865. /package/{docs-site → docs-site-v2}/public/explain-product-pricing-methods.png +0 -0
@@ -0,0 +1,65 @@
1
+ /**
2
+ * SFRA Documentation Tool Schemas
3
+ */
4
+
5
+ export const SFRA_DOCUMENTATION_TOOLS = [
6
+ {
7
+ name: 'get_available_sfra_documents',
8
+ description: 'List all SFRA documentation including Server, Request, Response, QueryString, render module, and 26+ model docs (cart, account, billing, shipping, products, pricing).',
9
+ inputSchema: {
10
+ type: 'object',
11
+ properties: {},
12
+ },
13
+ },
14
+ {
15
+ name: 'get_sfra_document',
16
+ description: 'Get complete SFRA class or model documentation with properties, methods, and examples. Use for implementing controllers, middleware, or working with SFRA models.',
17
+ inputSchema: {
18
+ type: 'object',
19
+ properties: {
20
+ documentName: {
21
+ type: 'string',
22
+ description: 'Document name, e.g., "server", "request", "cart", "product-full", "account". Use get_available_sfra_documents for full list.',
23
+ },
24
+ },
25
+ required: ['documentName'],
26
+ },
27
+ },
28
+ {
29
+ name: 'search_sfra_documentation',
30
+ description: 'Search across all SFRA docs for concepts or functionality. Returns relevance-scored results with categorization.',
31
+ inputSchema: {
32
+ type: 'object',
33
+ properties: {
34
+ query: {
35
+ type: 'string',
36
+ description: 'Search term, e.g., "middleware", "routing", "cache", "cart", "pricing".',
37
+ },
38
+ },
39
+ required: ['query'],
40
+ },
41
+ },
42
+ {
43
+ name: 'get_sfra_documents_by_category',
44
+ description: 'Get SFRA documents filtered by functional area (core classes, product models, order/cart, customer, pricing, store).',
45
+ inputSchema: {
46
+ type: 'object',
47
+ properties: {
48
+ category: {
49
+ type: 'string',
50
+ enum: ['core', 'product', 'order', 'customer', 'pricing', 'store', 'other'],
51
+ description: 'Category to filter by: core (Server, Request, Response, etc.), product (product models), order (cart, billing, shipping), customer (account, address), pricing (price models), store (store models), other (utilities)',
52
+ },
53
+ },
54
+ required: ['category'],
55
+ },
56
+ },
57
+ {
58
+ name: 'get_sfra_categories',
59
+ description: 'Get all SFRA document categories with counts. Use to understand documentation organization before browsing.',
60
+ inputSchema: {
61
+ type: 'object',
62
+ properties: {},
63
+ },
64
+ },
65
+ ];
@@ -0,0 +1,158 @@
1
+ /**
2
+ * Shared MCP Tool Schema Components
3
+ *
4
+ * Reusable schema definitions for MCP tool definitions.
5
+ * DRY: These are used across multiple tool categories.
6
+ */
7
+
8
+ /**
9
+ * Common query schema for OCAPI search operations
10
+ */
11
+ export const QUERY_SCHEMA = {
12
+ type: 'object',
13
+ description: 'Query to filter results',
14
+ properties: {
15
+ text_query: {
16
+ type: 'object',
17
+ description: 'Search for text in specific fields',
18
+ properties: {
19
+ fields: {
20
+ type: 'array',
21
+ items: { type: 'string' },
22
+ description: 'Fields to search in (e.g., ["id", "display_name", "description"])',
23
+ },
24
+ search_phrase: {
25
+ type: 'string',
26
+ description: 'Text to search for',
27
+ },
28
+ },
29
+ required: ['fields', 'search_phrase'],
30
+ },
31
+ term_query: {
32
+ type: 'object',
33
+ description: 'Search for exact term matches',
34
+ properties: {
35
+ fields: {
36
+ type: 'array',
37
+ items: { type: 'string' },
38
+ description: 'Fields to search in',
39
+ },
40
+ operator: {
41
+ type: 'string',
42
+ description: 'Query operator (e.g., "is", "one_of")',
43
+ },
44
+ values: {
45
+ type: 'array',
46
+ items: { type: 'string' },
47
+ description: 'Values to match',
48
+ },
49
+ },
50
+ required: ['fields', 'operator', 'values'],
51
+ },
52
+ bool_query: {
53
+ type: 'object',
54
+ description: 'Combine multiple queries with boolean logic',
55
+ properties: {
56
+ must: {
57
+ type: 'array',
58
+ items: { type: 'object' },
59
+ description: 'Queries that must match (AND)',
60
+ },
61
+ must_not: {
62
+ type: 'array',
63
+ items: { type: 'object' },
64
+ description: 'Queries that must not match',
65
+ },
66
+ should: {
67
+ type: 'array',
68
+ items: { type: 'object' },
69
+ description: 'Queries that should match (OR)',
70
+ },
71
+ },
72
+ },
73
+ match_all_query: {
74
+ type: 'object',
75
+ description: 'Match all documents - useful when you want all results or to filter with sorts/pagination only.',
76
+ properties: {},
77
+ },
78
+ },
79
+ } as const;
80
+
81
+ /**
82
+ * Common sorts schema for OCAPI search operations
83
+ */
84
+ export const SORTS_SCHEMA = {
85
+ type: 'array',
86
+ description: 'Sort criteria',
87
+ items: {
88
+ type: 'object',
89
+ properties: {
90
+ field: {
91
+ type: 'string',
92
+ description: 'Field to sort by',
93
+ },
94
+ sort_order: {
95
+ type: 'string',
96
+ enum: ['asc', 'desc'],
97
+ description: 'Sort order (default: asc)',
98
+ },
99
+ },
100
+ required: ['field'],
101
+ },
102
+ } as const;
103
+
104
+ /**
105
+ * Common pagination schema for OCAPI search operations
106
+ */
107
+ export const PAGINATION_SCHEMA = {
108
+ start: {
109
+ type: 'number',
110
+ description: 'Start index for pagination (default: 0)',
111
+ default: 0,
112
+ },
113
+ count: {
114
+ type: 'number',
115
+ description: 'Number of results to return (default: 200)',
116
+ default: 200,
117
+ },
118
+ select: {
119
+ type: 'string',
120
+ description: "Property selector (e.g., '(**)' for all properties)",
121
+ },
122
+ } as const;
123
+
124
+ /**
125
+ * Factory to create search request schema with optional description override
126
+ */
127
+ export function createSearchRequestSchema(queryDescription?: string) {
128
+ return {
129
+ type: 'object',
130
+ description: 'The search request with query, sorting, and pagination options',
131
+ properties: {
132
+ query: queryDescription
133
+ ? { ...QUERY_SCHEMA, description: queryDescription }
134
+ : QUERY_SCHEMA,
135
+ sorts: SORTS_SCHEMA,
136
+ ...PAGINATION_SCHEMA,
137
+ },
138
+ };
139
+ }
140
+
141
+ /**
142
+ * Common date parameter schema
143
+ */
144
+ export const DATE_PARAM_SCHEMA = {
145
+ type: 'string',
146
+ description: 'Date in YYYYMMDD format (default: today)',
147
+ } as const;
148
+
149
+ /**
150
+ * Common limit parameter schema
151
+ */
152
+ export function createLimitSchema(defaultValue: number, description?: string) {
153
+ return {
154
+ type: 'number',
155
+ description: description ?? `Number of entries to return (default: ${defaultValue})`,
156
+ default: defaultValue,
157
+ };
158
+ }
@@ -0,0 +1,127 @@
1
+ /**
2
+ * System Object Tool Schemas
3
+ */
4
+
5
+ import { createSearchRequestSchema } from './shared-schemas.js';
6
+
7
+ export const SYSTEM_OBJECT_TOOLS = [
8
+ {
9
+ name: 'get_system_object_definitions',
10
+ description: 'Get all system object definitions with metadata (not attributes). Use to discover available objects and identify Custom Objects via the _type field.',
11
+ inputSchema: {
12
+ type: 'object',
13
+ properties: {
14
+ start: {
15
+ type: 'number',
16
+ description: 'Start index for pagination (default: 0)',
17
+ default: 0,
18
+ },
19
+ count: {
20
+ type: 'number',
21
+ description: 'Number of items to return (default: 200)',
22
+ default: 200,
23
+ },
24
+ select: {
25
+ type: 'string',
26
+ description: 'OCAPI field selector. Examples: "(**)" for all, "(data.(object_type, display_name))" for specific fields.',
27
+ default: '(**)',
28
+ },
29
+ },
30
+ },
31
+ },
32
+ {
33
+ name: 'get_system_object_definition',
34
+ description: 'Get metadata for a specific system object (attribute count, group count, flags). For attribute details, use search_system_object_attribute_definitions. Does not work for Custom Objects.',
35
+ inputSchema: {
36
+ type: 'object',
37
+ properties: {
38
+ objectType: {
39
+ type: 'string',
40
+ description: 'System object type, e.g., "Product", "Customer", "Order", "Category".',
41
+ },
42
+ },
43
+ required: ['objectType'],
44
+ },
45
+ },
46
+ {
47
+ name: 'search_system_object_attribute_definitions',
48
+ description: 'Search attribute definitions within a system object. Supports text search, filtering by mandatory/searchable/system, and sorting. Use match_all_query to get all attributes.',
49
+ inputSchema: {
50
+ type: 'object',
51
+ properties: {
52
+ objectType: {
53
+ type: 'string',
54
+ description: 'System object type, e.g., "Product", "Customer", "Order".',
55
+ },
56
+ searchRequest: createSearchRequestSchema('Query to filter attribute definitions'),
57
+ },
58
+ required: ['objectType', 'searchRequest'],
59
+ },
60
+ },
61
+ {
62
+ name: 'search_site_preferences',
63
+ description: 'Search site preferences by name, description, or type. Use to validate preference names and types when working with Site.getCurrent().getCustomPreferenceValue() or dw.system.Site.current.preferences.custom.*.',
64
+ inputSchema: {
65
+ type: 'object',
66
+ properties: {
67
+ groupId: {
68
+ type: 'string',
69
+ description: 'The ID of the preference group to search within',
70
+ },
71
+ instanceType: {
72
+ type: 'string',
73
+ enum: ['staging', 'development', 'sandbox', 'production'],
74
+ description: 'The instance type to search preferences for. Since this MCP server is aimed at development and testing, the default is "sandbox".',
75
+ default: 'sandbox',
76
+ },
77
+ searchRequest: createSearchRequestSchema('Query to filter site preferences'),
78
+ options: {
79
+ type: 'object',
80
+ description: 'Additional options for the search',
81
+ properties: {
82
+ maskPasswords: {
83
+ type: 'boolean',
84
+ description: 'Whether to mask password type preference values (default: true)',
85
+ default: true,
86
+ },
87
+ expand: {
88
+ type: 'string',
89
+ description: 'Expand options (use "value" to retrieve value definitions)',
90
+ },
91
+ },
92
+ },
93
+ },
94
+ required: ['groupId', 'instanceType', 'searchRequest'],
95
+ },
96
+ },
97
+ {
98
+ name: 'search_system_object_attribute_groups',
99
+ description: 'Search attribute groups for a system object. Use "SitePreferences" as objectType to find preference groups needed for the site preferences API.',
100
+ inputSchema: {
101
+ type: 'object',
102
+ properties: {
103
+ objectType: {
104
+ type: 'string',
105
+ description: 'System object type, e.g., "Product", "Customer", "SitePreferences".',
106
+ },
107
+ searchRequest: createSearchRequestSchema('Query to filter attribute groups'),
108
+ },
109
+ required: ['objectType', 'searchRequest'],
110
+ },
111
+ },
112
+ {
113
+ name: 'search_custom_object_attribute_definitions',
114
+ description: 'Search attribute definitions within a custom object type (user-defined objects, not system objects). Supports text search, filtering, and sorting.',
115
+ inputSchema: {
116
+ type: 'object',
117
+ properties: {
118
+ objectType: {
119
+ type: 'string',
120
+ description: 'Custom object type, e.g., "Global_String", "MyCustomObject".',
121
+ },
122
+ searchRequest: createSearchRequestSchema('Query to filter attribute definitions'),
123
+ },
124
+ required: ['objectType', 'searchRequest'],
125
+ },
126
+ },
127
+ ];
package/src/main.ts CHANGED
@@ -2,13 +2,27 @@
2
2
 
3
3
  /**
4
4
  * Main entry point for the SFCC Development MCP Server
5
+ *
6
+ * This module handles:
7
+ * - Command-line argument parsing
8
+ * - Configuration discovery (dw.json) from multiple sources
9
+ * - Secure path validation for configuration files
10
+ * - Server initialization and lifecycle management
11
+ *
12
+ * Configuration discovery priority (highest to lowest):
13
+ * 1. Explicit --dw-json command line argument
14
+ * 2. Environment variables (SFCC_HOSTNAME, etc.)
15
+ * 3. MCP workspace roots discovery (after client connection)
16
+ * 4. Current working directory fallback (disabled by default, unreliable)
17
+ *
18
+ * Note: CWD-based discovery is disabled because MCP servers often run
19
+ * with cwd set to the user's home directory, not the project directory.
20
+ * The MCP workspace roots mechanism provides the correct project context.
5
21
  */
6
22
 
7
23
  import { SFCCDevServer } from './core/server.js';
8
24
  import { ConfigurationFactory } from './config/configuration-factory.js';
9
25
  import { Logger } from './utils/logger.js';
10
- import { existsSync } from 'fs';
11
- import { resolve } from 'path';
12
26
 
13
27
  /**
14
28
  * Parse command line arguments to extract configuration options
@@ -37,29 +51,24 @@ function parseCommandLineArgs(): { dwJsonPath?: string; debug?: boolean } {
37
51
  }
38
52
 
39
53
  /**
40
- * Find dw.json file in common locations
54
+ * Check if environment variables provide SFCC credentials
41
55
  */
42
- function findDwJsonFile(): string | undefined {
43
- const commonPaths = [
44
- './dw.json',
45
- '../dw.json',
46
- '../../dw.json',
47
- process.env.HOME ? resolve(process.env.HOME, 'dw.json') : null,
48
- ].filter(Boolean) as string[];
49
-
50
- for (const path of commonPaths) {
51
- if (existsSync(path)) {
52
- const logger = Logger.getInstance();
53
- logger.debug(`Found dw.json at: ${path}`);
54
- return path;
55
- }
56
- }
57
-
58
- return undefined;
56
+ function hasEnvironmentCredentials(): boolean {
57
+ const hasBasicAuth = !!(process.env.SFCC_USERNAME && process.env.SFCC_PASSWORD);
58
+ const hasOAuth = !!(process.env.SFCC_CLIENT_ID && process.env.SFCC_CLIENT_SECRET);
59
+ return !!(process.env.SFCC_HOSTNAME && (hasBasicAuth || hasOAuth));
59
60
  }
60
61
 
61
62
  /**
62
63
  * Main application entry point
64
+ *
65
+ * Configuration discovery priority:
66
+ * 1. CLI --dw-json parameter (explicit, highest priority)
67
+ * 2. Environment variables (SFCC_HOSTNAME, etc.)
68
+ * 3. MCP workspace roots (discovered after client connection - most reliable for project context)
69
+ *
70
+ * Note: CWD-based auto-discovery is intentionally NOT used because MCP servers
71
+ * often start with cwd=/Users/xxx (home directory), not the project directory.
63
72
  */
64
73
  async function main(): Promise<void> {
65
74
  try {
@@ -71,17 +80,33 @@ async function main(): Promise<void> {
71
80
  const logger = Logger.getInstance();
72
81
 
73
82
  logger.log('Starting SFCC Development MCP Server...');
83
+ logger.log(`[main] Current working directory: ${process.cwd()}`);
84
+ logger.log(`[main] Command line args: ${JSON.stringify(process.argv.slice(2))}`);
74
85
  if (debug) {
75
- logger.log('Debug mode enabled');
86
+ logger.log('[main] Debug mode enabled');
87
+ }
88
+
89
+ // Priority 1: Explicit CLI parameter
90
+ if (options.dwJsonPath) {
91
+ logger.log(`[main] Using explicit dw.json path from CLI: ${options.dwJsonPath}`);
92
+ }
93
+
94
+ // Priority 2: Environment variables
95
+ const hasEnvCredentials = hasEnvironmentCredentials();
96
+ if (hasEnvCredentials) {
97
+ logger.log('[main] Environment variables provide SFCC credentials');
76
98
  }
77
99
 
78
- // Try to find dw.json if not explicitly provided
79
- const dwJsonPath = options.dwJsonPath ?? findDwJsonFile();
100
+ // Determine initial configuration source
101
+ // - If CLI path provided: use it
102
+ // - If env vars set: use them
103
+ // - Otherwise: start in local mode, MCP workspace discovery will upgrade later
104
+ const dwJsonPath = options.dwJsonPath; // Only use explicit CLI path, not auto-discovery
80
105
 
81
106
  // Create configuration using the factory
82
107
  const config = ConfigurationFactory.create({
83
108
  dwJsonPath,
84
- // Add support for environment variables as fallback
109
+ // Environment variables as fallback (Priority 2)
85
110
  hostname: process.env.SFCC_HOSTNAME,
86
111
  username: process.env.SFCC_USERNAME,
87
112
  password: process.env.SFCC_PASSWORD,
@@ -89,19 +114,27 @@ async function main(): Promise<void> {
89
114
  clientSecret: process.env.SFCC_CLIENT_SECRET,
90
115
  });
91
116
 
117
+ logger.log(`[main] Config created - hostname: "${config.hostname}"`);
118
+
92
119
  // Log configuration summary (without sensitive data)
93
120
  const capabilities = ConfigurationFactory.getCapabilities(config);
121
+ logger.log(`[main] Capabilities: ${JSON.stringify(capabilities)}`);
94
122
 
95
123
  if (capabilities.isLocalMode) {
96
- logger.log('Running in Local Mode - SFCC class documentation only');
97
- logger.log('To access SFCC logs and OCAPI, provide hostname and credentials');
124
+ logger.log('[main] Starting in Local Mode - documentation only');
125
+ logger.log('[main] MCP workspace roots discovery will attempt to find dw.json after client connects');
126
+ logger.log('[main] To skip discovery, use --dw-json or set SFCC_* environment variables');
98
127
  } else {
99
- logger.log(`Configuration loaded - Hostname: ${config.hostname}`);
100
- logger.log(`Available features: Logs=${capabilities.canAccessLogs}, OCAPI=${capabilities.canAccessOCAPI}, WebDAV=${capabilities.canAccessWebDAV}`);
128
+ const source = options.dwJsonPath ? 'CLI parameter' : 'environment variables';
129
+ logger.log(`[main] Configuration loaded from ${source}`);
130
+ logger.log(`[main] Hostname: ${config.hostname}`);
131
+ logger.log(`[main] Available features: Logs=${capabilities.canAccessLogs}, OCAPI=${capabilities.canAccessOCAPI}, WebDAV=${capabilities.canAccessWebDAV}`);
101
132
  }
102
133
 
103
134
  // Create and start the server
135
+ logger.log('[main] Creating SFCCDevServer...');
104
136
  const server = new SFCCDevServer(config);
137
+ logger.log('[main] Starting server.run()...');
105
138
  await server.run();
106
139
  } catch (error) {
107
140
  const logger = Logger.getInstance();
@@ -110,8 +143,8 @@ async function main(): Promise<void> {
110
143
  if (error instanceof Error) {
111
144
  if (error.message.includes('not found')) {
112
145
  logger.log('\nConfiguration Help:');
113
- logger.log('1. Create a dw.json file with your SFCC credentials');
114
- logger.log('2. Use --dw-json /path/to/dw.json');
146
+ logger.log('1. Open a VS Code workspace with a dw.json file (recommended - auto-discovered)');
147
+ logger.log('2. Use --dw-json /path/to/dw.json (explicit path)');
115
148
  logger.log('3. Set environment variables: SFCC_HOSTNAME, SFCC_USERNAME, SFCC_PASSWORD');
116
149
  }
117
150
  }
@@ -4,14 +4,8 @@
4
4
  * Re-exports all service interfaces and implementations for easy importing
5
5
  */
6
6
 
7
- export {
8
- IFileSystemService,
9
- FileSystemService,
10
- MockFileSystemService,
11
- } from './file-system-service.js';
7
+ export type { IFileSystemService } from './file-system-service.js';
8
+ export { FileSystemService, MockFileSystemService } from './file-system-service.js';
12
9
 
13
- export {
14
- IPathService,
15
- PathService,
16
- MockPathService,
17
- } from './path-service.js';
10
+ export type { IPathService } from './path-service.js';
11
+ export { PathService, MockPathService } from './path-service.js';
@@ -0,0 +1,83 @@
1
+ import { GenericToolSpec, ToolArguments } from '../core/handlers/base-handler.js';
2
+ import { ValidationHelpers } from '../core/handlers/validation-helpers.js';
3
+ import { AgentInstructionsClient } from '../clients/agent-instructions-client.js';
4
+ import { InstructionAdvisor } from '../core/instruction-advisor.js';
5
+
6
+ export const AGENT_INSTRUCTION_TOOL_NAMES = [
7
+ 'sync_agent_instructions',
8
+ 'disable_agent_sync',
9
+ ] as const;
10
+
11
+ export type AgentInstructionToolName = typeof AGENT_INSTRUCTION_TOOL_NAMES[number];
12
+ export const AGENT_INSTRUCTION_TOOL_NAMES_SET = new Set<AgentInstructionToolName>(AGENT_INSTRUCTION_TOOL_NAMES);
13
+
14
+ const DESTINATION_VALUES = ['project', 'user', 'temp'];
15
+ const MERGE_VALUES = ['append', 'replace', 'skip'];
16
+
17
+ export const AGENT_INSTRUCTION_TOOL_CONFIG: Record<AgentInstructionToolName, GenericToolSpec<ToolArguments, any>> = {
18
+ sync_agent_instructions: {
19
+ validate: (args: ToolArguments, toolName: string) => {
20
+ ValidationHelpers.validateArguments(args, [
21
+ {
22
+ field: 'destinationType',
23
+ required: false,
24
+ type: 'string',
25
+ validator: (value: string) => DESTINATION_VALUES.includes(value),
26
+ errorMessage: 'destinationType must be one of project | user | temp',
27
+ },
28
+ {
29
+ field: 'mergeStrategy',
30
+ required: false,
31
+ type: 'string',
32
+ validator: (value: string) => MERGE_VALUES.includes(value),
33
+ errorMessage: 'mergeStrategy must be one of append | replace | skip',
34
+ },
35
+ { field: 'preferredRoot', required: false, type: 'string' },
36
+ { field: 'skillsDir', required: false, type: 'string' },
37
+ { field: 'tempDir', required: false, type: 'string' },
38
+ { field: 'includeAgents', required: false, type: 'boolean' },
39
+ { field: 'includeSkills', required: false, type: 'boolean' },
40
+ { field: 'installMissingOnly', required: false, type: 'boolean' },
41
+ { field: 'dryRun', required: false, type: 'boolean' },
42
+ ], toolName);
43
+ },
44
+ exec: async (args: ToolArguments, context) => {
45
+ const client = context.agentInstructionsClient as AgentInstructionsClient;
46
+ return client.syncInstructions({
47
+ destinationType: args.destinationType,
48
+ preferredRoot: args.preferredRoot,
49
+ skillsDir: args.skillsDir,
50
+ mergeStrategy: args.mergeStrategy,
51
+ includeAgents: args.includeAgents,
52
+ includeSkills: args.includeSkills,
53
+ installMissingOnly: args.installMissingOnly,
54
+ dryRun: args.dryRun,
55
+ tempDir: args.tempDir,
56
+ });
57
+ },
58
+ logMessage: (args: ToolArguments) => `Sync agent instructions (${args.destinationType ?? 'project'})`,
59
+ },
60
+ disable_agent_sync: {
61
+ validate: (args: ToolArguments, toolName: string) => {
62
+ ValidationHelpers.validateArguments(args, [
63
+ { field: 'preferredRoot', required: false, type: 'string' },
64
+ ], toolName);
65
+ },
66
+ exec: async (args: ToolArguments, context) => {
67
+ const client = context.agentInstructionsClient as AgentInstructionsClient;
68
+ const advisor = context.instructionAdvisor as InstructionAdvisor;
69
+
70
+ // Get workspace root from client status
71
+ const status = await client.getStatus(args.preferredRoot);
72
+ if (!status.workspaceRoot) {
73
+ return {
74
+ success: false,
75
+ message: 'Cannot disable agent sync: no workspace root found. Provide preferredRoot parameter.',
76
+ };
77
+ }
78
+
79
+ return advisor.disableAgentSync(status.workspaceRoot);
80
+ },
81
+ logMessage: () => 'Disable agent sync suggestions',
82
+ },
83
+ };
@@ -1,7 +1,7 @@
1
1
  import { GenericToolSpec, ToolExecutionContext } from '../core/handlers/base-handler.js';
2
2
  import { ToolArguments } from '../core/handlers/base-handler.js';
3
3
  import { ValidationHelpers, CommonValidations } from '../core/handlers/validation-helpers.js';
4
- import { CartridgeGenerationClient } from '../clients/cartridge-generation-client.js';
4
+ import { CartridgeGenerationClient } from '../clients/cartridge/index.js';
5
5
 
6
6
  export const CARTRIDGE_TOOL_NAMES = [
7
7
  'generate_cartridge_structure',
@@ -17,10 +17,6 @@ export const CODE_VERSION_TOOL_NAMES_SET = new Set<CodeVersionToolName>(CODE_VER
17
17
  */
18
18
  export const CODE_VERSION_TOOL_CONFIG: Record<CodeVersionToolName, GenericToolSpec<ToolArguments, any>> = {
19
19
  get_code_versions: {
20
- defaults: (args: ToolArguments) => args,
21
- validate: (_args: ToolArguments, _toolName: string) => {
22
- // No validation needed for list operation
23
- },
24
20
  exec: async (_args: ToolArguments, context: ToolExecutionContext) => {
25
21
  const client = context.codeVersionsClient as OCAPICodeVersionsClient;
26
22
  return client.getCodeVersions();
@@ -29,7 +25,6 @@ export const CODE_VERSION_TOOL_CONFIG: Record<CodeVersionToolName, GenericToolSp
29
25
  },
30
26
 
31
27
  activate_code_version: {
32
- defaults: (args: ToolArguments) => args,
33
28
  validate: (args: ToolArguments, toolName: string) => {
34
29
  ValidationHelpers.validateArguments(args, CommonValidations.requiredString('codeVersionId'), toolName);
35
30
  },
@@ -57,7 +57,6 @@ export const DOCS_TOOL_CONFIG: Record<DocToolName, GenericToolSpec<ToolArguments
57
57
  },
58
58
 
59
59
  search_sfcc_classes: {
60
- defaults: (args: ToolArguments) => args,
61
60
  validate: (args: ToolArguments, toolName: string) => {
62
61
  ValidationHelpers.validateArguments(args, CommonValidations.requiredString('query'), toolName);
63
62
  },
@@ -69,7 +68,6 @@ export const DOCS_TOOL_CONFIG: Record<DocToolName, GenericToolSpec<ToolArguments
69
68
  },
70
69
 
71
70
  search_sfcc_methods: {
72
- defaults: (args: ToolArguments) => args,
73
71
  validate: (args: ToolArguments, toolName: string) => {
74
72
  ValidationHelpers.validateArguments(args, CommonValidations.requiredString('methodName'), toolName);
75
73
  },
@@ -81,10 +79,6 @@ export const DOCS_TOOL_CONFIG: Record<DocToolName, GenericToolSpec<ToolArguments
81
79
  },
82
80
 
83
81
  list_sfcc_classes: {
84
- defaults: (args: ToolArguments) => args,
85
- validate: (_args: ToolArguments, _toolName: string) => {
86
- // No validation needed for list operation
87
- },
88
82
  exec: async (args: ToolArguments, context: ToolExecutionContext) => {
89
83
  const client = context.docsClient as SFCCDocumentationClient;
90
84
  return client.getAvailableClasses();
@@ -93,7 +87,6 @@ export const DOCS_TOOL_CONFIG: Record<DocToolName, GenericToolSpec<ToolArguments
93
87
  },
94
88
 
95
89
  get_sfcc_class_documentation: {
96
- defaults: (args: ToolArguments) => args,
97
90
  validate: (args: ToolArguments, toolName: string) => {
98
91
  ValidationHelpers.validateArguments(args, CommonValidations.requiredString('className'), toolName);
99
92
  },