opera-devtools-mcp 0.2.3 → 0.3.0
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/README.md +104 -7
- package/build/src/McpContext.js +365 -365
- package/build/src/McpPage.js +475 -48
- package/build/src/McpResponse.js +462 -288
- package/build/src/SlimMcpResponse.js +1 -1
- package/build/src/TextSnapshot.js +101 -22
- package/build/src/ToolHandler.js +142 -20
- package/build/src/bin/check-latest-version.js +27 -1
- package/build/src/bin/chrome-devtools-cli-options.js +573 -10
- package/build/src/bin/chrome-devtools-mcp-cli-options.js +119 -32
- package/build/src/bin/chrome-devtools-mcp-main.js +50 -7
- package/build/src/bin/chrome-devtools-mcp.js +7 -4
- package/build/src/bin/chrome-devtools.js +57 -14
- package/build/src/bin/opera-devtools-cli-options.js +3 -829
- package/build/src/bin/opera-devtools-mcp-cli-options.js +3 -348
- package/build/src/bin/opera-devtools-mcp-main.js +3 -37
- package/build/src/bin/opera-devtools-mcp.js +4 -19
- package/build/src/bin/opera-devtools.js +4 -185
- package/build/src/browser.js +45 -5
- package/build/src/{PageCollector.js → collectors/PageCollector.js} +64 -133
- package/build/src/collectors/ServiceWorkerCollector.js +171 -0
- package/build/src/daemon/client.js +75 -17
- package/build/src/daemon/daemon.js +92 -30
- package/build/src/daemon/utils.js +24 -8
- package/build/src/{DevtoolsUtils.js → devtools/DevtoolsUtils.js} +94 -88
- package/build/src/devtools/McpHostBindingAdapter.js +165 -0
- package/build/src/{issue-descriptions.js → devtools/issueDescriptions.js} +8 -6
- package/build/src/formatters/ConsoleFormatter.js +44 -11
- package/build/src/formatters/HeapSnapshotFormatter.js +140 -9
- package/build/src/formatters/IssueFormatter.js +7 -7
- package/build/src/formatters/NetworkFormatter.js +10 -8
- package/build/src/index.js +101 -232
- package/build/src/opera/branding.js +34 -0
- package/build/src/opera/browserFlags.js +85 -0
- package/build/src/opera/browserLaunch.js +52 -0
- package/build/src/opera/policy.js +50 -0
- package/build/src/opera/serviceWorkerRetry.js +37 -0
- package/build/src/opera/toolHandlerHooks.js +39 -0
- package/build/src/{tools → opera/tools}/opera.js +9 -21
- package/build/src/processors/HeapSnapshotManager.js +258 -0
- package/build/src/{trace-processing/parse.js → processors/PerformanceTrace.js} +9 -9
- package/build/src/telemetry/ClearcutLogger.js +12 -119
- package/build/src/telemetry/WatchdogClient.js +5 -5
- package/build/src/telemetry/errors.js +1 -1
- package/build/src/telemetry/flagUtils.js +6 -6
- package/build/src/telemetry/{toolMetricsUtils.js → metricsRegistry.js} +4 -11
- package/build/src/telemetry/persistence.js +3 -3
- package/build/src/telemetry/transformation.js +184 -0
- package/build/src/telemetry/watchdog/ClearcutSender.js +11 -11
- package/build/src/telemetry/watchdog/main.js +6 -6
- package/build/src/third_party/THIRD_PARTY_NOTICES +3493 -0
- package/build/src/third_party/bundled-packages.json +9 -0
- package/build/src/third_party/devtools-formatter-worker.js +15340 -7
- package/build/src/third_party/devtools-heap-snapshot-worker.js +10337 -7
- package/build/src/third_party/index.js +179960 -26
- package/build/src/third_party/issue-descriptions/CoepCorpNotSameOrigin.md +2 -2
- package/build/src/third_party/issue-descriptions/CoepCorpNotSameOriginAfterDefaultedToSameOriginByCoep.md +3 -3
- package/build/src/third_party/issue-descriptions/CoepCorpNotSameSite.md +2 -2
- package/build/src/third_party/issue-descriptions/CoepFrameResourceNeedsCoepHeader.md +1 -1
- package/build/src/third_party/issue-descriptions/CompatibilityModeQuirks.md +1 -1
- package/build/src/third_party/issue-descriptions/CookieAttributeValueExceedsMaxSize.md +2 -2
- package/build/src/third_party/issue-descriptions/LowTextContrast.md +1 -1
- package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorRead.md +1 -1
- package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureErrorSet.md +1 -1
- package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnRead.md +1 -1
- package/build/src/third_party/issue-descriptions/SameSiteNoneInsecureWarnSet.md +1 -1
- package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeRead.md +3 -3
- package/build/src/third_party/issue-descriptions/SameSiteUnspecifiedLaxAllowUnsafeSet.md +3 -3
- package/build/src/third_party/issue-descriptions/bounceTrackingMitigations.md +1 -1
- package/build/src/third_party/issue-descriptions/connectionAllowlistEmbeddingRequirementNotSatisfied.md +26 -0
- package/build/src/third_party/issue-descriptions/connectionAllowlistIFrameAttributeLoosensEmbeddingRequirement.md +19 -0
- package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowConnectionAllowlistFrom.md +21 -0
- package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidAllowlistItemType.md +2 -2
- package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidHeader.md +2 -2
- package/build/src/third_party/issue-descriptions/connectionAllowlistInvalidUrlPattern.md +3 -3
- package/build/src/third_party/issue-descriptions/connectionAllowlistItemNotInnerList.md +2 -2
- package/build/src/third_party/issue-descriptions/connectionAllowlistMoreThanOneList.md +2 -2
- package/build/src/third_party/issue-descriptions/connectionAllowlistReportingEndpointNotToken.md +1 -1
- package/build/src/third_party/issue-descriptions/cookieCrossSiteRedirectDowngrade.md +3 -3
- package/build/src/third_party/issue-descriptions/cookieExcludeBlockedWithinRelatedWebsiteSet.md +1 -1
- package/build/src/third_party/issue-descriptions/cookieExcludePortMismatch.md +1 -1
- package/build/src/third_party/issue-descriptions/cookieExcludeSchemeMismatch.md +1 -1
- package/build/src/third_party/issue-descriptions/cookieExcludeThirdPartyPhaseoutSet.md +1 -1
- package/build/src/third_party/issue-descriptions/cookieWarnThirdPartyPhaseoutRead.md +1 -1
- package/build/src/third_party/issue-descriptions/corsAllowCredentialsRequired.md +1 -1
- package/build/src/third_party/issue-descriptions/corsDisabledScheme.md +2 -2
- package/build/src/third_party/issue-descriptions/corsDisallowedByMode.md +2 -2
- package/build/src/third_party/issue-descriptions/corsHeaderDisallowedByPreflightResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/corsInvalidHeaderValues.md +3 -3
- package/build/src/third_party/issue-descriptions/corsLocalNetworkAccessPermissionDenied.md +1 -1
- package/build/src/third_party/issue-descriptions/corsMethodDisallowedByPreflightResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/corsNoCorsRedirectModeNotFollow.md +1 -1
- package/build/src/third_party/issue-descriptions/corsOriginMismatch.md +3 -3
- package/build/src/third_party/issue-descriptions/corsPreflightResponseInvalid.md +2 -2
- package/build/src/third_party/issue-descriptions/corsRedirectContainsCredentials.md +3 -3
- package/build/src/third_party/issue-descriptions/corsWildcardOriginNotAllowed.md +4 -3
- package/build/src/third_party/issue-descriptions/cspEvalViolation.md +4 -4
- package/build/src/third_party/issue-descriptions/cspInlineViolation.md +2 -2
- package/build/src/third_party/issue-descriptions/cspTrustedTypesPolicyViolation.md +2 -2
- package/build/src/third_party/issue-descriptions/cspTrustedTypesSinkViolation.md +4 -4
- package/build/src/third_party/issue-descriptions/cspURLViolation.md +4 -4
- package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsEmptyList.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsHttpNotFound.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidContentType.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsInvalidResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestAccountsNoResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsFetchFailed.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestDnsInvalidRecord.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownHttpNotFound.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidContentType.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownInvalidResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestEmailVerificationWellKnownNoResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestInvalidEmail.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksHttpNotFound.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestJwksInvalidResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestKeyBindingSigningFailed.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestRpOriginIsOpaque.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenHttpNotFound.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidContentType.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenInvalidSdJwt.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenMalformedSdJwt.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenNoResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidAudience.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidIssuedAt.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidNonce.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidSdHash.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbInvalidTyp.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingAud.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingCnf.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingIat.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingNonce.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbMissingSdHash.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationKbSignatureFailed.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmail.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidEmailVerified.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidHolderKey.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuedAt.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtInvalidIssuer.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtJwksMissingKeys.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingCnf.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingEmail.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIat.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtMissingIss.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtSignatureFailed.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestTokenVerificationSdJwtUnsupportedHeaderAlg.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestUserLoggedOut.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownAccountsEndpointCrossOrigin.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownHttpNotFound.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidContentType.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownInvalidResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownIssuanceEndpointCrossOrigin.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownListEmpty.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingAccountsEndpoint.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownMissingIssuanceEndpoint.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownNoResponse.md +1 -0
- package/build/src/third_party/issue-descriptions/emailVerificationRequestWellKnownUnsupportedSigningAlgorithm.md +1 -0
- package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsHttpNotFound.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsInvalidResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestAccountsNoResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestApprovalDeclined.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestCanceled.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorFetchingSignin.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestErrorIdToken.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenHttpNotFound.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidRequest.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenInvalidResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestIdTokenNoResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestInvalidSigninResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestHttpNotFound.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestInvalidResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestManifestNoResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthRequestTooManyRequests.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidAccountsResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestInvalidConfigOrWellKnown.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoAccountSharingPermission.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoApiPermission.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNoReturningUserFromFetchedAccounts.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotIframe.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotPotentiallyTrustworthy.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSameOrigin.md +1 -1
- package/build/src/third_party/issue-descriptions/federatedAuthUserInfoRequestNotSignedInWithIdp.md +1 -1
- package/build/src/third_party/issue-descriptions/fetchingPartitionedBlobURL.md +2 -2
- package/build/src/third_party/issue-descriptions/genericBackUINavigationWouldSkipAd.md +4 -0
- package/build/src/third_party/issue-descriptions/genericFormAriaLabelledByToNonExistingIdError.md +2 -2
- package/build/src/third_party/issue-descriptions/genericFormAutocompleteAttributeEmptyError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormDuplicateIdForInputError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormEmptyIdAndNameAttributesForInputError.md +2 -2
- package/build/src/third_party/issue-descriptions/genericFormInputAssignedAutocompleteValueToIdOrNameAttributeError.md +2 -2
- package/build/src/third_party/issue-descriptions/genericFormInputHasWrongButWellIntendedAutocompleteValueError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormInputWithNoLabelError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormLabelForMatchesNonExistingIdError.md +2 -2
- package/build/src/third_party/issue-descriptions/genericFormLabelForNameError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormLabelHasNeitherForNorNestedInputError.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormModelContextMissingToolName.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormModelContextParameterMissingName.md +1 -1
- package/build/src/third_party/issue-descriptions/genericFormModelContextRequiredParameterMissingName.md +1 -1
- package/build/src/third_party/issue-descriptions/genericNavigationEntryMarkedSkippable.md +2 -2
- package/build/src/third_party/issue-descriptions/heavyAd.md +1 -1
- package/build/src/third_party/issue-descriptions/lazyLoadImageZeroSize.md +7 -0
- package/build/src/third_party/issue-descriptions/navigatingPartitionedBlobURL.md +3 -3
- package/build/src/third_party/issue-descriptions/permissionElementActivationDisabled.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluder.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementActivationDisabledWithOccluderParent.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementFencedFrameDisallowed.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooLarge.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementFontSizeTooSmall.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementInsetBoxShadowUnsupported.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementInvalidDisplayStyle.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementInvalidSizeValue.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementInvalidType.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementInvalidTypeActivation.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementNonOpaqueColor.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementPaddingBottomUnsupported.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementPaddingRightUnsupported.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementRequestInProgress.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementSecurityChecksFailed.md +1 -1
- package/build/src/third_party/issue-descriptions/permissionElementTypeNotSupported.md +2 -2
- package/build/src/third_party/issue-descriptions/permissionElementUntrustedEvent.md +1 -1
- package/build/src/third_party/issue-descriptions/placeholderDescriptionForInvisibleIssues.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedOptGroupChild.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityDisallowedSelectChild.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentAttributesSelectDescendant.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentLegendChild.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityInteractiveContentOptionChild.md +1 -1
- package/build/src/third_party/issue-descriptions/selectElementAccessibilityNonPhrasingContentOptionChild.md +1 -1
- package/build/src/third_party/issue-descriptions/selectivePermissionsIntervention.md +3 -3
- package/build/src/third_party/issue-descriptions/sharedArrayBuffer.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorCrossOriginNoCorsRequest.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorMatchingDictionaryNotUsed.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryUseErrorUnexpectedContentDictionaryHeader.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorCossOriginNoCorsRequest.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorDisallowedBySettings.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorExpiredResponse.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorFeatureDisabled.md +2 -2
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorInvalidStructuredHeader.md +1 -1
- package/build/src/third_party/issue-descriptions/sharedDictionaryWriteErrorNavigationRequest.md +2 -2
- package/build/src/third_party/issue-descriptions/sriInvalidSignatureHeader.md +4 -4
- package/build/src/third_party/issue-descriptions/sriInvalidSignatureInputHeader.md +4 -4
- package/build/src/third_party/issue-descriptions/sriMissingSignatureHeader.md +1 -1
- package/build/src/third_party/issue-descriptions/sriMissingSignatureInputHeader.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsIncorrectLength.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsNotByteSequence.md +4 -4
- package/build/src/third_party/issue-descriptions/sriSignatureHeaderValueIsParameterized.md +4 -4
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentName.md +1 -1
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidComponentType.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidDerivedComponentParameter.md +1 -1
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidHeaderComponentParameter.md +1 -1
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderInvalidParameter.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderKeyIdLength.md +5 -5
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingLabel.md +3 -3
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderMissingRequiredParameters.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueMissingComponents.md +2 -2
- package/build/src/third_party/issue-descriptions/sriSignatureInputHeaderValueNotInnerList.md +2 -2
- package/build/src/third_party/issue-descriptions/sriValidationFailedIntegrityMismatch.md +4 -4
- package/build/src/third_party/issue-descriptions/sriValidationFailedInvalidLength.md +3 -3
- package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureExpired.md +2 -2
- package/build/src/third_party/issue-descriptions/sriValidationFailedSignatureMismatch.md +2 -2
- package/build/src/third_party/issue-descriptions/stylesheetLateImport.md +1 -1
- package/build/src/third_party/issue-descriptions/summaryElementAccessibilityInteractiveContentSummaryDescendant.md +1 -1
- package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestLength.md +2 -2
- package/build/src/third_party/issue-descriptions/unencodedDigestIncorrectDigestType.md +3 -3
- package/build/src/third_party/issue-descriptions/unencodedDigestMalformedDictionary.md +2 -2
- package/build/src/third_party/issue-descriptions/unencodedDigestUnknownAlgorithm.md +1 -1
- package/build/src/third_party/lighthouse-devtools-mcp-bundle.js +3177 -6340
- package/build/src/tools/ToolDefinition.js +2 -2
- package/build/src/tools/categories.js +3 -0
- package/build/src/tools/console.js +13 -0
- package/build/src/tools/emulation.js +30 -3
- package/build/src/tools/extensions.js +8 -1
- package/build/src/tools/input.js +246 -128
- package/build/src/tools/lighthouse.js +14 -7
- package/build/src/tools/memory.js +289 -25
- package/build/src/tools/network.js +10 -7
- package/build/src/tools/pages.js +33 -92
- package/build/src/tools/performance.js +67 -52
- package/build/src/tools/pwa.js +128 -0
- package/build/src/tools/screencast.js +35 -12
- package/build/src/tools/screenshot.js +234 -75
- package/build/src/tools/script.js +130 -45
- package/build/src/tools/slim/tools.js +3 -0
- package/build/src/tools/snapshot.js +7 -4
- package/build/src/tools/thirdPartyDeveloper.js +19 -9
- package/build/src/tools/tools.js +3 -1
- package/build/src/tools/webmcp.js +3 -1
- package/build/src/utils/WaitForHelper.js +299 -0
- package/build/src/utils/check-for-updates.js +8 -2
- package/build/src/utils/files.js +42 -3
- package/build/src/utils/logger.js +51 -0
- package/build/src/utils/polyfill.js +11 -0
- package/build/src/utils/url.js +43 -0
- package/build/src/version.js +1 -1
- package/package.json +42 -33
- package/build/src/DevToolsConnectionAdapter.js +0 -70
- package/build/src/HeapSnapshotManager.js +0 -110
- package/build/src/Mutex.js +0 -38
- package/build/src/WaitForHelper.js +0 -195
- package/build/src/bin/cliDefinitions.js +0 -616
- package/build/src/logger.js +0 -37
- package/build/src/polyfill.js +0 -8
- package/build/src/telemetry/metricUtils.js +0 -15
- package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeRead.md +0 -8
- package/build/src/third_party/issue-descriptions/SameSiteExcludeContextDowngradeSet.md +0 -8
- package/build/src/third_party/issue-descriptions/SameSiteExcludeNavigationContextDowngrade.md +0 -8
- package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeRead.md +0 -8
- package/build/src/third_party/issue-descriptions/SameSiteWarnCrossDowngradeSet.md +0 -8
- package/build/src/third_party/issue-descriptions/SameSiteWarnStrictLaxDowngradeStrict.md +0 -8
- package/build/src/third_party/issue-descriptions/arInsecureContext.md +0 -7
- package/build/src/third_party/issue-descriptions/arInvalidInfoHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arInvalidRegisterOsSourceHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arInvalidRegisterOsTriggerHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arInvalidRegisterSourceHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arInvalidRegisterTriggerHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arNavigationRegistrationUniqueScopeAlreadySet.md +0 -5
- package/build/src/third_party/issue-descriptions/arNavigationRegistrationWithoutTransientUserActivation.md +0 -6
- package/build/src/third_party/issue-descriptions/arNoRegisterOsSourceHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arNoRegisterOsTriggerHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arNoRegisterSourceHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arNoRegisterTriggerHeader.md +0 -5
- package/build/src/third_party/issue-descriptions/arNoWebOrOsSupport.md +0 -4
- package/build/src/third_party/issue-descriptions/arOsSourceIgnored.md +0 -18
- package/build/src/third_party/issue-descriptions/arOsTriggerIgnored.md +0 -19
- package/build/src/third_party/issue-descriptions/arPermissionPolicyDisabled.md +0 -8
- package/build/src/third_party/issue-descriptions/arSourceAndTriggerHeaders.md +0 -9
- package/build/src/third_party/issue-descriptions/arSourceIgnored.md +0 -13
- package/build/src/third_party/issue-descriptions/arTriggerIgnored.md +0 -12
- package/build/src/third_party/issue-descriptions/arUntrustworthyReportingOrigin.md +0 -10
- package/build/src/third_party/issue-descriptions/arWebAndOsHeaders.md +0 -11
- package/build/src/utils/string.js +0 -37
- package/build/src/utils/types.js +0 -7
|
@@ -30,6 +30,48 @@ export const commands = {
|
|
|
30
30
|
},
|
|
31
31
|
},
|
|
32
32
|
},
|
|
33
|
+
click_at: {
|
|
34
|
+
description: 'Clicks at the provided coordinates (requires flag: --experimentalVision=true)',
|
|
35
|
+
category: 'Input automation',
|
|
36
|
+
args: {
|
|
37
|
+
x: {
|
|
38
|
+
name: 'x',
|
|
39
|
+
type: 'number',
|
|
40
|
+
description: 'The x coordinate',
|
|
41
|
+
required: true,
|
|
42
|
+
},
|
|
43
|
+
y: {
|
|
44
|
+
name: 'y',
|
|
45
|
+
type: 'number',
|
|
46
|
+
description: 'The y coordinate',
|
|
47
|
+
required: true,
|
|
48
|
+
},
|
|
49
|
+
dblClick: {
|
|
50
|
+
name: 'dblClick',
|
|
51
|
+
type: 'boolean',
|
|
52
|
+
description: 'Set to true for double clicks. Default is false.',
|
|
53
|
+
required: false,
|
|
54
|
+
},
|
|
55
|
+
includeSnapshot: {
|
|
56
|
+
name: 'includeSnapshot',
|
|
57
|
+
type: 'boolean',
|
|
58
|
+
description: 'Whether to include a snapshot in the response. Default is false.',
|
|
59
|
+
required: false,
|
|
60
|
+
},
|
|
61
|
+
},
|
|
62
|
+
},
|
|
63
|
+
close_heapsnapshot: {
|
|
64
|
+
description: 'Closes a previously loaded memory heapsnapshot, freeing its memory. (requires flag: --memoryDebugging=true)',
|
|
65
|
+
category: 'Memory',
|
|
66
|
+
args: {
|
|
67
|
+
filePath: {
|
|
68
|
+
name: 'filePath',
|
|
69
|
+
type: 'string',
|
|
70
|
+
description: 'A path to the .heapsnapshot file to close.',
|
|
71
|
+
required: true,
|
|
72
|
+
},
|
|
73
|
+
},
|
|
74
|
+
},
|
|
33
75
|
close_page: {
|
|
34
76
|
description: 'Closes the page by its index. The last open page cannot be closed.',
|
|
35
77
|
category: 'Navigation automation',
|
|
@@ -42,6 +84,30 @@ export const commands = {
|
|
|
42
84
|
},
|
|
43
85
|
},
|
|
44
86
|
},
|
|
87
|
+
compare_heapsnapshots: {
|
|
88
|
+
description: 'Loads two memory heapsnapshots and returns the comparison. If classIndex is provided, returns detailed diff for that class, otherwise returns summary diff. (requires flag: --memoryDebugging=true)',
|
|
89
|
+
category: 'Memory',
|
|
90
|
+
args: {
|
|
91
|
+
baseFilePath: {
|
|
92
|
+
name: 'baseFilePath',
|
|
93
|
+
type: 'string',
|
|
94
|
+
description: 'A path to the base .heapsnapshot file (earlier snapshot).',
|
|
95
|
+
required: true,
|
|
96
|
+
},
|
|
97
|
+
currentFilePath: {
|
|
98
|
+
name: 'currentFilePath',
|
|
99
|
+
type: 'string',
|
|
100
|
+
description: 'A path to the current .heapsnapshot file (later snapshot).',
|
|
101
|
+
required: true,
|
|
102
|
+
},
|
|
103
|
+
classIndex: {
|
|
104
|
+
name: 'classIndex',
|
|
105
|
+
type: 'number',
|
|
106
|
+
description: 'Optional 0-based index of the class in the summary list to filter results, showing individual objects.',
|
|
107
|
+
required: false,
|
|
108
|
+
},
|
|
109
|
+
},
|
|
110
|
+
},
|
|
45
111
|
drag: {
|
|
46
112
|
description: 'Drag an element onto another element',
|
|
47
113
|
category: 'Input automation',
|
|
@@ -86,7 +152,7 @@ export const commands = {
|
|
|
86
152
|
geolocation: {
|
|
87
153
|
name: 'geolocation',
|
|
88
154
|
type: 'string',
|
|
89
|
-
description: 'Geolocation (`<latitude
|
|
155
|
+
description: 'Geolocation (`<latitude>,<longitude>`) to emulate. Latitude between -90 and 90. Longitude between -180 and 180. Omit to clear the geolocation override.',
|
|
90
156
|
required: false,
|
|
91
157
|
},
|
|
92
158
|
userAgent: {
|
|
@@ -108,16 +174,22 @@ export const commands = {
|
|
|
108
174
|
description: "Emulate device viewports '<width>x<height>x<devicePixelRatio>[,mobile][,touch][,landscape]'. 'touch' and 'mobile' to emulate mobile devices. 'landscape' to emulate landscape mode.",
|
|
109
175
|
required: false,
|
|
110
176
|
},
|
|
177
|
+
extraHttpHeaders: {
|
|
178
|
+
name: 'extraHttpHeaders',
|
|
179
|
+
type: 'string',
|
|
180
|
+
description: 'Extra HTTP headers as a JSON string object, e.g. {"X-Custom": "value", "Authorization": "Bearer token"}. Headers are included into every HTTP request originating from the page and persist across navigations until cleared. Pass an empty string to clear all extra headers.',
|
|
181
|
+
required: false,
|
|
182
|
+
},
|
|
111
183
|
},
|
|
112
184
|
},
|
|
113
185
|
evaluate_script: {
|
|
114
|
-
description: 'Evaluate a JavaScript function inside the currently selected page. Returns the response as JSON
|
|
186
|
+
description: 'Evaluate a JavaScript function inside the currently selected page. Returns the response as JSON, so returned values have to be JSON-serializable.',
|
|
115
187
|
category: 'Debugging',
|
|
116
188
|
args: {
|
|
117
189
|
function: {
|
|
118
190
|
name: 'function',
|
|
119
191
|
type: 'string',
|
|
120
|
-
description: 'A JavaScript function declaration to be executed by the tool in the currently selected page.\nExample without arguments: `() =>
|
|
192
|
+
description: 'A JavaScript function declaration to be executed by the tool in the currently selected page.\nExample without arguments: `() => document.title` or `async () => await fetch("example.com")`.\nExample with arguments: `(el) => el.innerText`\n',
|
|
121
193
|
required: true,
|
|
122
194
|
},
|
|
123
195
|
args: {
|
|
@@ -126,12 +198,60 @@ export const commands = {
|
|
|
126
198
|
description: 'An optional list of arguments to pass to the function.',
|
|
127
199
|
required: false,
|
|
128
200
|
},
|
|
201
|
+
filePath: {
|
|
202
|
+
name: 'filePath',
|
|
203
|
+
type: 'string',
|
|
204
|
+
description: 'The absolute or relative path to a file to save the script output to. If omitted, the output is returned inline.',
|
|
205
|
+
required: false,
|
|
206
|
+
},
|
|
129
207
|
dialogAction: {
|
|
130
208
|
name: 'dialogAction',
|
|
131
209
|
type: 'string',
|
|
132
210
|
description: 'Handle dialogs while execution. "accept", "dismiss", or string for response of window.prompt. Defaults to accept.',
|
|
133
211
|
required: false,
|
|
134
212
|
},
|
|
213
|
+
waitForStableDom: {
|
|
214
|
+
name: 'waitForStableDom',
|
|
215
|
+
type: 'boolean',
|
|
216
|
+
description: 'Whether to wait for the DOM to settle. Pass false if the script only reads data. Defaults to true.',
|
|
217
|
+
required: false,
|
|
218
|
+
},
|
|
219
|
+
},
|
|
220
|
+
},
|
|
221
|
+
execute_3p_developer_tool: {
|
|
222
|
+
description: 'Executes a tool exposed by the page. (requires flag: --categoryExperimentalThirdParty=true)',
|
|
223
|
+
category: 'Third-party',
|
|
224
|
+
args: {
|
|
225
|
+
toolName: {
|
|
226
|
+
name: 'toolName',
|
|
227
|
+
type: 'string',
|
|
228
|
+
description: 'The name of the tool to execute',
|
|
229
|
+
required: true,
|
|
230
|
+
},
|
|
231
|
+
params: {
|
|
232
|
+
name: 'params',
|
|
233
|
+
type: 'string',
|
|
234
|
+
description: 'The JSON-stringified parameters to pass to the tool',
|
|
235
|
+
required: false,
|
|
236
|
+
},
|
|
237
|
+
},
|
|
238
|
+
},
|
|
239
|
+
execute_webmcp_tool: {
|
|
240
|
+
description: 'Executes a WebMCP tool exposed by the page. (requires flag: --categoryExperimentalWebmcp=true)',
|
|
241
|
+
category: 'WebMCP',
|
|
242
|
+
args: {
|
|
243
|
+
toolName: {
|
|
244
|
+
name: 'toolName',
|
|
245
|
+
type: 'string',
|
|
246
|
+
description: 'The name of the WebMCP tool to execute',
|
|
247
|
+
required: true,
|
|
248
|
+
},
|
|
249
|
+
input: {
|
|
250
|
+
name: 'input',
|
|
251
|
+
type: 'string',
|
|
252
|
+
description: 'The JSON-stringified parameters to pass to the WebMCP tool',
|
|
253
|
+
required: false,
|
|
254
|
+
},
|
|
135
255
|
},
|
|
136
256
|
},
|
|
137
257
|
fill: {
|
|
@@ -170,6 +290,289 @@ export const commands = {
|
|
|
170
290
|
},
|
|
171
291
|
},
|
|
172
292
|
},
|
|
293
|
+
get_heapsnapshot_class_nodes: {
|
|
294
|
+
description: 'Loads a memory heapsnapshot and returns instances of a specific class with their IDs. (requires flag: --memoryDebugging=true)',
|
|
295
|
+
category: 'Memory',
|
|
296
|
+
args: {
|
|
297
|
+
filePath: {
|
|
298
|
+
name: 'filePath',
|
|
299
|
+
type: 'string',
|
|
300
|
+
description: 'A path to a .heapsnapshot file to read.',
|
|
301
|
+
required: true,
|
|
302
|
+
},
|
|
303
|
+
id: {
|
|
304
|
+
name: 'id',
|
|
305
|
+
type: 'number',
|
|
306
|
+
description: 'The ID for the class, obtained from details.',
|
|
307
|
+
required: true,
|
|
308
|
+
},
|
|
309
|
+
filterName: {
|
|
310
|
+
name: 'filterName',
|
|
311
|
+
type: 'string',
|
|
312
|
+
description: 'An optional filter to apply to the nodes.',
|
|
313
|
+
required: false,
|
|
314
|
+
enum: [
|
|
315
|
+
'objectsRetainedByDetachedDomNodes',
|
|
316
|
+
'objectsRetainedByConsole',
|
|
317
|
+
'objectsRetainedByEventHandlers',
|
|
318
|
+
'objectsRetainedByContexts',
|
|
319
|
+
'sharedNativeContext',
|
|
320
|
+
'noNativeContext',
|
|
321
|
+
'attributedToSpecificNativeContext',
|
|
322
|
+
],
|
|
323
|
+
},
|
|
324
|
+
objectId: {
|
|
325
|
+
name: 'objectId',
|
|
326
|
+
type: 'number',
|
|
327
|
+
description: 'The object ID (nodeId) of the specific native context to filter by when filterName is attributedToSpecificNativeContext.',
|
|
328
|
+
required: false,
|
|
329
|
+
},
|
|
330
|
+
pageIdx: {
|
|
331
|
+
name: 'pageIdx',
|
|
332
|
+
type: 'number',
|
|
333
|
+
description: 'The page index for pagination.',
|
|
334
|
+
required: false,
|
|
335
|
+
},
|
|
336
|
+
pageSize: {
|
|
337
|
+
name: 'pageSize',
|
|
338
|
+
type: 'number',
|
|
339
|
+
description: 'The page size for pagination.',
|
|
340
|
+
required: false,
|
|
341
|
+
},
|
|
342
|
+
},
|
|
343
|
+
},
|
|
344
|
+
get_heapsnapshot_details: {
|
|
345
|
+
description: 'Loads a memory heapsnapshot and returns all available information including statistics, static data, and aggregated node information. Supports pagination for aggregates. (requires flag: --memoryDebugging=true)',
|
|
346
|
+
category: 'Memory',
|
|
347
|
+
args: {
|
|
348
|
+
filePath: {
|
|
349
|
+
name: 'filePath',
|
|
350
|
+
type: 'string',
|
|
351
|
+
description: 'A path to a .heapsnapshot file to read.',
|
|
352
|
+
required: true,
|
|
353
|
+
},
|
|
354
|
+
filterName: {
|
|
355
|
+
name: 'filterName',
|
|
356
|
+
type: 'string',
|
|
357
|
+
description: 'An optional filter to apply to the aggregates.',
|
|
358
|
+
required: false,
|
|
359
|
+
enum: [
|
|
360
|
+
'objectsRetainedByDetachedDomNodes',
|
|
361
|
+
'objectsRetainedByConsole',
|
|
362
|
+
'objectsRetainedByEventHandlers',
|
|
363
|
+
'objectsRetainedByContexts',
|
|
364
|
+
'sharedNativeContext',
|
|
365
|
+
'noNativeContext',
|
|
366
|
+
'attributedToSpecificNativeContext',
|
|
367
|
+
],
|
|
368
|
+
},
|
|
369
|
+
objectId: {
|
|
370
|
+
name: 'objectId',
|
|
371
|
+
type: 'number',
|
|
372
|
+
description: 'The object ID (nodeId) of the specific native context to filter by when filterName is attributedToSpecificNativeContext.',
|
|
373
|
+
required: false,
|
|
374
|
+
},
|
|
375
|
+
pageIdx: {
|
|
376
|
+
name: 'pageIdx',
|
|
377
|
+
type: 'number',
|
|
378
|
+
description: 'The page index for pagination of aggregates.',
|
|
379
|
+
required: false,
|
|
380
|
+
},
|
|
381
|
+
pageSize: {
|
|
382
|
+
name: 'pageSize',
|
|
383
|
+
type: 'number',
|
|
384
|
+
description: 'The page size for pagination of aggregates.',
|
|
385
|
+
required: false,
|
|
386
|
+
},
|
|
387
|
+
},
|
|
388
|
+
},
|
|
389
|
+
get_heapsnapshot_dominators: {
|
|
390
|
+
description: 'Loads a memory heapsnapshot and returns the dominator chain for a specific node ID. This helps to identify which objects are keeping the target node alive. (requires flag: --memoryDebugging=true)',
|
|
391
|
+
category: 'Memory',
|
|
392
|
+
args: {
|
|
393
|
+
filePath: {
|
|
394
|
+
name: 'filePath',
|
|
395
|
+
type: 'string',
|
|
396
|
+
description: 'A path to a .heapsnapshot file to read.',
|
|
397
|
+
required: true,
|
|
398
|
+
},
|
|
399
|
+
nodeId: {
|
|
400
|
+
name: 'nodeId',
|
|
401
|
+
type: 'number',
|
|
402
|
+
description: 'The node ID to get the dominator chain for.',
|
|
403
|
+
required: true,
|
|
404
|
+
},
|
|
405
|
+
},
|
|
406
|
+
},
|
|
407
|
+
get_heapsnapshot_duplicate_strings: {
|
|
408
|
+
description: 'Loads a memory heapsnapshot and returns duplicate strings grouped by their value. (requires flag: --memoryDebugging=true)',
|
|
409
|
+
category: 'Memory',
|
|
410
|
+
args: {
|
|
411
|
+
filePath: {
|
|
412
|
+
name: 'filePath',
|
|
413
|
+
type: 'string',
|
|
414
|
+
description: 'A path to a .heapsnapshot file to read.',
|
|
415
|
+
required: true,
|
|
416
|
+
},
|
|
417
|
+
pageIdx: {
|
|
418
|
+
name: 'pageIdx',
|
|
419
|
+
type: 'number',
|
|
420
|
+
description: 'The page index for pagination.',
|
|
421
|
+
required: false,
|
|
422
|
+
},
|
|
423
|
+
pageSize: {
|
|
424
|
+
name: 'pageSize',
|
|
425
|
+
type: 'number',
|
|
426
|
+
description: 'The page size for pagination.',
|
|
427
|
+
required: false,
|
|
428
|
+
},
|
|
429
|
+
},
|
|
430
|
+
},
|
|
431
|
+
get_heapsnapshot_edges: {
|
|
432
|
+
description: 'Loads a memory heapsnapshot and returns outgoing edges (references) for a specific node ID. (requires flag: --memoryDebugging=true)',
|
|
433
|
+
category: 'Memory',
|
|
434
|
+
args: {
|
|
435
|
+
filePath: {
|
|
436
|
+
name: 'filePath',
|
|
437
|
+
type: 'string',
|
|
438
|
+
description: 'A path to a .heapsnapshot file to read.',
|
|
439
|
+
required: true,
|
|
440
|
+
},
|
|
441
|
+
nodeId: {
|
|
442
|
+
name: 'nodeId',
|
|
443
|
+
type: 'number',
|
|
444
|
+
description: 'The node ID to get outgoing edges for.',
|
|
445
|
+
required: true,
|
|
446
|
+
},
|
|
447
|
+
sortBy: {
|
|
448
|
+
name: 'sortBy',
|
|
449
|
+
type: 'string',
|
|
450
|
+
description: 'Sort order for edges. Default is retainedSize.',
|
|
451
|
+
required: false,
|
|
452
|
+
enum: ['retainedSize', 'selfSize', 'name'],
|
|
453
|
+
},
|
|
454
|
+
minRetainedSize: {
|
|
455
|
+
name: 'minRetainedSize',
|
|
456
|
+
type: 'number',
|
|
457
|
+
description: 'Minimum retained size in bytes for target nodes.',
|
|
458
|
+
required: false,
|
|
459
|
+
},
|
|
460
|
+
excludePrimitives: {
|
|
461
|
+
name: 'excludePrimitives',
|
|
462
|
+
type: 'boolean',
|
|
463
|
+
description: 'Whether to exclude primitive target nodes. Default is true.',
|
|
464
|
+
required: false,
|
|
465
|
+
},
|
|
466
|
+
pageIdx: {
|
|
467
|
+
name: 'pageIdx',
|
|
468
|
+
type: 'number',
|
|
469
|
+
description: 'The page index for pagination.',
|
|
470
|
+
required: false,
|
|
471
|
+
},
|
|
472
|
+
pageSize: {
|
|
473
|
+
name: 'pageSize',
|
|
474
|
+
type: 'number',
|
|
475
|
+
description: 'The page size for pagination.',
|
|
476
|
+
required: false,
|
|
477
|
+
},
|
|
478
|
+
},
|
|
479
|
+
},
|
|
480
|
+
get_heapsnapshot_object_details: {
|
|
481
|
+
description: 'Loads a memory heapsnapshot and returns detailed information about a specific object by its node ID, including size, type, distance, and DOM detachedness. (requires flag: --memoryDebugging=true)',
|
|
482
|
+
category: 'Memory',
|
|
483
|
+
args: {
|
|
484
|
+
filePath: {
|
|
485
|
+
name: 'filePath',
|
|
486
|
+
type: 'string',
|
|
487
|
+
description: 'A path to a .heapsnapshot file to read.',
|
|
488
|
+
required: true,
|
|
489
|
+
},
|
|
490
|
+
nodeId: {
|
|
491
|
+
name: 'nodeId',
|
|
492
|
+
type: 'number',
|
|
493
|
+
description: 'The node ID to get object details for.',
|
|
494
|
+
required: true,
|
|
495
|
+
},
|
|
496
|
+
},
|
|
497
|
+
},
|
|
498
|
+
get_heapsnapshot_retainers: {
|
|
499
|
+
description: 'Loads a memory heapsnapshot and returns retainers for a specific node ID. (requires flag: --memoryDebugging=true)',
|
|
500
|
+
category: 'Memory',
|
|
501
|
+
args: {
|
|
502
|
+
filePath: {
|
|
503
|
+
name: 'filePath',
|
|
504
|
+
type: 'string',
|
|
505
|
+
description: 'A path to a .heapsnapshot file to read.',
|
|
506
|
+
required: true,
|
|
507
|
+
},
|
|
508
|
+
nodeId: {
|
|
509
|
+
name: 'nodeId',
|
|
510
|
+
type: 'number',
|
|
511
|
+
description: 'The node ID to get retainers for.',
|
|
512
|
+
required: true,
|
|
513
|
+
},
|
|
514
|
+
pageIdx: {
|
|
515
|
+
name: 'pageIdx',
|
|
516
|
+
type: 'number',
|
|
517
|
+
description: 'The page index for pagination.',
|
|
518
|
+
required: false,
|
|
519
|
+
},
|
|
520
|
+
pageSize: {
|
|
521
|
+
name: 'pageSize',
|
|
522
|
+
type: 'number',
|
|
523
|
+
description: 'The page size for pagination.',
|
|
524
|
+
required: false,
|
|
525
|
+
},
|
|
526
|
+
},
|
|
527
|
+
},
|
|
528
|
+
get_heapsnapshot_retaining_paths: {
|
|
529
|
+
description: 'Loads a memory heapsnapshot and returns retaining paths for a specific node ID. This helps to understand why a node is not being garbage collected. (requires flag: --memoryDebugging=true)',
|
|
530
|
+
category: 'Memory',
|
|
531
|
+
args: {
|
|
532
|
+
filePath: {
|
|
533
|
+
name: 'filePath',
|
|
534
|
+
type: 'string',
|
|
535
|
+
description: 'A path to a .heapsnapshot file to read.',
|
|
536
|
+
required: true,
|
|
537
|
+
},
|
|
538
|
+
nodeId: {
|
|
539
|
+
name: 'nodeId',
|
|
540
|
+
type: 'number',
|
|
541
|
+
description: 'The node ID to get retaining paths for.',
|
|
542
|
+
required: true,
|
|
543
|
+
},
|
|
544
|
+
maxDepth: {
|
|
545
|
+
name: 'maxDepth',
|
|
546
|
+
type: 'number',
|
|
547
|
+
description: 'The maximum depth to search for retaining paths.',
|
|
548
|
+
required: false,
|
|
549
|
+
},
|
|
550
|
+
maxNodes: {
|
|
551
|
+
name: 'maxNodes',
|
|
552
|
+
type: 'number',
|
|
553
|
+
description: 'The maximum number of nodes to return.',
|
|
554
|
+
required: false,
|
|
555
|
+
},
|
|
556
|
+
maxSiblings: {
|
|
557
|
+
name: 'maxSiblings',
|
|
558
|
+
type: 'number',
|
|
559
|
+
description: 'The maximum number of siblings to return.',
|
|
560
|
+
required: false,
|
|
561
|
+
},
|
|
562
|
+
},
|
|
563
|
+
},
|
|
564
|
+
get_heapsnapshot_summary: {
|
|
565
|
+
description: 'Loads a memory heapsnapshot and returns snapshot summary stats, including native contexts and their sizes, and retained by context summary. (requires flag: --memoryDebugging=true)',
|
|
566
|
+
category: 'Memory',
|
|
567
|
+
args: {
|
|
568
|
+
filePath: {
|
|
569
|
+
name: 'filePath',
|
|
570
|
+
type: 'string',
|
|
571
|
+
description: 'A path to a .heapsnapshot file to read.',
|
|
572
|
+
required: true,
|
|
573
|
+
},
|
|
574
|
+
},
|
|
575
|
+
},
|
|
173
576
|
get_network_request: {
|
|
174
577
|
description: 'Gets a network request by an optional reqid, if omitted returns the currently selected request in the DevTools Network panel.',
|
|
175
578
|
category: 'Network',
|
|
@@ -194,6 +597,18 @@ export const commands = {
|
|
|
194
597
|
},
|
|
195
598
|
},
|
|
196
599
|
},
|
|
600
|
+
get_os_app_state: {
|
|
601
|
+
description: 'Returns the OS integration state (badge count and registered file handlers) for an installed web app, identified by its manifest ID. (requires flag: --categoryPwa=true)',
|
|
602
|
+
category: 'Progressive Web Apps',
|
|
603
|
+
args: {
|
|
604
|
+
manifestId: {
|
|
605
|
+
name: 'manifestId',
|
|
606
|
+
type: 'string',
|
|
607
|
+
description: 'The manifest ID of the web app: the resolved `id` member of its manifest. If `id` is omitted, it defaults to the resolved `start_url` (e.g. "https://example.com/"). See https://w3c.github.io/manifest/#id-member.',
|
|
608
|
+
required: true,
|
|
609
|
+
},
|
|
610
|
+
},
|
|
611
|
+
},
|
|
197
612
|
handle_dialog: {
|
|
198
613
|
description: 'If a browser dialog was opened, use this command to handle it',
|
|
199
614
|
category: 'Input automation',
|
|
@@ -231,6 +646,61 @@ export const commands = {
|
|
|
231
646
|
},
|
|
232
647
|
},
|
|
233
648
|
},
|
|
649
|
+
install_extension: {
|
|
650
|
+
description: 'Installs a Chrome extension from the given path. (requires flag: --categoryExtensions=true)',
|
|
651
|
+
category: 'Extensions',
|
|
652
|
+
args: {
|
|
653
|
+
path: {
|
|
654
|
+
name: 'path',
|
|
655
|
+
type: 'string',
|
|
656
|
+
description: 'Absolute path to the unpacked extension folder.',
|
|
657
|
+
required: true,
|
|
658
|
+
},
|
|
659
|
+
},
|
|
660
|
+
},
|
|
661
|
+
install_pwa: {
|
|
662
|
+
description: 'Installs a Progressive Web App (PWA) identified by its manifest ID. This installs through the PWA CDP domain without a user gesture or install dialog. DevTools installs default to browser display mode. (requires flag: --categoryPwa=true)',
|
|
663
|
+
category: 'Progressive Web Apps',
|
|
664
|
+
args: {
|
|
665
|
+
manifestId: {
|
|
666
|
+
name: 'manifestId',
|
|
667
|
+
type: 'string',
|
|
668
|
+
description: 'The manifest ID of the web app: the resolved `id` member of its manifest. If `id` is omitted, it defaults to the resolved `start_url` (e.g. "https://example.com/"). See https://w3c.github.io/manifest/#id-member.',
|
|
669
|
+
required: true,
|
|
670
|
+
},
|
|
671
|
+
installUrlOrBundleUrl: {
|
|
672
|
+
name: 'installUrlOrBundleUrl',
|
|
673
|
+
type: 'string',
|
|
674
|
+
description: 'The location of the app or bundle. For a normal site this is the page URL; for an Isolated Web App it can be a file:// or http(s):// signed web bundle.',
|
|
675
|
+
required: true,
|
|
676
|
+
},
|
|
677
|
+
displayMode: {
|
|
678
|
+
name: 'displayMode',
|
|
679
|
+
type: 'string',
|
|
680
|
+
description: 'Optional user display mode preference applied after install. "standalone" opens the app in its own window; "browser" opens it as a tab. Installs via the PWA CDP domain default to "browser" because they do not simulate the install dialog, so pass "standalone" to get an app-window experience.',
|
|
681
|
+
required: false,
|
|
682
|
+
enum: ['standalone', 'browser'],
|
|
683
|
+
},
|
|
684
|
+
},
|
|
685
|
+
},
|
|
686
|
+
launch_pwa: {
|
|
687
|
+
description: 'Launches an installed Progressive Web App using its saved display mode. Optionally opens a specific URL within the same app instead of the default start URL. (requires flag: --categoryPwa=true)',
|
|
688
|
+
category: 'Progressive Web Apps',
|
|
689
|
+
args: {
|
|
690
|
+
manifestId: {
|
|
691
|
+
name: 'manifestId',
|
|
692
|
+
type: 'string',
|
|
693
|
+
description: 'The manifest ID of the web app: the resolved `id` member of its manifest. If `id` is omitted, it defaults to the resolved `start_url` (e.g. "https://example.com/"). See https://w3c.github.io/manifest/#id-member.',
|
|
694
|
+
required: true,
|
|
695
|
+
},
|
|
696
|
+
url: {
|
|
697
|
+
name: 'url',
|
|
698
|
+
type: 'string',
|
|
699
|
+
description: 'Optional URL within the app to open instead of the default start URL.',
|
|
700
|
+
required: false,
|
|
701
|
+
},
|
|
702
|
+
},
|
|
703
|
+
},
|
|
234
704
|
lighthouse_audit: {
|
|
235
705
|
description: 'Get Lighthouse score and reports for accessibility, SEO, best practices, and agentic browsing. This excludes performance. For performance audits, run performance_start_trace',
|
|
236
706
|
category: 'Debugging',
|
|
@@ -259,6 +729,11 @@ export const commands = {
|
|
|
259
729
|
},
|
|
260
730
|
},
|
|
261
731
|
},
|
|
732
|
+
list_3p_developer_tools: {
|
|
733
|
+
description: "Lists all third-party developer tools the page exposes for providing runtime information.\nThird-party developer tools can be called via the 'execute_3p_developer_tool()' MCP tool.\nAlternatively, third-party developer tools can be executed by calling 'evaluate_script' and adding the\nfollowing command to the script:\n`window.__dtmcp.executeTool(toolName, params)`\nThis might be helpful when the third-party developer tools return non-serializable values or when composing\nthird-party developer tools with additional functionality. (requires flag: --categoryExperimentalThirdParty=true)",
|
|
734
|
+
category: 'Third-party',
|
|
735
|
+
args: {},
|
|
736
|
+
},
|
|
262
737
|
list_console_messages: {
|
|
263
738
|
description: 'List all console messages for the currently selected page since the last navigation.',
|
|
264
739
|
category: 'Debugging',
|
|
@@ -288,10 +763,28 @@ export const commands = {
|
|
|
288
763
|
required: false,
|
|
289
764
|
default: false,
|
|
290
765
|
},
|
|
766
|
+
includeStackTraces: {
|
|
767
|
+
name: 'includeStackTraces',
|
|
768
|
+
type: 'boolean',
|
|
769
|
+
description: 'Set to true to include the stack trace for each message when available. Increases the response size.',
|
|
770
|
+
required: false,
|
|
771
|
+
default: false,
|
|
772
|
+
},
|
|
773
|
+
serviceWorkerId: {
|
|
774
|
+
name: 'serviceWorkerId',
|
|
775
|
+
type: 'string',
|
|
776
|
+
description: 'Filter messages to only return messages of the specified service worker.',
|
|
777
|
+
required: false,
|
|
778
|
+
},
|
|
291
779
|
},
|
|
292
780
|
},
|
|
781
|
+
list_extensions: {
|
|
782
|
+
description: 'Lists all the Chrome extensions installed in the browser. This includes their name, ID, version, and enabled status. (requires flag: --categoryExtensions=true)',
|
|
783
|
+
category: 'Extensions',
|
|
784
|
+
args: {},
|
|
785
|
+
},
|
|
293
786
|
list_network_requests: {
|
|
294
|
-
description: '
|
|
787
|
+
description: 'Lists the most recent requests for the currently selected page since the last navigation.',
|
|
295
788
|
category: 'Network',
|
|
296
789
|
args: {
|
|
297
790
|
pageSize: {
|
|
@@ -326,6 +819,11 @@ export const commands = {
|
|
|
326
819
|
category: 'Navigation automation',
|
|
327
820
|
args: {},
|
|
328
821
|
},
|
|
822
|
+
list_webmcp_tools: {
|
|
823
|
+
description: 'Lists all WebMCP tools the page exposes. (requires flag: --categoryExperimentalWebmcp=true)',
|
|
824
|
+
category: 'WebMCP',
|
|
825
|
+
args: {},
|
|
826
|
+
},
|
|
329
827
|
navigate_page: {
|
|
330
828
|
description: 'Go to a URL, or back, forward, or reload. Use project URL if not specified otherwise.',
|
|
331
829
|
category: 'Navigation automation',
|
|
@@ -354,7 +852,7 @@ export const commands = {
|
|
|
354
852
|
type: 'string',
|
|
355
853
|
description: 'Whether to auto accept or beforeunload dialogs triggered by this navigation. Default is accept.',
|
|
356
854
|
required: false,
|
|
357
|
-
enum: ['accept', '
|
|
855
|
+
enum: ['accept', 'dismiss'],
|
|
358
856
|
},
|
|
359
857
|
initScript: {
|
|
360
858
|
name: 'initScript',
|
|
@@ -540,6 +1038,18 @@ export const commands = {
|
|
|
540
1038
|
},
|
|
541
1039
|
},
|
|
542
1040
|
},
|
|
1041
|
+
reload_extension: {
|
|
1042
|
+
description: 'Reloads an unpacked Chrome extension by its ID. (requires flag: --categoryExtensions=true)',
|
|
1043
|
+
category: 'Extensions',
|
|
1044
|
+
args: {
|
|
1045
|
+
id: {
|
|
1046
|
+
name: 'id',
|
|
1047
|
+
type: 'string',
|
|
1048
|
+
description: 'ID of the extension to reload.',
|
|
1049
|
+
required: true,
|
|
1050
|
+
},
|
|
1051
|
+
},
|
|
1052
|
+
},
|
|
543
1053
|
resize_page: {
|
|
544
1054
|
description: "Resizes the selected page's window so that the page has specified dimension",
|
|
545
1055
|
category: 'Emulation',
|
|
@@ -558,6 +1068,23 @@ export const commands = {
|
|
|
558
1068
|
},
|
|
559
1069
|
},
|
|
560
1070
|
},
|
|
1071
|
+
screencast_start: {
|
|
1072
|
+
description: 'Starts recording a screencast (video) of the selected page in specified format. (requires flag: --experimentalScreencast=true)',
|
|
1073
|
+
category: 'Debugging',
|
|
1074
|
+
args: {
|
|
1075
|
+
filePath: {
|
|
1076
|
+
name: 'filePath',
|
|
1077
|
+
type: 'string',
|
|
1078
|
+
description: 'Output file path (.webm,.mp4 are supported). Uses mkdtemp to generate a unique path if not provided.',
|
|
1079
|
+
required: false,
|
|
1080
|
+
},
|
|
1081
|
+
},
|
|
1082
|
+
},
|
|
1083
|
+
screencast_stop: {
|
|
1084
|
+
description: 'Stops the active screencast recording on the selected page. (requires flag: --experimentalScreencast=true)',
|
|
1085
|
+
category: 'Debugging',
|
|
1086
|
+
args: {},
|
|
1087
|
+
},
|
|
561
1088
|
select_page: {
|
|
562
1089
|
description: 'Select a page as a context for future tool calls.',
|
|
563
1090
|
category: 'Navigation automation',
|
|
@@ -576,7 +1103,7 @@ export const commands = {
|
|
|
576
1103
|
},
|
|
577
1104
|
},
|
|
578
1105
|
},
|
|
579
|
-
|
|
1106
|
+
take_heapsnapshot: {
|
|
580
1107
|
description: 'Capture a heap snapshot of the currently selected page. Use to analyze the memory distribution of JavaScript objects and debug memory leaks.',
|
|
581
1108
|
category: 'Memory',
|
|
582
1109
|
args: {
|
|
@@ -644,6 +1171,18 @@ export const commands = {
|
|
|
644
1171
|
},
|
|
645
1172
|
},
|
|
646
1173
|
},
|
|
1174
|
+
trigger_extension_action: {
|
|
1175
|
+
description: 'Triggers the default action of an extension by its ID. (requires flag: --categoryExtensions=true)',
|
|
1176
|
+
category: 'Extensions',
|
|
1177
|
+
args: {
|
|
1178
|
+
id: {
|
|
1179
|
+
name: 'id',
|
|
1180
|
+
type: 'string',
|
|
1181
|
+
description: 'ID of the extension to trigger the action for.',
|
|
1182
|
+
required: true,
|
|
1183
|
+
},
|
|
1184
|
+
},
|
|
1185
|
+
},
|
|
647
1186
|
type_text: {
|
|
648
1187
|
description: 'Type text using keyboard into a previously focused input',
|
|
649
1188
|
category: 'Input automation',
|
|
@@ -662,6 +1201,30 @@ export const commands = {
|
|
|
662
1201
|
},
|
|
663
1202
|
},
|
|
664
1203
|
},
|
|
1204
|
+
uninstall_extension: {
|
|
1205
|
+
description: 'Uninstalls a Chrome extension by its ID. (requires flag: --categoryExtensions=true)',
|
|
1206
|
+
category: 'Extensions',
|
|
1207
|
+
args: {
|
|
1208
|
+
id: {
|
|
1209
|
+
name: 'id',
|
|
1210
|
+
type: 'string',
|
|
1211
|
+
description: 'ID of the extension to uninstall.',
|
|
1212
|
+
required: true,
|
|
1213
|
+
},
|
|
1214
|
+
},
|
|
1215
|
+
},
|
|
1216
|
+
uninstall_pwa: {
|
|
1217
|
+
description: 'Uninstalls a Progressive Web App identified by its manifest ID and closes any open app windows. (requires flag: --categoryPwa=true)',
|
|
1218
|
+
category: 'Progressive Web Apps',
|
|
1219
|
+
args: {
|
|
1220
|
+
manifestId: {
|
|
1221
|
+
name: 'manifestId',
|
|
1222
|
+
type: 'string',
|
|
1223
|
+
description: 'The manifest ID of the web app: the resolved `id` member of its manifest. If `id` is omitted, it defaults to the resolved `start_url` (e.g. "https://example.com/"). See https://w3c.github.io/manifest/#id-member.',
|
|
1224
|
+
required: true,
|
|
1225
|
+
},
|
|
1226
|
+
},
|
|
1227
|
+
},
|
|
665
1228
|
upload_file: {
|
|
666
1229
|
description: 'Upload a file through a provided element.',
|
|
667
1230
|
category: 'Input automation',
|
|
@@ -672,10 +1235,10 @@ export const commands = {
|
|
|
672
1235
|
description: 'The uid of the file input element or an element that will open file chooser on the page from the page content snapshot',
|
|
673
1236
|
required: true,
|
|
674
1237
|
},
|
|
675
|
-
|
|
676
|
-
name: '
|
|
677
|
-
type: '
|
|
678
|
-
description: '
|
|
1238
|
+
filePaths: {
|
|
1239
|
+
name: 'filePaths',
|
|
1240
|
+
type: 'array',
|
|
1241
|
+
description: 'One or more files paths to upload. File paths have to be local to the browser instance (not the MCP).',
|
|
679
1242
|
required: true,
|
|
680
1243
|
},
|
|
681
1244
|
includeSnapshot: {
|