sfcc-dev-mcp 1.0.19 → 1.0.21
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/dist/clients/logs/index.d.ts +13 -0
- package/dist/clients/logs/index.d.ts.map +1 -0
- package/dist/clients/logs/index.js +15 -0
- package/dist/clients/logs/index.js.map +1 -0
- package/dist/clients/logs/log-analyzer.d.ts +55 -0
- package/dist/clients/logs/log-analyzer.d.ts.map +1 -0
- package/dist/clients/logs/log-analyzer.js +228 -0
- package/dist/clients/logs/log-analyzer.js.map +1 -0
- package/dist/clients/logs/log-client.d.ts +87 -0
- package/dist/clients/logs/log-client.d.ts.map +1 -0
- package/dist/clients/logs/log-client.js +418 -0
- package/dist/clients/logs/log-client.js.map +1 -0
- package/dist/clients/logs/log-constants.d.ts +37 -0
- package/dist/clients/logs/log-constants.d.ts.map +1 -0
- package/dist/clients/logs/log-constants.js +37 -0
- package/dist/clients/logs/log-constants.js.map +1 -0
- package/dist/clients/logs/log-file-discovery.d.ts +64 -0
- package/dist/clients/logs/log-file-discovery.d.ts.map +1 -0
- package/dist/clients/logs/log-file-discovery.js +249 -0
- package/dist/clients/logs/log-file-discovery.js.map +1 -0
- package/dist/clients/logs/log-file-reader.d.ts +55 -0
- package/dist/clients/logs/log-file-reader.d.ts.map +1 -0
- package/dist/clients/logs/log-file-reader.js +207 -0
- package/dist/clients/logs/log-file-reader.js.map +1 -0
- package/dist/clients/logs/log-formatter.d.ts +90 -0
- package/dist/clients/logs/log-formatter.d.ts.map +1 -0
- package/dist/clients/logs/log-formatter.js +189 -0
- package/dist/clients/logs/log-formatter.js.map +1 -0
- package/dist/clients/logs/log-processor.d.ts +91 -0
- package/dist/clients/logs/log-processor.d.ts.map +1 -0
- package/dist/clients/logs/log-processor.js +328 -0
- package/dist/clients/logs/log-processor.js.map +1 -0
- package/dist/clients/logs/log-types.d.ts +58 -0
- package/dist/clients/logs/log-types.d.ts.map +1 -0
- package/dist/clients/logs/log-types.js +8 -0
- package/dist/clients/logs/log-types.js.map +1 -0
- package/dist/clients/logs/webdav-client-manager.d.ts +28 -0
- package/dist/clients/logs/webdav-client-manager.d.ts.map +1 -0
- package/dist/clients/logs/webdav-client-manager.js +77 -0
- package/dist/clients/logs/webdav-client-manager.js.map +1 -0
- package/dist/docs/dw_customer/CustomerMgr.md +3 -3
- package/dist/docs/dw_customer/Wallet.md +25 -0
- package/dist/docs/dw_extensions.payments/SalesforceAdyenPaymentIntent.md +156 -0
- package/dist/docs/dw_extensions.payments/SalesforceAdyenSavedPaymentMethod.md +258 -0
- package/dist/docs/dw_extensions.payments/SalesforcePayPalOrder.md +36 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentIntent.md +1 -1
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsHooks.md +68 -1
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMerchantAccount.md +154 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMerchantAccountPaymentMethod.md +96 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsMgr.md +311 -2
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsSiteConfiguration.md +26 -0
- package/dist/docs/dw_extensions.payments/SalesforcePaymentsZone.md +458 -0
- package/dist/docs/dw_order/OrderMgr.md +3 -3
- package/dist/docs/dw_order.hooks/BasketMergeHooks.md +4 -4
- package/dist/docs/dw_order.hooks/CheckoutHooks.md +42 -0
- package/dist/utils/path-resolver.d.ts +5 -0
- package/dist/utils/path-resolver.d.ts.map +1 -1
- package/dist/utils/path-resolver.js +27 -5
- package/dist/utils/path-resolver.js.map +1 -1
- package/package.json +9 -3
- package/.github/ISSUE_TEMPLATE/bug_report.yml +0 -131
- package/.github/ISSUE_TEMPLATE/config.yml +0 -9
- package/.github/ISSUE_TEMPLATE/documentation.yml +0 -117
- package/.github/ISSUE_TEMPLATE/feature_request.yml +0 -151
- package/.github/ISSUE_TEMPLATE/question.yml +0 -102
- package/.github/PULL_REQUEST_TEMPLATE/bug_fix.md +0 -59
- package/.github/PULL_REQUEST_TEMPLATE/documentation.md +0 -48
- package/.github/PULL_REQUEST_TEMPLATE/new_tool.md +0 -55
- package/.github/agents/official-docs-researcher.agent.md +0 -56
- package/.github/dependabot.yml +0 -65
- package/.github/instructions/mcp-node-tests.instructions.md +0 -30
- package/.github/instructions/mcp-yml-tests.instructions.md +0 -27
- package/.github/pull_request_template.md +0 -103
- package/.github/skills/agent-authoring/SKILL.md +0 -66
- package/.github/skills/mcp-log-debugging/SKILL.md +0 -69
- package/.github/skills/mcp-programmatic-testing/SKILL.md +0 -142
- package/.github/skills/mcp-yaml-testing/SKILL.md +0 -136
- package/.github/skills/salesforce-developer-site-scraper/SKILL.md +0 -102
- package/.github/skills/salesforce-developer-site-scraper/scripts/scrape-to-markdown.js +0 -205
- package/.github/skills/salesforce-help-site-scraper/SKILL.md +0 -84
- package/.github/skills/salesforce-help-site-scraper/scripts/scrape-help-to-markdown.js +0 -212
- package/.github/skills/skill-authoring/SKILL.md +0 -228
- package/.github/skills/skill-authoring/references/PATTERNS.md +0 -384
- package/.github/workflows/ci.yml +0 -103
- package/.github/workflows/deploy-pages.yml +0 -59
- package/.github/workflows/publish.yml +0 -112
- package/.github/workflows/update-docs.yml +0 -182
- package/.husky/pre-commit +0 -2
- package/AGENTS.md +0 -638
- package/CONTRIBUTING.md +0 -323
- package/SECURITY.md +0 -148
- package/aegis.config.docs-only.json +0 -9
- package/aegis.config.json +0 -12
- package/aegis.config.with-dw.json +0 -15
- package/ai-instructions/AGENTS.md +0 -628
- package/ai-instructions/skills/sfcc-caching/SKILL.md +0 -89
- package/ai-instructions/skills/sfcc-cartridge-development/SKILL.md +0 -240
- package/ai-instructions/skills/sfcc-forms-development/SKILL.md +0 -261
- package/ai-instructions/skills/sfcc-forms-development/references/ARCHITECTURE-SGJC-SFRA.md +0 -143
- package/ai-instructions/skills/sfcc-forms-development/references/FORM-XML-CHEATSHEET.md +0 -127
- package/ai-instructions/skills/sfcc-fraud-prevention/SKILL.md +0 -95
- package/ai-instructions/skills/sfcc-hooks-registration/SKILL.md +0 -39
- package/ai-instructions/skills/sfcc-isml-development/SKILL.md +0 -370
- package/ai-instructions/skills/sfcc-isml-development/references/REMOTE-INCLUDES.md +0 -116
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-LAYOUTS.md +0 -50
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CART-ACCOUNT-AUTH.md +0 -45
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-PAGES-CATALOG.md +0 -85
- package/ai-instructions/skills/sfcc-isml-development/references/SFRA-STRUCTURE-COMPONENTS.md +0 -63
- package/ai-instructions/skills/sfcc-isml-development/references/UTILITIES-EXPRESSIONS.md +0 -159
- package/ai-instructions/skills/sfcc-isml-development/references/sfra-base-templates-architecture.md +0 -13
- package/ai-instructions/skills/sfcc-job-development/SKILL.md +0 -334
- package/ai-instructions/skills/sfcc-job-development/references/CHUNK-ORIENTED.md +0 -393
- package/ai-instructions/skills/sfcc-job-development/references/STEPTYPES-JSON.md +0 -271
- package/ai-instructions/skills/sfcc-job-development/references/TASK-ORIENTED.md +0 -257
- package/ai-instructions/skills/sfcc-localization/SKILL.md +0 -92
- package/ai-instructions/skills/sfcc-localization/references/CONTROLLERS.md +0 -63
- package/ai-instructions/skills/sfcc-localization/references/FORMATTING.md +0 -29
- package/ai-instructions/skills/sfcc-localization/references/FORMS-LOCALIZATION.md +0 -33
- package/ai-instructions/skills/sfcc-localization/references/JAVASCRIPT-LOCALIZATION.md +0 -41
- package/ai-instructions/skills/sfcc-localization/references/LOCALE-SWITCHING.md +0 -35
- package/ai-instructions/skills/sfcc-localization/references/PATTERNS.md +0 -740
- package/ai-instructions/skills/sfcc-localization/references/PROPERTIES-ENCODING.md +0 -25
- package/ai-instructions/skills/sfcc-localization/references/RESOURCE-BUNDLES.md +0 -67
- package/ai-instructions/skills/sfcc-localization/references/STATIC-FILES.md +0 -23
- package/ai-instructions/skills/sfcc-localization/references/TESTING.md +0 -21
- package/ai-instructions/skills/sfcc-localserviceregistry/SKILL.md +0 -374
- package/ai-instructions/skills/sfcc-logging/SKILL.md +0 -352
- package/ai-instructions/skills/sfcc-logging/references/LOG-FILES.md +0 -282
- package/ai-instructions/skills/sfcc-ocapi-hooks/SKILL.md +0 -350
- package/ai-instructions/skills/sfcc-ocapi-scapi-slas/SKILL.md +0 -108
- package/ai-instructions/skills/sfcc-page-designer/SKILL.md +0 -353
- package/ai-instructions/skills/sfcc-page-designer/references/ATTRIBUTE-TYPES.md +0 -436
- package/ai-instructions/skills/sfcc-page-designer/references/META-DEFINITIONS.md +0 -322
- package/ai-instructions/skills/sfcc-performance/SKILL.md +0 -424
- package/ai-instructions/skills/sfcc-platform-limits/SKILL.md +0 -89
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/SKILL.md +0 -237
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/AUTHENTICATION.md +0 -214
- package/ai-instructions/skills/sfcc-scapi-custom-endpoints/references/URL-MAPPING.md +0 -253
- package/ai-instructions/skills/sfcc-scapi-hooks/SKILL.md +0 -341
- package/ai-instructions/skills/sfcc-script-evaluation/SKILL.md +0 -380
- package/ai-instructions/skills/sfcc-security/SKILL.md +0 -394
- package/ai-instructions/skills/sfcc-sfra-client-side-js/SKILL.md +0 -270
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/AJAX-CSRF-VALIDATION.md +0 -285
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/BASE-MODULE-INDEX.md +0 -206
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/EXTENSION-PATTERNS.md +0 -165
- package/ai-instructions/skills/sfcc-sfra-client-side-js/references/PLUGIN-PATTERNS.md +0 -185
- package/ai-instructions/skills/sfcc-sfra-controllers/SKILL.md +0 -347
- package/ai-instructions/skills/sfcc-sfra-controllers/references/MIDDLEWARE-REFERENCE.md +0 -257
- package/ai-instructions/skills/sfcc-sfra-controllers/references/REMOTE-INCLUDES.md +0 -193
- package/ai-instructions/skills/sfcc-sfra-controllers/references/standard-sfra-controllers.md +0 -814
- package/ai-instructions/skills/sfcc-sfra-models/SKILL.md +0 -322
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-PATTERNS.md +0 -530
- package/ai-instructions/skills/sfcc-sfra-models/references/MODEL-STRUCTURE.md +0 -234
- package/ai-instructions/skills/sfcc-sfra-models/references/TESTING-SECURITY.md +0 -417
- package/ai-instructions/skills/sfcc-sfra-scss/SKILL.md +0 -393
- package/ai-instructions/skills/sfcc-webdav-workflows/SKILL.md +0 -111
- package/docs/TopLevel/APIException.md +0 -68
- package/docs/TopLevel/Array.md +0 -897
- package/docs/TopLevel/ArrayBuffer.md +0 -79
- package/docs/TopLevel/BigInt.md +0 -132
- package/docs/TopLevel/Boolean.md +0 -62
- package/docs/TopLevel/ConversionError.md +0 -23
- package/docs/TopLevel/DataView.md +0 -352
- package/docs/TopLevel/Date.md +0 -924
- package/docs/TopLevel/ES6Iterator.md +0 -33
- package/docs/TopLevel/Error.md +0 -88
- package/docs/TopLevel/EvalError.md +0 -23
- package/docs/TopLevel/Fault.md +0 -87
- package/docs/TopLevel/Float32Array.md +0 -130
- package/docs/TopLevel/Float64Array.md +0 -130
- package/docs/TopLevel/Function.md +0 -105
- package/docs/TopLevel/Generator.md +0 -78
- package/docs/TopLevel/IOError.md +0 -62
- package/docs/TopLevel/Int16Array.md +0 -130
- package/docs/TopLevel/Int32Array.md +0 -130
- package/docs/TopLevel/Int8Array.md +0 -130
- package/docs/TopLevel/InternalError.md +0 -23
- package/docs/TopLevel/Iterable.md +0 -41
- package/docs/TopLevel/Iterator.md +0 -48
- package/docs/TopLevel/JSON.md +0 -162
- package/docs/TopLevel/Map.md +0 -216
- package/docs/TopLevel/Math.md +0 -913
- package/docs/TopLevel/Module.md +0 -45
- package/docs/TopLevel/Namespace.md +0 -96
- package/docs/TopLevel/Number.md +0 -417
- package/docs/TopLevel/Object.md +0 -641
- package/docs/TopLevel/QName.md +0 -96
- package/docs/TopLevel/RangeError.md +0 -23
- package/docs/TopLevel/ReferenceError.md +0 -23
- package/docs/TopLevel/RegExp.md +0 -109
- package/docs/TopLevel/Set.md +0 -165
- package/docs/TopLevel/StopIteration.md +0 -20
- package/docs/TopLevel/String.md +0 -1299
- package/docs/TopLevel/Symbol.md +0 -78
- package/docs/TopLevel/SyntaxError.md +0 -23
- package/docs/TopLevel/SystemError.md +0 -62
- package/docs/TopLevel/TypeError.md +0 -23
- package/docs/TopLevel/URIError.md +0 -23
- package/docs/TopLevel/Uint16Array.md +0 -130
- package/docs/TopLevel/Uint32Array.md +0 -130
- package/docs/TopLevel/Uint8Array.md +0 -130
- package/docs/TopLevel/Uint8ClampedArray.md +0 -130
- package/docs/TopLevel/WeakMap.md +0 -137
- package/docs/TopLevel/WeakSet.md +0 -92
- package/docs/TopLevel/XML.md +0 -937
- package/docs/TopLevel/XMLList.md +0 -484
- package/docs/TopLevel/XMLStreamError.md +0 -74
- package/docs/TopLevel/arguments.md +0 -34
- package/docs/TopLevel/global.md +0 -474
- package/docs/dw_campaign/ABTest.md +0 -47
- package/docs/dw_campaign/ABTestMgr.md +0 -70
- package/docs/dw_campaign/ABTestSegment.md +0 -96
- package/docs/dw_campaign/AmountDiscount.md +0 -51
- package/docs/dw_campaign/ApproachingDiscount.md +0 -124
- package/docs/dw_campaign/BonusChoiceDiscount.md +0 -146
- package/docs/dw_campaign/BonusDiscount.md +0 -48
- package/docs/dw_campaign/Campaign.md +0 -365
- package/docs/dw_campaign/CampaignMgr.md +0 -395
- package/docs/dw_campaign/CampaignStatusCodes.md +0 -48
- package/docs/dw_campaign/Coupon.md +0 -310
- package/docs/dw_campaign/CouponMgr.md +0 -144
- package/docs/dw_campaign/CouponRedemption.md +0 -94
- package/docs/dw_campaign/CouponStatusCodes.md +0 -86
- package/docs/dw_campaign/Discount.md +0 -226
- package/docs/dw_campaign/DiscountPlan.md +0 -282
- package/docs/dw_campaign/FixedPriceDiscount.md +0 -52
- package/docs/dw_campaign/FixedPriceShippingDiscount.md +0 -52
- package/docs/dw_campaign/FreeDiscount.md +0 -17
- package/docs/dw_campaign/FreeShippingDiscount.md +0 -17
- package/docs/dw_campaign/PercentageDiscount.md +0 -52
- package/docs/dw_campaign/PercentageOptionDiscount.md +0 -48
- package/docs/dw_campaign/PriceBookPriceDiscount.md +0 -47
- package/docs/dw_campaign/Promotion.md +0 -874
- package/docs/dw_campaign/PromotionMgr.md +0 -386
- package/docs/dw_campaign/PromotionPlan.md +0 -330
- package/docs/dw_campaign/SlotContent.md +0 -144
- package/docs/dw_campaign/SourceCodeGroup.md +0 -72
- package/docs/dw_campaign/SourceCodeInfo.md +0 -144
- package/docs/dw_campaign/SourceCodeStatusCodes.md +0 -36
- package/docs/dw_campaign/TotalFixedPriceDiscount.md +0 -47
- package/docs/dw_catalog/Catalog.md +0 -122
- package/docs/dw_catalog/CatalogMgr.md +0 -182
- package/docs/dw_catalog/Category.md +0 -1308
- package/docs/dw_catalog/CategoryAssignment.md +0 -192
- package/docs/dw_catalog/CategoryLink.md +0 -126
- package/docs/dw_catalog/PriceBook.md +0 -242
- package/docs/dw_catalog/PriceBookMgr.md +0 -204
- package/docs/dw_catalog/Product.md +0 -2593
- package/docs/dw_catalog/ProductActiveData.md +0 -1275
- package/docs/dw_catalog/ProductAttributeModel.md +0 -277
- package/docs/dw_catalog/ProductAvailabilityLevels.md +0 -142
- package/docs/dw_catalog/ProductAvailabilityModel.md +0 -380
- package/docs/dw_catalog/ProductInventoryList.md +0 -140
- package/docs/dw_catalog/ProductInventoryMgr.md +0 -117
- package/docs/dw_catalog/ProductInventoryRecord.md +0 -563
- package/docs/dw_catalog/ProductLink.md +0 -144
- package/docs/dw_catalog/ProductMgr.md +0 -138
- package/docs/dw_catalog/ProductOption.md +0 -214
- package/docs/dw_catalog/ProductOptionModel.md +0 -246
- package/docs/dw_catalog/ProductOptionValue.md +0 -123
- package/docs/dw_catalog/ProductPriceInfo.md +0 -172
- package/docs/dw_catalog/ProductPriceModel.md +0 -745
- package/docs/dw_catalog/ProductPriceTable.md +0 -134
- package/docs/dw_catalog/ProductSearchHit.md +0 -581
- package/docs/dw_catalog/ProductSearchModel.md +0 -2018
- package/docs/dw_catalog/ProductSearchRefinementDefinition.md +0 -97
- package/docs/dw_catalog/ProductSearchRefinementValue.md +0 -73
- package/docs/dw_catalog/ProductSearchRefinements.md +0 -216
- package/docs/dw_catalog/ProductVariationAttribute.md +0 -100
- package/docs/dw_catalog/ProductVariationAttributeValue.md +0 -238
- package/docs/dw_catalog/ProductVariationModel.md +0 -849
- package/docs/dw_catalog/Recommendation.md +0 -314
- package/docs/dw_catalog/SearchModel.md +0 -901
- package/docs/dw_catalog/SearchRefinementDefinition.md +0 -146
- package/docs/dw_catalog/SearchRefinementValue.md +0 -185
- package/docs/dw_catalog/SearchRefinements.md +0 -180
- package/docs/dw_catalog/SortingOption.md +0 -120
- package/docs/dw_catalog/SortingRule.md +0 -47
- package/docs/dw_catalog/Store.md +0 -562
- package/docs/dw_catalog/StoreGroup.md +0 -96
- package/docs/dw_catalog/StoreInventoryFilter.md +0 -74
- package/docs/dw_catalog/StoreInventoryFilterValue.md +0 -74
- package/docs/dw_catalog/StoreMgr.md +0 -236
- package/docs/dw_catalog/Variant.md +0 -859
- package/docs/dw_catalog/VariationGroup.md +0 -792
- package/docs/dw_content/Content.md +0 -534
- package/docs/dw_content/ContentMgr.md +0 -166
- package/docs/dw_content/ContentSearchModel.md +0 -682
- package/docs/dw_content/ContentSearchRefinementDefinition.md +0 -49
- package/docs/dw_content/ContentSearchRefinementValue.md +0 -17
- package/docs/dw_content/ContentSearchRefinements.md +0 -208
- package/docs/dw_content/Folder.md +0 -467
- package/docs/dw_content/Library.md +0 -121
- package/docs/dw_content/MarkupText.md +0 -88
- package/docs/dw_content/MediaFile.md +0 -317
- package/docs/dw_crypto/CertificateRef.md +0 -42
- package/docs/dw_crypto/CertificateUtils.md +0 -187
- package/docs/dw_crypto/Cipher.md +0 -530
- package/docs/dw_crypto/Encoding.md +0 -220
- package/docs/dw_crypto/JWE.md +0 -224
- package/docs/dw_crypto/JWEHeader.md +0 -172
- package/docs/dw_crypto/JWS.md +0 -264
- package/docs/dw_crypto/JWSHeader.md +0 -148
- package/docs/dw_crypto/KeyRef.md +0 -44
- package/docs/dw_crypto/Mac.md +0 -139
- package/docs/dw_crypto/MessageDigest.md +0 -175
- package/docs/dw_crypto/SecureRandom.md +0 -148
- package/docs/dw_crypto/Signature.md +0 -252
- package/docs/dw_crypto/WeakCipher.md +0 -538
- package/docs/dw_crypto/WeakMac.md +0 -121
- package/docs/dw_crypto/WeakMessageDigest.md +0 -163
- package/docs/dw_crypto/WeakSignature.md +0 -242
- package/docs/dw_crypto/X509Certificate.md +0 -193
- package/docs/dw_customer/AddressBook.md +0 -163
- package/docs/dw_customer/AgentUserMgr.md +0 -83
- package/docs/dw_customer/AgentUserStatusCodes.md +0 -96
- package/docs/dw_customer/AuthenticationStatus.md +0 -138
- package/docs/dw_customer/Credentials.md +0 -494
- package/docs/dw_customer/Customer.md +0 -571
- package/docs/dw_customer/CustomerActiveData.md +0 -552
- package/docs/dw_customer/CustomerAddress.md +0 -852
- package/docs/dw_customer/CustomerCDPData.md +0 -70
- package/docs/dw_customer/CustomerContextMgr.md +0 -64
- package/docs/dw_customer/CustomerGroup.md +0 -134
- package/docs/dw_customer/CustomerList.md +0 -71
- package/docs/dw_customer/CustomerMgr.md +0 -735
- package/docs/dw_customer/CustomerPasswordConstraints.md +0 -142
- package/docs/dw_customer/CustomerPaymentInstrument.md +0 -125
- package/docs/dw_customer/CustomerStatusCodes.md +0 -30
- package/docs/dw_customer/EncryptedObject.md +0 -18
- package/docs/dw_customer/ExternalProfile.md +0 -160
- package/docs/dw_customer/OrderHistory.md +0 -111
- package/docs/dw_customer/ProductList.md +0 -1000
- package/docs/dw_customer/ProductListItem.md +0 -504
- package/docs/dw_customer/ProductListItemPurchase.md +0 -145
- package/docs/dw_customer/ProductListMgr.md +0 -234
- package/docs/dw_customer/ProductListRegistrant.md +0 -193
- package/docs/dw_customer/Profile.md +0 -1128
- package/docs/dw_customer/Wallet.md +0 -118
- package/docs/dw_extensions.applepay/ApplePayHookResult.md +0 -209
- package/docs/dw_extensions.applepay/ApplePayHooks.md +0 -255
- package/docs/dw_extensions.facebook/FacebookFeedHooks.md +0 -47
- package/docs/dw_extensions.facebook/FacebookProduct.md +0 -1621
- package/docs/dw_extensions.paymentrequest/PaymentRequestHookResult.md +0 -159
- package/docs/dw_extensions.paymentrequest/PaymentRequestHooks.md +0 -160
- package/docs/dw_extensions.payments/SalesforceBancontactPaymentDetails.md +0 -79
- package/docs/dw_extensions.payments/SalesforceCardPaymentDetails.md +0 -103
- package/docs/dw_extensions.payments/SalesforceEpsPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceIdealPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceKlarnaPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforcePayPalOrder.md +0 -246
- package/docs/dw_extensions.payments/SalesforcePayPalOrderAddress.md +0 -191
- package/docs/dw_extensions.payments/SalesforcePayPalOrderPayer.md +0 -118
- package/docs/dw_extensions.payments/SalesforcePayPalPaymentDetails.md +0 -79
- package/docs/dw_extensions.payments/SalesforcePaymentDetails.md +0 -57
- package/docs/dw_extensions.payments/SalesforcePaymentIntent.md +0 -281
- package/docs/dw_extensions.payments/SalesforcePaymentMethod.md +0 -346
- package/docs/dw_extensions.payments/SalesforcePaymentRequest.md +0 -784
- package/docs/dw_extensions.payments/SalesforcePaymentsHooks.md +0 -45
- package/docs/dw_extensions.payments/SalesforcePaymentsMgr.md +0 -634
- package/docs/dw_extensions.payments/SalesforcePaymentsSiteConfiguration.md +0 -95
- package/docs/dw_extensions.payments/SalesforceSepaDebitPaymentDetails.md +0 -51
- package/docs/dw_extensions.payments/SalesforceVenmoPaymentDetails.md +0 -79
- package/docs/dw_extensions.pinterest/PinterestAvailability.md +0 -86
- package/docs/dw_extensions.pinterest/PinterestFeedHooks.md +0 -69
- package/docs/dw_extensions.pinterest/PinterestOrder.md +0 -232
- package/docs/dw_extensions.pinterest/PinterestOrderHooks.md +0 -45
- package/docs/dw_extensions.pinterest/PinterestProduct.md +0 -850
- package/docs/dw_io/CSVStreamReader.md +0 -80
- package/docs/dw_io/CSVStreamWriter.md +0 -60
- package/docs/dw_io/File.md +0 -614
- package/docs/dw_io/FileReader.md +0 -41
- package/docs/dw_io/FileWriter.md +0 -103
- package/docs/dw_io/InputStream.md +0 -34
- package/docs/dw_io/OutputStream.md +0 -34
- package/docs/dw_io/PrintWriter.md +0 -71
- package/docs/dw_io/RandomAccessFileReader.md +0 -173
- package/docs/dw_io/Reader.md +0 -274
- package/docs/dw_io/StringWriter.md +0 -81
- package/docs/dw_io/Writer.md +0 -92
- package/docs/dw_io/XMLIndentingStreamWriter.md +0 -112
- package/docs/dw_io/XMLStreamConstants.md +0 -114
- package/docs/dw_io/XMLStreamReader.md +0 -1043
- package/docs/dw_io/XMLStreamWriter.md +0 -572
- package/docs/dw_job/JobExecution.md +0 -107
- package/docs/dw_job/JobStepExecution.md +0 -151
- package/docs/dw_net/FTPClient.md +0 -699
- package/docs/dw_net/FTPFileInfo.md +0 -122
- package/docs/dw_net/HTTPClient.md +0 -831
- package/docs/dw_net/HTTPClientLoggingConfig.md +0 -296
- package/docs/dw_net/HTTPRequestPart.md +0 -206
- package/docs/dw_net/Mail.md +0 -551
- package/docs/dw_net/SFTPClient.md +0 -591
- package/docs/dw_net/SFTPFileInfo.md +0 -122
- package/docs/dw_net/WebDAVClient.md +0 -715
- package/docs/dw_net/WebDAVFileInfo.md +0 -184
- package/docs/dw_object/ActiveData.md +0 -75
- package/docs/dw_object/CustomAttributes.md +0 -16
- package/docs/dw_object/CustomObject.md +0 -73
- package/docs/dw_object/CustomObjectMgr.md +0 -291
- package/docs/dw_object/Extensible.md +0 -64
- package/docs/dw_object/ExtensibleObject.md +0 -68
- package/docs/dw_object/Note.md +0 -121
- package/docs/dw_object/ObjectAttributeDefinition.md +0 -481
- package/docs/dw_object/ObjectAttributeGroup.md +0 -170
- package/docs/dw_object/ObjectAttributeValueDefinition.md +0 -72
- package/docs/dw_object/ObjectTypeDefinition.md +0 -216
- package/docs/dw_object/PersistentObject.md +0 -94
- package/docs/dw_object/SimpleExtensible.md +0 -46
- package/docs/dw_object/SystemObjectMgr.md +0 -153
- package/docs/dw_order/AbstractItem.md +0 -244
- package/docs/dw_order/AbstractItemCtnr.md +0 -240
- package/docs/dw_order/Appeasement.md +0 -367
- package/docs/dw_order/AppeasementItem.md +0 -90
- package/docs/dw_order/Basket.md +0 -362
- package/docs/dw_order/BasketMgr.md +0 -418
- package/docs/dw_order/BonusDiscountLineItem.md +0 -248
- package/docs/dw_order/CouponLineItem.md +0 -272
- package/docs/dw_order/CreateAgentBasketLimitExceededException.md +0 -18
- package/docs/dw_order/CreateBasketFromOrderException.md +0 -26
- package/docs/dw_order/CreateCouponLineItemException.md +0 -26
- package/docs/dw_order/CreateOrderException.md +0 -18
- package/docs/dw_order/CreateTemporaryBasketLimitExceededException.md +0 -18
- package/docs/dw_order/GiftCertificate.md +0 -569
- package/docs/dw_order/GiftCertificateLineItem.md +0 -324
- package/docs/dw_order/GiftCertificateMgr.md +0 -197
- package/docs/dw_order/GiftCertificateStatusCodes.md +0 -60
- package/docs/dw_order/Invoice.md +0 -418
- package/docs/dw_order/InvoiceItem.md +0 -222
- package/docs/dw_order/LineItem.md +0 -532
- package/docs/dw_order/LineItemCtnr.md +0 -2431
- package/docs/dw_order/Order.md +0 -2567
- package/docs/dw_order/OrderAddress.md +0 -807
- package/docs/dw_order/OrderItem.md +0 -536
- package/docs/dw_order/OrderMgr.md +0 -535
- package/docs/dw_order/OrderPaymentInstrument.md +0 -220
- package/docs/dw_order/OrderProcessStatusCodes.md +0 -84
- package/docs/dw_order/PaymentCard.md +0 -217
- package/docs/dw_order/PaymentInstrument.md +0 -1462
- package/docs/dw_order/PaymentMethod.md +0 -242
- package/docs/dw_order/PaymentMgr.md +0 -117
- package/docs/dw_order/PaymentProcessor.md +0 -70
- package/docs/dw_order/PaymentStatusCodes.md +0 -42
- package/docs/dw_order/PaymentTransaction.md +0 -328
- package/docs/dw_order/PriceAdjustment.md +0 -640
- package/docs/dw_order/PriceAdjustmentLimitTypes.md +0 -38
- package/docs/dw_order/ProductLineItem.md +0 -1821
- package/docs/dw_order/ProductShippingCost.md +0 -96
- package/docs/dw_order/ProductShippingLineItem.md +0 -326
- package/docs/dw_order/ProductShippingModel.md +0 -125
- package/docs/dw_order/Return.md +0 -360
- package/docs/dw_order/ReturnCase.md +0 -400
- package/docs/dw_order/ReturnCaseItem.md +0 -373
- package/docs/dw_order/ReturnItem.md +0 -362
- package/docs/dw_order/Shipment.md +0 -1251
- package/docs/dw_order/ShipmentShippingCost.md +0 -46
- package/docs/dw_order/ShipmentShippingModel.md +0 -146
- package/docs/dw_order/ShippingLineItem.md +0 -278
- package/docs/dw_order/ShippingLocation.md +0 -366
- package/docs/dw_order/ShippingMethod.md +0 -266
- package/docs/dw_order/ShippingMgr.md +0 -158
- package/docs/dw_order/ShippingOrder.md +0 -561
- package/docs/dw_order/ShippingOrderItem.md +0 -355
- package/docs/dw_order/SumItem.md +0 -147
- package/docs/dw_order/TaxGroup.md +0 -143
- package/docs/dw_order/TaxItem.md +0 -74
- package/docs/dw_order/TaxMgr.md +0 -227
- package/docs/dw_order/TrackingInfo.md +0 -312
- package/docs/dw_order/TrackingRef.md +0 -113
- package/docs/dw_order.hooks/BasketMergeHooks.md +0 -42
- package/docs/dw_order.hooks/CalculateHooks.md +0 -77
- package/docs/dw_order.hooks/OrderHooks.md +0 -41
- package/docs/dw_order.hooks/PaymentHooks.md +0 -180
- package/docs/dw_order.hooks/ReturnHooks.md +0 -135
- package/docs/dw_order.hooks/ShippingOrderHooks.md +0 -245
- package/docs/dw_rpc/SOAPUtil.md +0 -465
- package/docs/dw_rpc/Stub.md +0 -289
- package/docs/dw_rpc/WebReference.md +0 -83
- package/docs/dw_suggest/BrandSuggestions.md +0 -17
- package/docs/dw_suggest/CategorySuggestions.md +0 -53
- package/docs/dw_suggest/ContentSuggestions.md +0 -53
- package/docs/dw_suggest/CustomSuggestions.md +0 -17
- package/docs/dw_suggest/ProductSuggestions.md +0 -53
- package/docs/dw_suggest/SearchPhraseSuggestions.md +0 -117
- package/docs/dw_suggest/SuggestModel.md +0 -403
- package/docs/dw_suggest/SuggestedCategory.md +0 -46
- package/docs/dw_suggest/SuggestedContent.md +0 -46
- package/docs/dw_suggest/SuggestedPhrase.md +0 -70
- package/docs/dw_suggest/SuggestedProduct.md +0 -47
- package/docs/dw_suggest/SuggestedTerm.md +0 -143
- package/docs/dw_suggest/SuggestedTerms.md +0 -132
- package/docs/dw_suggest/Suggestions.md +0 -179
- package/docs/dw_svc/FTPService.md +0 -118
- package/docs/dw_svc/FTPServiceDefinition.md +0 -69
- package/docs/dw_svc/HTTPFormService.md +0 -18
- package/docs/dw_svc/HTTPFormServiceDefinition.md +0 -18
- package/docs/dw_svc/HTTPService.md +0 -415
- package/docs/dw_svc/HTTPServiceDefinition.md +0 -303
- package/docs/dw_svc/LocalServiceRegistry.md +0 -43
- package/docs/dw_svc/Result.md +0 -303
- package/docs/dw_svc/SOAPService.md +0 -115
- package/docs/dw_svc/SOAPServiceDefinition.md +0 -17
- package/docs/dw_svc/Service.md +0 -295
- package/docs/dw_svc/ServiceCallback.md +0 -268
- package/docs/dw_svc/ServiceConfig.md +0 -120
- package/docs/dw_svc/ServiceCredential.md +0 -156
- package/docs/dw_svc/ServiceDefinition.md +0 -176
- package/docs/dw_svc/ServiceProfile.md +0 -168
- package/docs/dw_svc/ServiceRegistry.md +0 -109
- package/docs/dw_system/AgentUserStatusCodes.md +0 -21
- package/docs/dw_system/Cache.md +0 -102
- package/docs/dw_system/CacheMgr.md +0 -42
- package/docs/dw_system/HookMgr.md +0 -66
- package/docs/dw_system/InternalObject.md +0 -56
- package/docs/dw_system/JobProcessMonitor.md +0 -124
- package/docs/dw_system/Log.md +0 -237
- package/docs/dw_system/LogNDC.md +0 -88
- package/docs/dw_system/Logger.md +0 -263
- package/docs/dw_system/OrganizationPreferences.md +0 -18
- package/docs/dw_system/Pipeline.md +0 -73
- package/docs/dw_system/PipelineDictionary.md +0 -16
- package/docs/dw_system/RESTErrorResponse.md +0 -66
- package/docs/dw_system/RESTResponseMgr.md +0 -258
- package/docs/dw_system/RESTSuccessResponse.md +0 -39
- package/docs/dw_system/RemoteInclude.md +0 -74
- package/docs/dw_system/Request.md +0 -839
- package/docs/dw_system/RequestHooks.md +0 -59
- package/docs/dw_system/Response.md +0 -522
- package/docs/dw_system/SearchStatus.md +0 -151
- package/docs/dw_system/Session.md +0 -476
- package/docs/dw_system/Site.md +0 -585
- package/docs/dw_system/SitePreferences.md +0 -49
- package/docs/dw_system/Status.md +0 -273
- package/docs/dw_system/StatusItem.md +0 -273
- package/docs/dw_system/System.md +0 -200
- package/docs/dw_system/Transaction.md +0 -84
- package/docs/dw_util/ArrayList.md +0 -50
- package/docs/dw_util/Assert.md +0 -391
- package/docs/dw_util/BigInteger.md +0 -326
- package/docs/dw_util/Bytes.md +0 -252
- package/docs/dw_util/Calendar.md +0 -921
- package/docs/dw_util/Collection.md +0 -338
- package/docs/dw_util/Currency.md +0 -163
- package/docs/dw_util/DateUtils.md +0 -86
- package/docs/dw_util/Decimal.md +0 -438
- package/docs/dw_util/FilteringCollection.md +0 -93
- package/docs/dw_util/Geolocation.md +0 -271
- package/docs/dw_util/HashMap.md +0 -43
- package/docs/dw_util/HashSet.md +0 -46
- package/docs/dw_util/Iterator.md +0 -97
- package/docs/dw_util/LinkedHashMap.md +0 -43
- package/docs/dw_util/LinkedHashSet.md +0 -46
- package/docs/dw_util/List.md +0 -519
- package/docs/dw_util/Locale.md +0 -267
- package/docs/dw_util/Map.md +0 -313
- package/docs/dw_util/MapEntry.md +0 -70
- package/docs/dw_util/MappingKey.md +0 -76
- package/docs/dw_util/MappingMgr.md +0 -122
- package/docs/dw_util/PropertyComparator.md +0 -51
- package/docs/dw_util/SecureEncoder.md +0 -350
- package/docs/dw_util/SecureFilter.md +0 -350
- package/docs/dw_util/SeekableIterator.md +0 -176
- package/docs/dw_util/Set.md +0 -19
- package/docs/dw_util/SortedMap.md +0 -148
- package/docs/dw_util/SortedSet.md +0 -151
- package/docs/dw_util/StringUtils.md +0 -753
- package/docs/dw_util/Template.md +0 -88
- package/docs/dw_util/UUIDUtils.md +0 -38
- package/docs/dw_value/EnumValue.md +0 -92
- package/docs/dw_value/MimeEncodedText.md +0 -103
- package/docs/dw_value/Money.md +0 -610
- package/docs/dw_value/Quantity.md +0 -376
- package/docs/dw_web/CSRFProtection.md +0 -83
- package/docs/dw_web/ClickStream.md +0 -157
- package/docs/dw_web/ClickStreamEntry.md +0 -289
- package/docs/dw_web/Cookie.md +0 -396
- package/docs/dw_web/Cookies.md +0 -46
- package/docs/dw_web/Form.md +0 -74
- package/docs/dw_web/FormAction.md +0 -199
- package/docs/dw_web/FormElement.md +0 -220
- package/docs/dw_web/FormElementValidationResult.md +0 -157
- package/docs/dw_web/FormField.md +0 -603
- package/docs/dw_web/FormFieldOption.md +0 -238
- package/docs/dw_web/FormFieldOptions.md +0 -42
- package/docs/dw_web/FormGroup.md +0 -199
- package/docs/dw_web/FormList.md +0 -126
- package/docs/dw_web/FormListItem.md +0 -48
- package/docs/dw_web/Forms.md +0 -16
- package/docs/dw_web/HttpParameter.md +0 -513
- package/docs/dw_web/HttpParameterMap.md +0 -185
- package/docs/dw_web/LoopIterator.md +0 -261
- package/docs/dw_web/PageMetaData.md +0 -230
- package/docs/dw_web/PageMetaTag.md +0 -142
- package/docs/dw_web/PagingModel.md +0 -389
- package/docs/dw_web/Resource.md +0 -126
- package/docs/dw_web/URL.md +0 -213
- package/docs/dw_web/URLAction.md +0 -26
- package/docs/dw_web/URLParameter.md +0 -22
- package/docs/dw_web/URLRedirect.md +0 -71
- package/docs/dw_web/URLRedirectMgr.md +0 -73
- package/docs/dw_web/URLUtils.md +0 -1264
- package/docs/isml/isactivedatacontext.md +0 -382
- package/docs/isml/isactivedatahead.md +0 -566
- package/docs/isml/isanalyticsoff.md +0 -537
- package/docs/isml/isapplepay.md +0 -667
- package/docs/isml/isbreak.md +0 -687
- package/docs/isml/isbuynow.md +0 -682
- package/docs/isml/iscache.md +0 -802
- package/docs/isml/iscomment.md +0 -794
- package/docs/isml/iscomponent.md +0 -797
- package/docs/isml/iscontent.md +0 -594
- package/docs/isml/iscontinue.md +0 -563
- package/docs/isml/iscookie.md +0 -798
- package/docs/isml/isdecorate.md +0 -818
- package/docs/isml/isif.md +0 -737
- package/docs/isml/isinclude.md +0 -874
- package/docs/isml/isloop.md +0 -377
- package/docs/isml/ismodule.md +0 -844
- package/docs/isml/isnext.md +0 -672
- package/docs/isml/isobject.md +0 -760
- package/docs/isml/ispayment.md +0 -577
- package/docs/isml/ispaymentmessages.md +0 -664
- package/docs/isml/isprint.md +0 -875
- package/docs/isml/isredirect.md +0 -716
- package/docs/isml/isremove.md +0 -725
- package/docs/isml/isreplace.md +0 -783
- package/docs/isml/isscript.md +0 -859
- package/docs/isml/isselect.md +0 -908
- package/docs/isml/isset.md +0 -585
- package/docs/isml/isslot.md +0 -824
- package/docs/isml/isstatus.md +0 -711
- package/docs/sfra/account.md +0 -145
- package/docs/sfra/address.md +0 -84
- package/docs/sfra/billing.md +0 -90
- package/docs/sfra/cart.md +0 -134
- package/docs/sfra/categories.md +0 -124
- package/docs/sfra/content.md +0 -133
- package/docs/sfra/locale.md +0 -126
- package/docs/sfra/order.md +0 -219
- package/docs/sfra/payment.md +0 -131
- package/docs/sfra/price-default.md +0 -118
- package/docs/sfra/price-range.md +0 -77
- package/docs/sfra/price-tiered.md +0 -117
- package/docs/sfra/product-bundle.md +0 -164
- package/docs/sfra/product-full.md +0 -179
- package/docs/sfra/product-line-items.md +0 -147
- package/docs/sfra/product-search.md +0 -245
- package/docs/sfra/product-tile.md +0 -95
- package/docs/sfra/querystring.md +0 -240
- package/docs/sfra/render.md +0 -354
- package/docs/sfra/request.md +0 -210
- package/docs/sfra/response.md +0 -391
- package/docs/sfra/server.md +0 -375
- package/docs/sfra/shipping.md +0 -181
- package/docs/sfra/store.md +0 -145
- package/docs/sfra/stores.md +0 -190
- package/docs/sfra/totals.md +0 -184
- package/docs-site-v2/.vitepress/config.mts +0 -190
- package/docs-site-v2/.vitepress/theme/components/AssistantTabs.vue +0 -96
- package/docs-site-v2/.vitepress/theme/components/Callout.vue +0 -10
- package/docs-site-v2/.vitepress/theme/components/Collapsible.vue +0 -14
- package/docs-site-v2/.vitepress/theme/components/DwJsonBuilder.vue +0 -82
- package/docs-site-v2/.vitepress/theme/components/HomeSections.vue +0 -552
- package/docs-site-v2/.vitepress/theme/components/InstructionFilesTabs.vue +0 -87
- package/docs-site-v2/.vitepress/theme/components/ModeTabs.vue +0 -70
- package/docs-site-v2/.vitepress/theme/components/NewcomerCTA.vue +0 -14
- package/docs-site-v2/.vitepress/theme/components/QuickStartCards.vue +0 -20
- package/docs-site-v2/.vitepress/theme/components/QuickStartHero.vue +0 -20
- package/docs-site-v2/.vitepress/theme/components/SkillsList.vue +0 -48
- package/docs-site-v2/.vitepress/theme/components/ToolExplorer.vue +0 -85
- package/docs-site-v2/.vitepress/theme/custom.css +0 -1373
- package/docs-site-v2/.vitepress/theme/index.ts +0 -39
- package/docs-site-v2/data/skills.ts +0 -147
- package/docs-site-v2/data/tools.ts +0 -490
- package/docs-site-v2/development/index.md +0 -151
- package/docs-site-v2/examples/index.md +0 -333
- package/docs-site-v2/features/index.md +0 -144
- package/docs-site-v2/guide/ai-interfaces.md +0 -58
- package/docs-site-v2/guide/configuration.md +0 -208
- package/docs-site-v2/guide/index.md +0 -50
- package/docs-site-v2/index.md +0 -32
- package/docs-site-v2/package-lock.json +0 -2511
- package/docs-site-v2/package.json +0 -15
- package/docs-site-v2/public/404.html +0 -15
- 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/explain-product-pricing-methods-no-mcp.png +0 -0
- package/docs-site-v2/public/explain-product-pricing-methods.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 +0 -4174
- package/docs-site-v2/public/llms.txt +0 -44
- package/docs-site-v2/public/logo-dark.svg +0 -8
- package/docs-site-v2/public/logo.svg +0 -8
- package/docs-site-v2/public/robots.txt +0 -20
- package/docs-site-v2/public/site.webmanifest +0 -50
- package/docs-site-v2/public/sitemap.xml +0 -90
- package/docs-site-v2/script-debugger/index.md +0 -105
- package/docs-site-v2/scripts/generate-llms.js +0 -71
- package/docs-site-v2/scripts/generate-sitemap.js +0 -97
- package/docs-site-v2/security/index.md +0 -115
- package/docs-site-v2/skills/index.md +0 -40
- package/docs-site-v2/tools/index.md +0 -36
- package/docs-site-v2/troubleshooting/index.md +0 -204
- package/eslint.config.js +0 -139
- package/jest.config.js +0 -27
- package/memories/repo/docs-site-v2-build.json +0 -11
- package/scripts/convert-docs.js +0 -633
- package/scripts/validate-server-json.js +0 -68
- package/server.json +0 -20
- package/src/clients/agent-instructions-client.ts +0 -370
- package/src/clients/base/abstract-documentation-client.ts +0 -405
- package/src/clients/base/http-client.ts +0 -152
- package/src/clients/base/oauth-token.ts +0 -164
- package/src/clients/base/ocapi-auth-client.ts +0 -133
- package/src/clients/cartridge/cartridge-generation-client.ts +0 -302
- package/src/clients/cartridge/cartridge-structure.ts +0 -37
- package/src/clients/cartridge/cartridge-templates.ts +0 -246
- package/src/clients/cartridge/index.ts +0 -6
- package/src/clients/docs/class-content-parser.ts +0 -308
- package/src/clients/docs/class-name-resolver.ts +0 -99
- package/src/clients/docs/documentation-scanner.ts +0 -255
- package/src/clients/docs/index.ts +0 -16
- package/src/clients/docs/referenced-types-extractor.ts +0 -92
- package/src/clients/docs-client.ts +0 -393
- package/src/clients/isml-client.ts +0 -353
- package/src/clients/log-client.ts +0 -19
- package/src/clients/ocapi/code-versions-client.ts +0 -54
- package/src/clients/ocapi/site-preferences-client.ts +0 -106
- package/src/clients/ocapi/system-objects-client.ts +0 -148
- package/src/clients/ocapi-client.ts +0 -53
- package/src/clients/script-debugger/index.ts +0 -5
- package/src/clients/script-debugger/script-debugger-client.ts +0 -754
- package/src/clients/sfra-client.ts +0 -339
- package/src/config/configuration-factory.ts +0 -201
- package/src/config/dw-json-loader.ts +0 -248
- package/src/config/workspace-roots.ts +0 -540
- package/src/constants/index.ts +0 -1
- package/src/core/handlers/abstract-client-handler.ts +0 -85
- package/src/core/handlers/agent-instructions-handler.ts +0 -48
- package/src/core/handlers/base-handler.ts +0 -172
- package/src/core/handlers/cartridge-handler.ts +0 -38
- package/src/core/handlers/client-factory.ts +0 -140
- package/src/core/handlers/code-version-handler.ts +0 -43
- package/src/core/handlers/docs-handler.ts +0 -19
- package/src/core/handlers/isml-handler.ts +0 -19
- package/src/core/handlers/job-log-handler.ts +0 -39
- package/src/core/handlers/log-handler.ts +0 -39
- package/src/core/handlers/script-debugger-handler.ts +0 -46
- package/src/core/handlers/sfra-handler.ts +0 -23
- package/src/core/handlers/simple-client-handler.ts +0 -78
- package/src/core/handlers/system-object-handler.ts +0 -43
- package/src/core/handlers/validation-helpers.ts +0 -206
- package/src/core/instruction-advisor.ts +0 -122
- package/src/core/server.ts +0 -374
- package/src/core/tool-definitions.ts +0 -30
- package/src/core/tool-schemas/agent-instruction-tools.ts +0 -72
- package/src/core/tool-schemas/cartridge-tools.ts +0 -29
- package/src/core/tool-schemas/code-version-tools.ts +0 -28
- package/src/core/tool-schemas/documentation-tools.ts +0 -104
- package/src/core/tool-schemas/index.ts +0 -27
- package/src/core/tool-schemas/isml-tools.ts +0 -89
- package/src/core/tool-schemas/log-tools.ts +0 -196
- package/src/core/tool-schemas/script-debugger-tools.ts +0 -83
- package/src/core/tool-schemas/sfra-tools.ts +0 -65
- package/src/core/tool-schemas/shared-schemas.ts +0 -158
- package/src/core/tool-schemas/system-object-tools.ts +0 -127
- package/src/index.ts +0 -20
- package/src/main.ts +0 -161
- package/src/services/file-system-service.ts +0 -117
- package/src/services/index.ts +0 -11
- package/src/services/path-service.ts +0 -124
- package/src/tool-configs/agent-instructions-tool-config.ts +0 -83
- package/src/tool-configs/cartridge-tool-config.ts +0 -41
- package/src/tool-configs/code-version-tool-config.ts +0 -37
- package/src/tool-configs/docs-tool-config.ts +0 -103
- package/src/tool-configs/isml-tool-config.ts +0 -87
- package/src/tool-configs/job-log-tool-config.ts +0 -119
- package/src/tool-configs/log-tool-config.ts +0 -110
- package/src/tool-configs/script-debugger-tool-config.ts +0 -69
- package/src/tool-configs/sfra-tool-config.ts +0 -74
- package/src/tool-configs/system-object-tool-config.ts +0 -142
- package/src/types/types.ts +0 -125
- package/src/utils/cache.ts +0 -291
- package/src/utils/category-utils.ts +0 -70
- package/src/utils/log-tool-constants.ts +0 -95
- package/src/utils/logger.ts +0 -260
- package/src/utils/markdown-utils.ts +0 -280
- package/src/utils/ocapi-url-builder.ts +0 -48
- package/src/utils/path-resolver.ts +0 -69
- package/src/utils/path-validation.ts +0 -113
- package/src/utils/query-builder.ts +0 -84
- package/src/utils/utils.ts +0 -139
- package/src/utils/validator.ts +0 -162
- package/tests/__mocks__/docs-client.ts +0 -8
- package/tests/__mocks__/src/clients/base/http-client.js +0 -43
- package/tests/__mocks__/webdav.js +0 -14
- package/tests/base-handler.test.ts +0 -527
- package/tests/base-http-client.test.ts +0 -311
- package/tests/cache.test.ts +0 -453
- package/tests/cartridge-handler.test.ts +0 -290
- package/tests/class-content-parser.test.ts +0 -629
- package/tests/class-name-resolver.test.ts +0 -365
- package/tests/client-factory.test.ts +0 -280
- package/tests/code-version-handler.test.ts +0 -291
- package/tests/code-versions-client.test.ts +0 -156
- package/tests/config.test.ts +0 -285
- package/tests/configuration-factory.test.ts +0 -233
- package/tests/docs-handler.test.ts +0 -359
- package/tests/documentation-scanner.test.ts +0 -755
- package/tests/file-system-service.test.ts +0 -111
- package/tests/isml-client.test.ts +0 -463
- package/tests/isml-handler.test.ts +0 -375
- package/tests/job-log-handler.test.ts +0 -283
- package/tests/log-client.test.ts +0 -768
- package/tests/log-handler.test.ts +0 -365
- package/tests/log-processor.test.ts +0 -243
- package/tests/log-validation.test.ts +0 -149
- package/tests/logger.test.ts +0 -303
- package/tests/mcp/AGENTS.md +0 -162
- package/tests/mcp/README.md +0 -237
- package/tests/mcp/node/activate-code-version-advanced.full-mode.programmatic.test.js +0 -669
- package/tests/mcp/node/code-versions.full-mode.programmatic.test.js +0 -605
- package/tests/mcp/node/evaluate-script.full-mode.programmatic.test.js +0 -387
- package/tests/mcp/node/generate-cartridge-structure.docs-only.programmatic.test.js +0 -644
- package/tests/mcp/node/get-available-sfra-documents.programmatic.test.js +0 -274
- package/tests/mcp/node/get-isml-categories.programmatic.test.js +0 -278
- package/tests/mcp/node/get-isml-element.programmatic.test.js +0 -278
- package/tests/mcp/node/get-isml-elements-by-category.programmatic.test.js +0 -363
- package/tests/mcp/node/get-job-execution-summary.full-mode.programmatic.test.js +0 -432
- package/tests/mcp/node/get-job-log-entries.full-mode.programmatic.test.js +0 -488
- package/tests/mcp/node/get-latest-debug.full-mode.programmatic.test.js +0 -338
- package/tests/mcp/node/get-latest-error.full-mode.programmatic.test.js +0 -255
- package/tests/mcp/node/get-latest-info.full-mode.programmatic.test.js +0 -347
- package/tests/mcp/node/get-latest-job-log-files.full-mode.programmatic.test.js +0 -460
- package/tests/mcp/node/get-latest-warn.full-mode.programmatic.test.js +0 -454
- package/tests/mcp/node/get-log-file-contents.full-mode.programmatic.test.js +0 -381
- package/tests/mcp/node/get-sfcc-class-documentation.docs-only.programmatic.test.js +0 -371
- package/tests/mcp/node/get-sfcc-class-info.docs-only.programmatic.test.js +0 -1032
- package/tests/mcp/node/get-sfra-categories.docs-only.programmatic.test.js +0 -369
- package/tests/mcp/node/get-sfra-document.programmatic.test.js +0 -473
- package/tests/mcp/node/get-sfra-documents-by-category.docs-only.programmatic.test.js +0 -510
- package/tests/mcp/node/get-system-object-definition.full-mode.programmatic.test.js +0 -389
- package/tests/mcp/node/get-system-object-definitions.docs-only.programmatic.test.js +0 -300
- package/tests/mcp/node/get-system-object-definitions.full-mode.programmatic.test.js +0 -387
- package/tests/mcp/node/list-isml-elements.programmatic.test.js +0 -311
- package/tests/mcp/node/list-log-files.full-mode.programmatic.test.js +0 -150
- package/tests/mcp/node/list-sfcc-classes.docs-only.programmatic.test.js +0 -612
- package/tests/mcp/node/search-custom-object-attribute-definitions.full-mode.programmatic.test.js +0 -875
- package/tests/mcp/node/search-isml-elements.programmatic.test.js +0 -325
- package/tests/mcp/node/search-job-logs-by-name.full-mode.programmatic.test.js +0 -330
- package/tests/mcp/node/search-job-logs.full-mode.programmatic.test.js +0 -526
- package/tests/mcp/node/search-logs.full-mode.programmatic.test.js +0 -478
- package/tests/mcp/node/search-sfcc-classes.docs-only.programmatic.test.js +0 -334
- package/tests/mcp/node/search-sfcc-methods.docs-only.programmatic.test.js +0 -487
- package/tests/mcp/node/search-sfra-documentation.docs-only.programmatic.test.js +0 -563
- package/tests/mcp/node/search-site-preferences.full-mode.programmatic.test.js +0 -556
- package/tests/mcp/node/search-system-object-attribute-definitions.full-mode.programmatic.test.js +0 -744
- package/tests/mcp/node/search-system-object-attribute-groups.full-mode.programmatic.test.js +0 -657
- package/tests/mcp/node/summarize-logs.full-mode.programmatic.test.js +0 -357
- package/tests/mcp/node/tools.docs-only.programmatic.test.js +0 -515
- package/tests/mcp/node/tools.full-mode.programmatic.test.js +0 -154
- package/tests/mcp/test-fixtures/dw.json +0 -10
- package/tests/mcp/yaml/activate-code-version.docs-only.test.mcp.yml +0 -318
- package/tests/mcp/yaml/activate-code-version.full-mode.test.mcp.yml +0 -507
- package/tests/mcp/yaml/evaluate-script.full-mode.test.mcp.yml +0 -281
- package/tests/mcp/yaml/get-available-sfra-documents.docs-only.test.mcp.yml +0 -684
- package/tests/mcp/yaml/get-available-sfra-documents.full-mode.test.mcp.yml +0 -684
- package/tests/mcp/yaml/get-code-versions.docs-only.test.mcp.yml +0 -196
- package/tests/mcp/yaml/get-code-versions.full-mode.test.mcp.yml +0 -273
- package/tests/mcp/yaml/get-isml-categories.docs-only.test.mcp.yml +0 -330
- package/tests/mcp/yaml/get-isml-element.docs-only.test.mcp.yml +0 -294
- package/tests/mcp/yaml/get-isml-elements-by-category.docs-only.test.mcp.yml +0 -334
- package/tests/mcp/yaml/get-job-execution-summary.full-mode.test.mcp.yml +0 -148
- package/tests/mcp/yaml/get-job-log-entries.full-mode.test.mcp.yml +0 -284
- package/tests/mcp/yaml/get-latest-debug.full-mode.test.mcp.yml +0 -191
- package/tests/mcp/yaml/get-latest-error.full-mode.test.mcp.yml +0 -195
- package/tests/mcp/yaml/get-latest-info.full-mode.test.mcp.yml +0 -242
- package/tests/mcp/yaml/get-latest-job-log-files.full-mode.test.mcp.yml +0 -189
- package/tests/mcp/yaml/get-latest-warn.full-mode.test.mcp.yml +0 -182
- package/tests/mcp/yaml/get-log-file-contents.full-mode.test.mcp.yml +0 -256
- package/tests/mcp/yaml/get-sfcc-class-documentation.docs-only.test.mcp.yml +0 -2416
- package/tests/mcp/yaml/get-sfcc-class-documentation.full-mode.test.mcp.yml +0 -2416
- package/tests/mcp/yaml/get-sfcc-class-info.docs-only.test.mcp.yml +0 -1225
- package/tests/mcp/yaml/get-sfcc-class-info.full-mode.test.mcp.yml +0 -1225
- package/tests/mcp/yaml/get-sfra-categories.docs-only.test.mcp.yml +0 -452
- package/tests/mcp/yaml/get-sfra-categories.full-mode.test.mcp.yml +0 -452
- package/tests/mcp/yaml/get-sfra-document.docs-only.test.mcp.yml +0 -525
- package/tests/mcp/yaml/get-sfra-document.full-mode.test.mcp.yml +0 -525
- package/tests/mcp/yaml/get-sfra-documents-by-category.docs-only.test.mcp.yml +0 -507
- package/tests/mcp/yaml/get-sfra-documents-by-category.full-mode.test.mcp.yml +0 -507
- package/tests/mcp/yaml/get-system-object-definition.docs-only.test.mcp.yml +0 -208
- package/tests/mcp/yaml/get-system-object-definition.full-mode.test.mcp.yml +0 -191
- package/tests/mcp/yaml/get-system-object-definitions.docs-only.test.mcp.yml +0 -257
- package/tests/mcp/yaml/get-system-object-definitions.full-mode.test.mcp.yml +0 -517
- package/tests/mcp/yaml/get_latest_error.test.mcp.yml +0 -472
- package/tests/mcp/yaml/list-isml-elements.docs-only.test.mcp.yml +0 -212
- package/tests/mcp/yaml/list-log-files.full-mode.test.mcp.yml +0 -89
- package/tests/mcp/yaml/list-sfcc-classes.docs-only.test.mcp.yml +0 -511
- package/tests/mcp/yaml/list-sfcc-classes.full-mode.test.mcp.yml +0 -511
- package/tests/mcp/yaml/search-custom-object-attribute-definitions.docs-only.test.mcp.yml +0 -82
- package/tests/mcp/yaml/search-custom-object-attribute-definitions.test.mcp.yml +0 -387
- package/tests/mcp/yaml/search-isml-elements.docs-only.test.mcp.yml +0 -312
- package/tests/mcp/yaml/search-job-logs-by-name.full-mode.test.mcp.yml +0 -169
- package/tests/mcp/yaml/search-job-logs.full-mode.test.mcp.yml +0 -174
- package/tests/mcp/yaml/search-logs.full-mode.test.mcp.yml +0 -207
- package/tests/mcp/yaml/search-sfcc-classes.docs-only.test.mcp.yml +0 -1157
- package/tests/mcp/yaml/search-sfcc-classes.full-mode.test.mcp.yml +0 -1157
- package/tests/mcp/yaml/search-sfcc-methods.docs-only.test.mcp.yml +0 -723
- package/tests/mcp/yaml/search-sfcc-methods.full-mode.test.mcp.yml +0 -723
- package/tests/mcp/yaml/search-sfra-documentation.docs-only.test.mcp.yml +0 -427
- package/tests/mcp/yaml/search-sfra-documentation.full-mode.test.mcp.yml +0 -427
- package/tests/mcp/yaml/search-site-preferences.docs-only.test.mcp.yml +0 -295
- package/tests/mcp/yaml/search-site-preferences.full-mode.test.mcp.yml +0 -574
- package/tests/mcp/yaml/search-system-object-attribute-definitions.docs-only.test.mcp.yml +0 -168
- package/tests/mcp/yaml/search-system-object-attribute-definitions.full-mode.test.mcp.yml +0 -500
- package/tests/mcp/yaml/search-system-object-attribute-groups.docs-only.test.mcp.yml +0 -278
- package/tests/mcp/yaml/search-system-object-attribute-groups.full-mode.test.mcp.yml +0 -612
- package/tests/mcp/yaml/summarize-logs.full-mode.test.mcp.yml +0 -173
- package/tests/mcp/yaml/tools.docs-only.test.mcp.yml +0 -535
- package/tests/mcp/yaml/tools.full-mode.test.mcp.yml +0 -378
- package/tests/oauth-token.test.ts +0 -725
- package/tests/ocapi-auth-client.test.ts +0 -276
- package/tests/ocapi-client.test.ts +0 -242
- package/tests/path-service.test.ts +0 -96
- package/tests/query-builder.test.ts +0 -281
- package/tests/referenced-types-extractor.test.ts +0 -814
- package/tests/script-debugger-client.test.ts +0 -430
- package/tests/servers/sfcc-mock-server/README.md +0 -208
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/code-versions.json +0 -247
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-customapi.json +0 -128
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-globalsettings.json +0 -92
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/custom-object-attributes-versionhistory.json +0 -256
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-ccv.json +0 -275
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-fastforward.json +0 -123
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-sfra.json +0 -224
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-storefront.json +0 -447
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/site-preferences-system.json +0 -171
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-campaign.json +0 -13
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-category.json +0 -50
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-order.json +0 -32
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-product.json +0 -224
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attribute-groups-sitepreferences.json +0 -62
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-customeraddress.json +0 -109
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-product-expanded.json +0 -183
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-attributes-product.json +0 -139
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-category.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customer.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-customeraddress.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-order.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definition-product.json +0 -26
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definitions-old.json +0 -354
- package/tests/servers/sfcc-mock-server/mock-data/ocapi/system-object-definitions.json +0 -172
- package/tests/servers/sfcc-mock-server/package-lock.json +0 -879
- package/tests/servers/sfcc-mock-server/package.json +0 -39
- package/tests/servers/sfcc-mock-server/scripts/setup-logs.js +0 -224
- package/tests/servers/sfcc-mock-server/server.js +0 -280
- package/tests/servers/sfcc-mock-server/src/app.js +0 -182
- package/tests/servers/sfcc-mock-server/src/config/server-config.js +0 -124
- package/tests/servers/sfcc-mock-server/src/middleware/auth.js +0 -101
- package/tests/servers/sfcc-mock-server/src/middleware/cors.js +0 -39
- package/tests/servers/sfcc-mock-server/src/middleware/logging.js +0 -124
- package/tests/servers/sfcc-mock-server/src/routes/cartridge-webdav.js +0 -258
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/code-versions-handler.js +0 -184
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/debugger-handler.js +0 -396
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/oauth-handler.js +0 -36
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/ocapi-error-utils.js +0 -221
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/ocapi-utils.js +0 -440
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/site-preferences-handler.js +0 -332
- package/tests/servers/sfcc-mock-server/src/routes/ocapi/system-objects-handler.js +0 -572
- package/tests/servers/sfcc-mock-server/src/routes/ocapi.js +0 -58
- package/tests/servers/sfcc-mock-server/src/routes/storefront.js +0 -86
- package/tests/servers/sfcc-mock-server/src/routes/webdav.js +0 -240
- package/tests/servers/sfcc-mock-server/src/utils/mock-data-loader.js +0 -84
- package/tests/servers/sfcc-mock-server/src/utils/webdav-xml.js +0 -121
- package/tests/servers/sfcc-mock-server-manager.ts +0 -280
- package/tests/sfcc-mock-server.test.ts +0 -423
- package/tests/site-preferences-client.test.ts +0 -358
- package/tests/system-objects-client.test.ts +0 -310
- package/tests/utils.test.ts +0 -477
- package/tests/validation-helpers.test.ts +0 -325
- package/tests/validator.test.ts +0 -416
- package/tests/workspace-roots.test.ts +0 -227
- package/tsconfig.json +0 -20
- package/tsconfig.test.json +0 -20
|
@@ -1,338 +0,0 @@
|
|
|
1
|
-
import { test, describe, before, after, beforeEach } from 'node:test';
|
|
2
|
-
import { strict as assert } from 'node:assert';
|
|
3
|
-
import { connect } from 'mcp-aegis';
|
|
4
|
-
|
|
5
|
-
// Optimized programmatic tests focusing on complex business logic, dynamic validation, and integration scenarios
|
|
6
|
-
// Basic functional testing is handled by the YAML tests for better CI reliability
|
|
7
|
-
describe('get_latest_debug - Full Mode Programmatic Tests (Optimized)', () => {
|
|
8
|
-
let client;
|
|
9
|
-
|
|
10
|
-
before(async () => {
|
|
11
|
-
client = await connect('./aegis.config.with-dw.json');
|
|
12
|
-
});
|
|
13
|
-
|
|
14
|
-
after(async () => {
|
|
15
|
-
if (client?.connected) {
|
|
16
|
-
await client.disconnect();
|
|
17
|
-
}
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
beforeEach(() => {
|
|
21
|
-
// CRITICAL: Clear all buffers to prevent leaking into next tests
|
|
22
|
-
client.clearAllBuffers(); // Recommended - comprehensive protection
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
// Enhanced helper functions for complex validations
|
|
26
|
-
function assertValidMCPResponse(result) {
|
|
27
|
-
assert.ok(result.content, 'Should have content');
|
|
28
|
-
assert.ok(Array.isArray(result.content), 'Content should be array');
|
|
29
|
-
assert.equal(typeof result.isError, 'boolean', 'isError should be boolean');
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
function assertSuccessResponse(result) {
|
|
35
|
-
assertValidMCPResponse(result);
|
|
36
|
-
assert.equal(result.isError, false, 'Should not be an error response');
|
|
37
|
-
assert.equal(result.content[0].type, 'text');
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
function validateDebugLogStructure(result, expectedLimit) {
|
|
41
|
-
assertSuccessResponse(result);
|
|
42
|
-
const text = result.content[0].text;
|
|
43
|
-
|
|
44
|
-
// Validate essential debug log components
|
|
45
|
-
assert.ok(text.includes(`Latest ${expectedLimit} debug messages`),
|
|
46
|
-
`Should mention "${expectedLimit}" debug messages`);
|
|
47
|
-
assert.ok(/debug-blade-\d{8}-\d{6}\.log/.test(text),
|
|
48
|
-
'Should contain debug log file name pattern');
|
|
49
|
-
assert.ok(text.includes('DEBUG'), 'Should contain DEBUG level entries');
|
|
50
|
-
assert.ok(/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3} GMT/.test(text),
|
|
51
|
-
'Should contain GMT timestamp pattern');
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
function getCurrentDateString() {
|
|
55
|
-
const now = new Date();
|
|
56
|
-
const year = now.getFullYear();
|
|
57
|
-
const month = String(now.getMonth() + 1).padStart(2, '0');
|
|
58
|
-
const day = String(now.getDate()).padStart(2, '0');
|
|
59
|
-
return `${year}${month}${day}`;
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
// ========================================
|
|
63
|
-
// COMPLEX BUSINESS LOGIC VALIDATION
|
|
64
|
-
// ========================================
|
|
65
|
-
|
|
66
|
-
describe('Business Logic and Content Analysis', () => {
|
|
67
|
-
test('should parse and validate SFCC debug log structure comprehensively', async () => {
|
|
68
|
-
const result = await client.callTool('get_latest_debug', { limit: 5 });
|
|
69
|
-
|
|
70
|
-
validateDebugLogStructure(result, 5);
|
|
71
|
-
|
|
72
|
-
const text = result.content[0].text;
|
|
73
|
-
|
|
74
|
-
// Validate SFCC-specific patterns that require complex logic
|
|
75
|
-
const sfccPatterns = [
|
|
76
|
-
/PipelineCallServlet|SystemJobThread/,
|
|
77
|
-
/Sites-RefArchGlobal-Site/,
|
|
78
|
-
/PipelineCall|custom \[\]/,
|
|
79
|
-
/---/ // Entry separators
|
|
80
|
-
];
|
|
81
|
-
|
|
82
|
-
sfccPatterns.forEach((pattern, index) => {
|
|
83
|
-
assert.ok(pattern.test(text),
|
|
84
|
-
`Should contain SFCC pattern ${index}: ${pattern.toString()}`);
|
|
85
|
-
});
|
|
86
|
-
|
|
87
|
-
// Validate chronological ordering (newest first) - complex logic
|
|
88
|
-
const entries = text.split('---').filter(entry => entry.trim());
|
|
89
|
-
if (entries.length > 1) {
|
|
90
|
-
const timestamps = entries.map(entry => {
|
|
91
|
-
const match = entry.match(/\[(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3} GMT)\]/);
|
|
92
|
-
return match ? new Date(match[1]) : null;
|
|
93
|
-
}).filter(Boolean);
|
|
94
|
-
|
|
95
|
-
for (let i = 1; i < timestamps.length; i++) {
|
|
96
|
-
assert.ok(timestamps[i-1] >= timestamps[i],
|
|
97
|
-
'Debug entries should be in chronological order (newest first)');
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
});
|
|
101
|
-
|
|
102
|
-
test('should validate complex parameter combinations with business rules', async () => {
|
|
103
|
-
const testScenarios = [
|
|
104
|
-
{
|
|
105
|
-
params: { limit: 1 },
|
|
106
|
-
validator: (result) => {
|
|
107
|
-
assert.ok(result.content[0].text.includes('Latest 1 debug messages'));
|
|
108
|
-
assert.ok(!result.content[0].text.includes('---'),
|
|
109
|
-
'Single entry should not have separators');
|
|
110
|
-
}
|
|
111
|
-
},
|
|
112
|
-
{
|
|
113
|
-
params: { limit: 3, date: getCurrentDateString() },
|
|
114
|
-
validator: (result) => {
|
|
115
|
-
assert.ok(result.content[0].text.includes('Latest 3 debug messages'));
|
|
116
|
-
const separatorCount = (result.content[0].text.match(/---/g) || []).length;
|
|
117
|
-
assert.ok(separatorCount >= 1, 'Multiple entries should have separators');
|
|
118
|
-
}
|
|
119
|
-
},
|
|
120
|
-
{
|
|
121
|
-
params: { limit: 20 },
|
|
122
|
-
validator: (result) => {
|
|
123
|
-
assert.ok(result.content[0].text.includes('Latest 20 debug messages'));
|
|
124
|
-
// Should handle larger limits gracefully
|
|
125
|
-
assert.ok(result.content[0].text.length > 1000,
|
|
126
|
-
'Large limit should return substantial content');
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
];
|
|
130
|
-
|
|
131
|
-
for (const scenario of testScenarios) {
|
|
132
|
-
const result = await client.callTool('get_latest_debug', scenario.params);
|
|
133
|
-
assertSuccessResponse(result);
|
|
134
|
-
scenario.validator(result);
|
|
135
|
-
}
|
|
136
|
-
});
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
// ========================================
|
|
140
|
-
// DYNAMIC PARAMETER VALIDATION
|
|
141
|
-
// ========================================
|
|
142
|
-
|
|
143
|
-
describe('Dynamic Parameter Validation', () => {
|
|
144
|
-
test('should validate parameter types with complex edge case matrix', async () => {
|
|
145
|
-
const testMatrix = [
|
|
146
|
-
// Valid scenarios
|
|
147
|
-
{ params: { limit: 5 }, expectSuccess: true, description: 'valid number limit' },
|
|
148
|
-
{ params: { date: '20240101' }, expectSuccess: true, description: 'valid date format' },
|
|
149
|
-
{ params: { limit: 1, date: getCurrentDateString() }, expectSuccess: true, description: 'valid combination' },
|
|
150
|
-
|
|
151
|
-
// Invalid scenarios requiring dynamic validation
|
|
152
|
-
{ params: { limit: '5' }, expectSuccess: false, expectedError: 'Invalid limit \'5\'', description: 'string limit' },
|
|
153
|
-
{ params: { limit: 0 }, expectSuccess: false, expectedError: 'Invalid limit \'0\'', description: 'zero limit' },
|
|
154
|
-
{ params: { limit: -1 }, expectSuccess: false, expectedError: 'Invalid limit', description: 'negative limit' },
|
|
155
|
-
{ params: { limit: 9999 }, expectSuccess: false, expectedError: 'Invalid limit', description: 'excessive limit' },
|
|
156
|
-
|
|
157
|
-
// Complex type scenarios
|
|
158
|
-
{ params: { limit: null }, expectSuccess: true, description: 'null limit (uses default)' },
|
|
159
|
-
{ params: { limit: [] }, expectSuccess: false, description: 'array limit' },
|
|
160
|
-
{ params: { limit: {} }, expectSuccess: false, description: 'object limit' },
|
|
161
|
-
];
|
|
162
|
-
|
|
163
|
-
for (const testCase of testMatrix) {
|
|
164
|
-
const result = await client.callTool('get_latest_debug', testCase.params);
|
|
165
|
-
assertValidMCPResponse(result);
|
|
166
|
-
|
|
167
|
-
if (testCase.expectSuccess) {
|
|
168
|
-
assert.equal(result.isError, false,
|
|
169
|
-
`Should succeed for ${testCase.description}: ${JSON.stringify(testCase.params)}`);
|
|
170
|
-
} else {
|
|
171
|
-
assert.equal(result.isError, true,
|
|
172
|
-
`Should fail for ${testCase.description}: ${JSON.stringify(testCase.params)}`);
|
|
173
|
-
|
|
174
|
-
if (testCase.expectedError) {
|
|
175
|
-
assert.ok(result.content[0].text.includes(testCase.expectedError),
|
|
176
|
-
`Should contain expected error for ${testCase.description}`);
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
|
|
182
|
-
test('should handle date parameter edge cases with business logic', async () => {
|
|
183
|
-
const dateScenarios = [
|
|
184
|
-
{ date: 'invalid-date', expectMessage: 'No debug log files found' },
|
|
185
|
-
{ date: '20261231', expectSuccess: true }, // Future date
|
|
186
|
-
{ date: '20240101', expectSuccess: true }, // Past date
|
|
187
|
-
{ date: 123, expectSuccess: true }, // Number converted to string
|
|
188
|
-
];
|
|
189
|
-
|
|
190
|
-
for (const scenario of dateScenarios) {
|
|
191
|
-
const result = await client.callTool('get_latest_debug', {
|
|
192
|
-
date: scenario.date,
|
|
193
|
-
limit: 1
|
|
194
|
-
});
|
|
195
|
-
|
|
196
|
-
assertValidMCPResponse(result);
|
|
197
|
-
|
|
198
|
-
if (scenario.expectSuccess) {
|
|
199
|
-
assert.equal(result.isError, false,
|
|
200
|
-
`Date ${scenario.date} should be handled gracefully`);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
if (scenario.expectMessage) {
|
|
204
|
-
assert.ok(result.content[0].text.includes(scenario.expectMessage),
|
|
205
|
-
`Should contain expected message for date ${scenario.date}`);
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
});
|
|
209
|
-
});
|
|
210
|
-
|
|
211
|
-
// ========================================
|
|
212
|
-
// INTEGRATION AND WORKFLOW TESTING
|
|
213
|
-
// ========================================
|
|
214
|
-
|
|
215
|
-
describe('Integration and Multi-Step Workflows', () => {
|
|
216
|
-
test('should integrate with MCP protocol and tool ecosystem', async () => {
|
|
217
|
-
// Step 1: Verify tool discovery
|
|
218
|
-
const tools = await client.listTools();
|
|
219
|
-
const debugTool = tools.find(tool => tool.name === 'get_latest_debug');
|
|
220
|
-
|
|
221
|
-
assert.ok(debugTool, 'get_latest_debug tool should be available');
|
|
222
|
-
assert.ok(debugTool.description, 'Tool should have description');
|
|
223
|
-
assert.ok(debugTool.inputSchema, 'Tool should have input schema');
|
|
224
|
-
assert.equal(debugTool.inputSchema.type, 'object');
|
|
225
|
-
|
|
226
|
-
// Step 2: Validate schema properties
|
|
227
|
-
const properties = debugTool.inputSchema.properties;
|
|
228
|
-
assert.ok(properties.limit, 'Should have limit parameter in schema');
|
|
229
|
-
assert.ok(properties.date, 'Should have date parameter in schema');
|
|
230
|
-
|
|
231
|
-
// Step 3: Verify execution matches schema
|
|
232
|
-
const result = await client.callTool('get_latest_debug', {});
|
|
233
|
-
assertValidMCPResponse(result);
|
|
234
|
-
});
|
|
235
|
-
|
|
236
|
-
test('should maintain consistency with related log tools', async () => {
|
|
237
|
-
// Get results from multiple log tools for comparison
|
|
238
|
-
const debugResult = await client.callTool('get_latest_debug', { limit: 3 });
|
|
239
|
-
const infoResult = await client.callTool('get_latest_info', { limit: 3 });
|
|
240
|
-
|
|
241
|
-
assertValidMCPResponse(debugResult);
|
|
242
|
-
assertValidMCPResponse(infoResult);
|
|
243
|
-
|
|
244
|
-
// Validate structural consistency
|
|
245
|
-
assert.equal(debugResult.content.length, infoResult.content.length,
|
|
246
|
-
'Debug and info tools should have similar response structure');
|
|
247
|
-
assert.equal(typeof debugResult.isError, typeof infoResult.isError,
|
|
248
|
-
'Both tools should handle errors consistently');
|
|
249
|
-
assert.equal(debugResult.content[0].type, infoResult.content[0].type,
|
|
250
|
-
'Content types should be consistent across log tools');
|
|
251
|
-
});
|
|
252
|
-
|
|
253
|
-
test('should support progressive parameter refinement workflow', async () => {
|
|
254
|
-
// Workflow: Start broad, then narrow down
|
|
255
|
-
|
|
256
|
-
// Step 1: Get initial debug overview
|
|
257
|
-
const broadResult = await client.callTool('get_latest_debug', { limit: 10 });
|
|
258
|
-
assertSuccessResponse(broadResult);
|
|
259
|
-
|
|
260
|
-
// Step 2: Narrow down to specific recent entries
|
|
261
|
-
const recentResult = await client.callTool('get_latest_debug', {
|
|
262
|
-
limit: 3,
|
|
263
|
-
date: getCurrentDateString()
|
|
264
|
-
});
|
|
265
|
-
assertSuccessResponse(recentResult);
|
|
266
|
-
|
|
267
|
-
// Step 3: Focus on single most recent entry
|
|
268
|
-
const focusedResult = await client.callTool('get_latest_debug', { limit: 1 });
|
|
269
|
-
assertSuccessResponse(focusedResult);
|
|
270
|
-
|
|
271
|
-
// Validate progressive refinement logic
|
|
272
|
-
assert.ok(broadResult.content[0].text.length >= recentResult.content[0].text.length,
|
|
273
|
-
'Broader search should return more content');
|
|
274
|
-
assert.ok(recentResult.content[0].text.length >= focusedResult.content[0].text.length,
|
|
275
|
-
'More focused search should return less content');
|
|
276
|
-
});
|
|
277
|
-
});
|
|
278
|
-
|
|
279
|
-
// ========================================
|
|
280
|
-
// ERROR RECOVERY AND RESILIENCE
|
|
281
|
-
// ========================================
|
|
282
|
-
|
|
283
|
-
describe('Error Recovery and Resilience', () => {
|
|
284
|
-
test('should recover gracefully from various error conditions', async () => {
|
|
285
|
-
// Test sequence of various error conditions followed by recovery
|
|
286
|
-
const errorSequence = [
|
|
287
|
-
{ limit: 'invalid-string' },
|
|
288
|
-
{ limit: -50 },
|
|
289
|
-
{ limit: null },
|
|
290
|
-
{ date: null, limit: 'bad' },
|
|
291
|
-
{ unknownParam: 'test', limit: [] }
|
|
292
|
-
];
|
|
293
|
-
|
|
294
|
-
// Execute error sequence - should not break the server
|
|
295
|
-
for (const errorParams of errorSequence) {
|
|
296
|
-
const result = await client.callTool('get_latest_debug', errorParams);
|
|
297
|
-
assertValidMCPResponse(result);
|
|
298
|
-
// Don't assert success/failure as some may be handled gracefully
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
// Verify server recovers and works normally
|
|
302
|
-
const recoveryResult = await client.callTool('get_latest_debug', { limit: 2 });
|
|
303
|
-
assertSuccessResponse(recoveryResult);
|
|
304
|
-
validateDebugLogStructure(recoveryResult, 2);
|
|
305
|
-
});
|
|
306
|
-
|
|
307
|
-
test('should maintain state consistency across sequential operations', async () => {
|
|
308
|
-
// Test that multiple operations don't interfere with each other
|
|
309
|
-
const operations = [
|
|
310
|
-
{ limit: 1 },
|
|
311
|
-
{ limit: 5 },
|
|
312
|
-
{ date: getCurrentDateString(), limit: 2 },
|
|
313
|
-
{ limit: 10 },
|
|
314
|
-
{ date: '20240101', limit: 1 }
|
|
315
|
-
];
|
|
316
|
-
|
|
317
|
-
const results = [];
|
|
318
|
-
|
|
319
|
-
// Execute operations sequentially (no concurrent requests per AGENTS.md)
|
|
320
|
-
for (const params of operations) {
|
|
321
|
-
const result = await client.callTool('get_latest_debug', params);
|
|
322
|
-
results.push({ params, result });
|
|
323
|
-
}
|
|
324
|
-
|
|
325
|
-
// Validate each operation succeeded independently
|
|
326
|
-
results.forEach(({ params, result }, index) => {
|
|
327
|
-
assertValidMCPResponse(result);
|
|
328
|
-
assert.equal(result.isError, false,
|
|
329
|
-
`Operation ${index + 1} should succeed: ${JSON.stringify(params)}`);
|
|
330
|
-
|
|
331
|
-
// Validate response format consistency
|
|
332
|
-
assert.equal(result.content.length, 1, 'Should have exactly one content item');
|
|
333
|
-
assert.equal(result.content[0].type, 'text', 'Content type should be text');
|
|
334
|
-
assert.ok(result.content[0].text.length > 0, 'Content should not be empty');
|
|
335
|
-
});
|
|
336
|
-
});
|
|
337
|
-
});
|
|
338
|
-
});
|
|
@@ -1,255 +0,0 @@
|
|
|
1
|
-
import { test, describe, before, after, beforeEach } from 'node:test';
|
|
2
|
-
import { strict as assert } from 'node:assert';
|
|
3
|
-
import { connect } from 'mcp-aegis';
|
|
4
|
-
|
|
5
|
-
describe('get_latest_error - Full Mode Programmatic Tests (Optimized)', () => {
|
|
6
|
-
let client;
|
|
7
|
-
|
|
8
|
-
before(async () => {
|
|
9
|
-
client = await connect('./aegis.config.with-dw.json');
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
after(async () => {
|
|
13
|
-
if (client?.connected) {
|
|
14
|
-
await client.disconnect();
|
|
15
|
-
}
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
beforeEach(() => {
|
|
19
|
-
// CRITICAL: Clear all buffers to prevent leaking into next tests
|
|
20
|
-
client.clearAllBuffers(); // Recommended - comprehensive protection
|
|
21
|
-
});
|
|
22
|
-
|
|
23
|
-
// Simplified helper functions for common validations
|
|
24
|
-
function assertValidMCPResponse(result) {
|
|
25
|
-
assert.ok(result.content, 'Should have content');
|
|
26
|
-
assert.ok(Array.isArray(result.content), 'Content should be array');
|
|
27
|
-
assert.equal(typeof result.isError, 'boolean', 'isError should be boolean');
|
|
28
|
-
assert.equal(result.content[0].type, 'text', 'Content should be text type');
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
function assertErrorResponse(result, expectedErrorText) {
|
|
32
|
-
assertValidMCPResponse(result);
|
|
33
|
-
assert.equal(result.isError, true, 'Should be an error response');
|
|
34
|
-
assert.ok(result.content[0].text.includes(expectedErrorText),
|
|
35
|
-
`Expected error text "${expectedErrorText}" in "${result.content[0].text}"`);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
function assertSuccessWithLimit(result, expectedLimit) {
|
|
39
|
-
assertValidMCPResponse(result);
|
|
40
|
-
assert.equal(result.isError, false, 'Should not be an error response');
|
|
41
|
-
const text = result.content[0].text;
|
|
42
|
-
assert.ok(text.includes(`Latest ${expectedLimit} error messages`),
|
|
43
|
-
`Should mention "${expectedLimit}" error messages`);
|
|
44
|
-
assert.ok(/error-blade-\d{8}-\d{6}\.log/.test(text), 'Should contain log file pattern');
|
|
45
|
-
assert.ok(text.includes('ERROR'), 'Should contain ERROR level entries');
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
// Helper function to get current date in YYYYMMDD format
|
|
49
|
-
function getCurrentDateString() {
|
|
50
|
-
const now = new Date();
|
|
51
|
-
const year = now.getFullYear();
|
|
52
|
-
const month = String(now.getMonth() + 1).padStart(2, '0');
|
|
53
|
-
const day = String(now.getDate()).padStart(2, '0');
|
|
54
|
-
return `${year}${month}${day}`;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// Core functionality tests (essential scenarios)
|
|
58
|
-
describe('Core Functionality', () => {
|
|
59
|
-
test('should retrieve error messages with default parameters', async () => {
|
|
60
|
-
const result = await client.callTool('get_latest_error', {});
|
|
61
|
-
|
|
62
|
-
assertSuccessWithLimit(result, 10); // Default limit is 10
|
|
63
|
-
|
|
64
|
-
// Verify SFCC-specific content is present
|
|
65
|
-
const text = result.content[0].text;
|
|
66
|
-
assert.ok(/PipelineCallServlet|SystemJobThread/.test(text), 'Should contain SFCC thread patterns');
|
|
67
|
-
assert.ok(text.includes('Sites-'), 'Should contain Sites information');
|
|
68
|
-
assert.ok(/\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}\.\d{3} GMT/.test(text), 'Should contain GMT timestamps');
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
test('should respect limit parameter and return ordered results', async () => {
|
|
72
|
-
const result = await client.callTool('get_latest_error', { limit: 3 });
|
|
73
|
-
|
|
74
|
-
assertSuccessWithLimit(result, 3);
|
|
75
|
-
|
|
76
|
-
const text = result.content[0].text;
|
|
77
|
-
// Should contain separators for multiple entries
|
|
78
|
-
const separatorCount = (text.match(/---/g) || []).length;
|
|
79
|
-
assert.ok(separatorCount >= 1, 'Should have separators between entries');
|
|
80
|
-
|
|
81
|
-
// Verify chronological order (newest first) with known mock data
|
|
82
|
-
assert.ok(text.includes('CQ - AWS S3 Configuration Issue'), 'Should contain latest error');
|
|
83
|
-
assert.ok(text.includes('Payment authorization failed'), 'Should contain second latest error');
|
|
84
|
-
});
|
|
85
|
-
|
|
86
|
-
test('should handle date parameter correctly', async () => {
|
|
87
|
-
const result = await client.callTool('get_latest_error', {
|
|
88
|
-
date: getCurrentDateString(),
|
|
89
|
-
limit: 2
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
assertSuccessWithLimit(result, 2);
|
|
93
|
-
});
|
|
94
|
-
});
|
|
95
|
-
|
|
96
|
-
// Parameter validation tests (core error handling)
|
|
97
|
-
describe('Parameter Validation', () => {
|
|
98
|
-
test('should reject invalid limit types and values', async () => {
|
|
99
|
-
// Test string limit
|
|
100
|
-
const stringResult = await client.callTool('get_latest_error', { limit: '5' });
|
|
101
|
-
assertErrorResponse(stringResult, 'Invalid limit \'5\' for get_latest_error. Must be a valid number');
|
|
102
|
-
|
|
103
|
-
// Test zero limit
|
|
104
|
-
const zeroResult = await client.callTool('get_latest_error', { limit: 0 });
|
|
105
|
-
assertErrorResponse(zeroResult, 'Invalid limit \'0\' for get_latest_error');
|
|
106
|
-
|
|
107
|
-
// Test negative limit
|
|
108
|
-
const negativeResult = await client.callTool('get_latest_error', { limit: -5 });
|
|
109
|
-
assertErrorResponse(negativeResult, 'Invalid limit');
|
|
110
|
-
});
|
|
111
|
-
|
|
112
|
-
test('should handle large limits appropriately', async () => {
|
|
113
|
-
const largeResult = await client.callTool('get_latest_error', { limit: 50 });
|
|
114
|
-
assertSuccessWithLimit(largeResult, 50);
|
|
115
|
-
|
|
116
|
-
// Test extremely large limit (should error)
|
|
117
|
-
const hugeResult = await client.callTool('get_latest_error', { limit: 9999 });
|
|
118
|
-
assertErrorResponse(hugeResult, 'Invalid limit');
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
test('should handle date parameters gracefully', async () => {
|
|
122
|
-
// Valid YYYYMMDD date
|
|
123
|
-
const validResult = await client.callTool('get_latest_error', {
|
|
124
|
-
date: '20240101',
|
|
125
|
-
limit: 1
|
|
126
|
-
});
|
|
127
|
-
assertValidMCPResponse(validResult);
|
|
128
|
-
assert.equal(validResult.isError, false, 'Valid date should not error');
|
|
129
|
-
|
|
130
|
-
// Invalid date format (should handle gracefully)
|
|
131
|
-
const invalidResult = await client.callTool('get_latest_error', {
|
|
132
|
-
date: '2024-01-01',
|
|
133
|
-
limit: 1
|
|
134
|
-
});
|
|
135
|
-
assertValidMCPResponse(invalidResult);
|
|
136
|
-
// Should not crash, may succeed or fail gracefully
|
|
137
|
-
});
|
|
138
|
-
|
|
139
|
-
test('should handle missing arguments gracefully', async () => {
|
|
140
|
-
const result = await client.callTool('get_latest_error');
|
|
141
|
-
assertSuccessWithLimit(result, 10); // Should use default limit
|
|
142
|
-
});
|
|
143
|
-
});
|
|
144
|
-
|
|
145
|
-
// Content validation tests (SFCC-specific patterns)
|
|
146
|
-
describe('Content Validation', () => {
|
|
147
|
-
test('should include realistic SFCC error scenarios and structure', async () => {
|
|
148
|
-
const result = await client.callTool('get_latest_error', { limit: 5 });
|
|
149
|
-
|
|
150
|
-
assertValidMCPResponse(result);
|
|
151
|
-
assert.equal(result.isError, false, 'Should not be an error');
|
|
152
|
-
const text = result.content[0].text;
|
|
153
|
-
|
|
154
|
-
// Should contain common SFCC error patterns
|
|
155
|
-
const errorPatterns = [
|
|
156
|
-
'Custom cartridge error',
|
|
157
|
-
'Product import failed',
|
|
158
|
-
'Customer profile creation failed',
|
|
159
|
-
'Payment authorization failed',
|
|
160
|
-
'AWS S3 Configuration Issue'
|
|
161
|
-
];
|
|
162
|
-
|
|
163
|
-
const foundPatterns = errorPatterns.filter(pattern => text.includes(pattern));
|
|
164
|
-
assert.ok(foundPatterns.length > 0,
|
|
165
|
-
`Should contain at least one error pattern. Found: ${foundPatterns.join(', ')}`);
|
|
166
|
-
|
|
167
|
-
// Validate basic log structure elements
|
|
168
|
-
assert.ok(text.includes('[') && text.includes(']'), 'Should contain log brackets');
|
|
169
|
-
assert.ok(/\|\d+\|/.test(text), 'Should contain thread IDs with pipes');
|
|
170
|
-
});
|
|
171
|
-
|
|
172
|
-
test('should contain comprehensive SFCC-specific patterns', async () => {
|
|
173
|
-
const result = await client.callTool('get_latest_error', { limit: 3 });
|
|
174
|
-
|
|
175
|
-
assertValidMCPResponse(result);
|
|
176
|
-
assert.equal(result.isError, false, 'Should not be an error');
|
|
177
|
-
const text = result.content[0].text;
|
|
178
|
-
|
|
179
|
-
// SFCC-specific validation patterns
|
|
180
|
-
const sfccPatterns = [
|
|
181
|
-
{ pattern: /Sites-\w+/, name: 'Sites names' },
|
|
182
|
-
{ pattern: /PipelineCallServlet|SystemJobThread/, name: 'Thread types' },
|
|
183
|
-
{ pattern: /\|\d+\|/, name: 'Thread IDs' },
|
|
184
|
-
{ pattern: /custom \[\]/, name: 'Custom category' }
|
|
185
|
-
];
|
|
186
|
-
|
|
187
|
-
const matchedPatterns = sfccPatterns.filter(({ pattern }) => pattern.test(text));
|
|
188
|
-
assert.ok(matchedPatterns.length >= 2,
|
|
189
|
-
`Should match at least 2 SFCC patterns. Matched: ${matchedPatterns.map(p => p.name).join(', ')}`);
|
|
190
|
-
});
|
|
191
|
-
});
|
|
192
|
-
|
|
193
|
-
// Error recovery and resilience testing
|
|
194
|
-
describe('Error Recovery and Resilience', () => {
|
|
195
|
-
test('should handle error scenarios and recover properly', async () => {
|
|
196
|
-
// Test invalid parameter
|
|
197
|
-
const invalidResult = await client.callTool('get_latest_error', { limit: 0 });
|
|
198
|
-
assertErrorResponse(invalidResult, 'Invalid limit');
|
|
199
|
-
|
|
200
|
-
// Test recovery with valid parameters
|
|
201
|
-
const validResult = await client.callTool('get_latest_error', { limit: 1 });
|
|
202
|
-
assertValidMCPResponse(validResult);
|
|
203
|
-
assert.equal(validResult.isError, false, 'Should work normally after error');
|
|
204
|
-
assertSuccessWithLimit(validResult, 1);
|
|
205
|
-
|
|
206
|
-
// Test edge cases without breaking
|
|
207
|
-
const edgeCases = [
|
|
208
|
-
{ limit: '1' }, // String limit (should error)
|
|
209
|
-
{ limit: 1000 }, // Large limit (should error)
|
|
210
|
-
{ date: '' }, // Empty date (should handle gracefully)
|
|
211
|
-
{ invalid: 'param' } // Invalid parameter name (should handle gracefully)
|
|
212
|
-
];
|
|
213
|
-
|
|
214
|
-
// Test all edge cases sequentially
|
|
215
|
-
for (const testCase of edgeCases) {
|
|
216
|
-
const result = await client.callTool('get_latest_error', testCase);
|
|
217
|
-
assertValidMCPResponse(result);
|
|
218
|
-
// Some may error, some may succeed - but none should crash
|
|
219
|
-
}
|
|
220
|
-
|
|
221
|
-
// Verify tool still works after edge cases
|
|
222
|
-
const finalResult = await client.callTool('get_latest_error', { limit: 1 });
|
|
223
|
-
assertValidMCPResponse(finalResult);
|
|
224
|
-
assert.equal(finalResult.isError, false, 'Should work after edge cases');
|
|
225
|
-
});
|
|
226
|
-
});
|
|
227
|
-
|
|
228
|
-
// Advanced scenarios (simplified multi-step workflow)
|
|
229
|
-
describe('Advanced Scenarios', () => {
|
|
230
|
-
test('should support typical error analysis workflow', async () => {
|
|
231
|
-
// Simulate a typical workflow: recent errors -> specific investigation -> recovery validation
|
|
232
|
-
|
|
233
|
-
// Step 1: Get recent errors for overview
|
|
234
|
-
const recentErrors = await client.callTool('get_latest_error', { limit: 2 });
|
|
235
|
-
assertValidMCPResponse(recentErrors);
|
|
236
|
-
assert.equal(recentErrors.isError, false, 'Recent errors should succeed');
|
|
237
|
-
|
|
238
|
-
// Step 2: Get more detailed view for specific analysis
|
|
239
|
-
const detailedErrors = await client.callTool('get_latest_error', {
|
|
240
|
-
date: getCurrentDateString(),
|
|
241
|
-
limit: 5
|
|
242
|
-
});
|
|
243
|
-
assertValidMCPResponse(detailedErrors);
|
|
244
|
-
assert.equal(detailedErrors.isError, false, 'Detailed errors should succeed');
|
|
245
|
-
|
|
246
|
-
// Step 3: Verify both contain expected error content
|
|
247
|
-
[recentErrors, detailedErrors].forEach((result, index) => {
|
|
248
|
-
const text = result.content[0].text;
|
|
249
|
-
assert.ok(text.includes('ERROR'), `Result ${index} should contain ERROR level`);
|
|
250
|
-
assert.ok(text.includes('Latest'), `Result ${index} should contain 'Latest' message`);
|
|
251
|
-
assert.ok(/error-blade-.*\.log/.test(text), `Result ${index} should contain log filename`);
|
|
252
|
-
});
|
|
253
|
-
});
|
|
254
|
-
});
|
|
255
|
-
});
|