chrome-devtools-mcp-for-extension 0.5.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/LICENSE +202 -0
- package/README.md +268 -0
- package/build/node_modules/chrome-devtools-frontend/LICENSE +27 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/App.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/AppProvider.js +17 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Base64.js +43 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/CharacterIdMap.js +27 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Color.js +2029 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorConverter.js +330 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorUtils.js +221 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Console.js +86 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Debouncer.js +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/EventTarget.js +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Gzip.js +64 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/JavaScriptMetaData.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Lazy.js +29 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Linkifier.js +34 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/MapWithDefault.js +20 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Mutex.js +49 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Object.js +86 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +459 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Progress.js +144 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/QueryParamHandler.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResolverBase.js +69 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResourceType.js +506 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ReturnToPanel.js +13 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Revealer.js +159 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Runnable.js +24 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SegmentedRange.js +79 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SettingRegistration.js +164 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +1252 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SimpleHistoryManager.js +97 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/StringOutputStream.js +17 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/TextDictionary.js +40 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Throttler.js +71 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Trie.js +127 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Worker.js +44 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +44 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +415 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +186 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +510 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostAPI.js +66 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/Platform.js +59 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +232 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +957 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/host/host.js +12 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +60 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +199 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Brand.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Constructor.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DOMUtilities.js +122 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DateUtilities.js +13 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DevToolsPath.js +27 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/KeyboardUtilities.js +21 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MapUtilities.js +79 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MimeType.js +143 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/NumberUtilities.js +72 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +536 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Timing.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypedArrayUtilities.js +157 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypescriptUtilities.js +24 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UIString.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UserVisibleError.js +22 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/platform.js +26 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +802 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/NodeURL.js +31 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +13 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/root/Runtime.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/root/root.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AccessibilityModel.js +281 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +846 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AutofillModel.js +155 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUProfilerModel.js +99 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +220 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSContainerQuery.js +98 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSFontFace.js +31 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSLayer.js +22 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +1284 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMedia.js +100 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +1518 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +902 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +315 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParser.js +572 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +1336 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSQuery.js +53 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +361 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSScope.js +22 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleDeclaration.js +275 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleSheetHeader.js +166 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSSupports.js +24 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CategorizedBreakpoint.js +29 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +232 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CompilerSourceMappingContentProvider.js +47 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Connections.js +242 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +629 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModelTypes.js +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +241 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieModel.js +198 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieParser.js +163 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMDebuggerModel.js +597 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +1610 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +1231 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EmulationModel.js +527 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EnhancedTracesParser.js +350 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EventBreakpointsModel.js +125 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameAssociated.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameManager.js +199 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HeapProfilerModel.js +130 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HttpReasonPhraseStrings.js +73 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +83 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IsolateManager.js +208 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IssuesModel.js +41 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LayerTreeBase.js +95 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LogModel.js +34 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +1916 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +1668 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayColorGenerator.js +48 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayModel.js +765 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayPersistentHighlighter.js +384 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageLoad.js +25 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +300 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PaintProfiler.js +67 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PerformanceMetricsModel.js +62 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +563 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +286 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingObject.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +905 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Resource.js +163 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +922 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RuntimeModel.js +535 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SDKModel.js +45 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScreenCaptureModel.js +174 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Script.js +395 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SecurityOriginManager.js +54 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEvents.js +67 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +110 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerTiming.js +216 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerCacheModel.js +271 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerManager.js +511 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +651 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +41 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapFunctionRanges.js +132 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +189 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopeChainEntry.js +156 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +276 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageBucketsModel.js +143 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageKeyManager.js +53 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +262 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +386 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TraceObject.js +52 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/WebAuthnModel.js +66 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +1117 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk.js +89 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +1513 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +339 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +1561 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +7514 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/generated/protocol.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.js +262 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +979 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +613 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/UnitFormatters.js +139 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +372 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIContext.js +132 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +105 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +243 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +407 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ContentProviderBasedProject.js +130 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerLanguagePlugins.js +992 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +574 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DefaultScriptMapping.js +112 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/FileUtils.js +186 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/LiveLocation.js +60 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/NetworkProject.js +107 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/PresentationConsoleMessageHelper.js +244 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +473 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +399 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceUtils.js +87 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +181 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/StylesSourceMapping.js +268 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/TempFile.js +55 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/bindings.js +20 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +514 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/ProfileTreeModel.js +90 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/cpu_profile.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +283 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/crux-manager.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/DeviceModeModel.js +775 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/EmulatedDevices.js +1706 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/emulation.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +131 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/ScriptFormatter.js +77 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/formatter.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/GeometryImpl.js +347 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/geometry.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/LogManager.js +67 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/NetworkLog.js +494 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/RequestResolver.js +49 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs-meta.js +73 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/Calculator.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/NetworkTimeCalculator.js +256 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/RequestTimeRanges.js +120 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/network_time_calculator.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +626 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeChainModel.js +59 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeTreeCache.js +32 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTrace.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceImpl.js +67 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +97 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/Trie.js +113 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace_impl.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/CodeMirrorUtils.js +32 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentData.js +173 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentProvider.js +30 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StaticContentProvider.js +32 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StreamingContentData.js +79 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/Text.js +69 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextCursor.js +35 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextRange.js +231 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextUtils.js +355 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/WasmDisassembly.js +68 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/text_utils.js +14 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EntityMapper.js +122 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js +81 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/LanternComputationData.js +370 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +166 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Name.js +114 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +555 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Styles.js +815 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/FilmStrip.js +44 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/MainThreadActivity.js +76 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ScriptDuplication.js +162 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/StackTraceForEvent.js +191 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ThirdParties.js +118 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceFilter.js +50 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +592 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/extras.js +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationFramesHandler.js +109 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationHandler.js +26 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AsyncJSCallsHandler.js +187 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AuctionWorkletsHandler.js +162 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/DOMStatsHandler.js +21 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ExtensionTraceDataHandler.js +263 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FlowsHandler.js +148 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FramesHandler.js +483 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/GPUHandler.js +35 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ImagePaintingHandler.js +147 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InitiatorsHandler.js +180 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InvalidationsHandler.js +126 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestImagePaintHandler.js +85 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestTextPaintHandler.js +27 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayerTreeHandler.js +103 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayoutShiftsHandler.js +445 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MemoryHandler.js +21 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +401 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ModelHandlers.js +33 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +540 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageFramesHandler.js +42 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageLoadMetricsHandler.js +349 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/RendererHandler.js +346 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +207 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScreenshotsHandler.js +97 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +251 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SelectorStatsHandler.js +71 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/Threads.js +101 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserInteractionsHandler.js +317 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserTimingsHandler.js +183 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WarningsHandler.js +134 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WorkersHandler.js +33 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/handlers.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.js +163 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/types.js +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Extensions.js +41 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Network.js +102 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SamplesIntegrator.js +495 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SyntheticEvents.js +74 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Timing.js +184 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +806 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/TreeHelpers.js +254 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/helpers.js +10 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/CLSCulprits.js +488 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Cache.js +208 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Common.js +340 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DOMSize.js +180 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +257 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DuplicatedJavaScript.js +89 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/FontDisplay.js +81 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ForcedReflow.js +160 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/INPBreakdown.js +117 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ImageDelivery.js +262 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +188 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +182 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LegacyJavaScript.js +88 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Models.js +21 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ModernHTTP.js +199 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +544 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +191 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/SlowCSSSelector.js +135 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Statistics.js +92 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ThirdParties.js +97 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Viewport.js +101 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/insights.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/types.js +18 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/LanternError.js +6 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/NetworkAnalyzer.js +488 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/core.js +5 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/BaseNode.js +276 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/CPUNode.js +63 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/NetworkNode.js +82 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/PageDependencyGraph.js +551 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/graph.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/lantern.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/FirstContentfulPaint.js +136 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Interactive.js +67 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/LargestContentfulPaint.js +68 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/MaxPotentialFID.js +48 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Metric.js +68 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/SpeedIndex.js +101 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TBTUtils.js +64 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TotalBlockingTime.js +78 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/metrics.js +11 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/ConnectionPool.js +115 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Constants.js +42 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/DNSCache.js +47 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/SimulationTimingMap.js +134 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Simulator.js +450 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/TCPConnection.js +154 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/simulation.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/Lantern.js +24 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/types.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/trace.js +17 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Configuration.js +18 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Extensions.js +37 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/File.js +57 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Overlays.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Timing.js +15 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +574 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/types.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +201 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/FileManager.js +64 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +511 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/SearchConfig.js +113 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +563 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +204 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/codemirror.next/codemirror.next.js +1 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/LICENSE +202 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/legacy-javascript.js +2 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +940 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/LICENSE +26 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +196 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +226 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/codec.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +394 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +24 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +283 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/mod.js +7 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/util.js +9 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +84 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/LICENSE +20 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/lib/nostats-subset.js +146 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +2 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-subset.js +2 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +118 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +40 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/entities.test.js +26 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.test.js +215 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +4 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/nostats-subset.js +2 -0
- package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/third-party-web.js +2 -0
- package/build/src/McpContext.js +283 -0
- package/build/src/McpResponse.js +223 -0
- package/build/src/Mutex.js +40 -0
- package/build/src/PageCollector.js +68 -0
- package/build/src/WaitForHelper.js +134 -0
- package/build/src/browser.js +493 -0
- package/build/src/cli.js +156 -0
- package/build/src/formatters/consoleFormatter.js +73 -0
- package/build/src/formatters/networkFormatter.js +34 -0
- package/build/src/formatters/snapshotFormatter.js +75 -0
- package/build/src/index.js +13 -0
- package/build/src/logger.js +27 -0
- package/build/src/main.js +139 -0
- package/build/src/system-profile.js +181 -0
- package/build/src/tools/ToolDefinition.js +9 -0
- package/build/src/tools/bookmarks.js +310 -0
- package/build/src/tools/categories.js +15 -0
- package/build/src/tools/console.js +19 -0
- package/build/src/tools/emulation.js +61 -0
- package/build/src/tools/extensions.js +184 -0
- package/build/src/tools/input.js +201 -0
- package/build/src/tools/network.js +77 -0
- package/build/src/tools/pages.js +188 -0
- package/build/src/tools/performance.js +145 -0
- package/build/src/tools/screenshot.js +65 -0
- package/build/src/tools/script.js +57 -0
- package/build/src/tools/snapshot.js +42 -0
- package/build/src/tools/webstore-auto-screenshot.js +159 -0
- package/build/src/tools/webstore-submission.js +332 -0
- package/build/src/trace-processing/parse.js +93 -0
- package/build/src/utils/pagination.js +49 -0
- package/package.json +79 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import fs from 'node:fs';
|
|
7
|
+
import os from 'node:os';
|
|
8
|
+
import path from 'node:path';
|
|
9
|
+
/**
|
|
10
|
+
* Get platform-specific Chrome user data directory paths
|
|
11
|
+
*/
|
|
12
|
+
function getChromeUserDataPaths() {
|
|
13
|
+
const homeDir = os.homedir();
|
|
14
|
+
const platform = os.platform();
|
|
15
|
+
const platformPaths = {
|
|
16
|
+
darwin: {
|
|
17
|
+
stable: path.join(homeDir, 'Library', 'Application Support', 'Google', 'Chrome'),
|
|
18
|
+
canary: path.join(homeDir, 'Library', 'Application Support', 'Google', 'Chrome Canary'),
|
|
19
|
+
beta: path.join(homeDir, 'Library', 'Application Support', 'Google', 'Chrome Beta'),
|
|
20
|
+
dev: path.join(homeDir, 'Library', 'Application Support', 'Google', 'Chrome Dev'),
|
|
21
|
+
},
|
|
22
|
+
win32: {
|
|
23
|
+
stable: path.join(homeDir, 'AppData', 'Local', 'Google', 'Chrome', 'User Data'),
|
|
24
|
+
canary: path.join(homeDir, 'AppData', 'Local', 'Google', 'Chrome SxS', 'User Data'),
|
|
25
|
+
beta: path.join(homeDir, 'AppData', 'Local', 'Google', 'Chrome Beta', 'User Data'),
|
|
26
|
+
dev: path.join(homeDir, 'AppData', 'Local', 'Google', 'Chrome Dev', 'User Data'),
|
|
27
|
+
},
|
|
28
|
+
linux: {
|
|
29
|
+
stable: path.join(homeDir, '.config', 'google-chrome'),
|
|
30
|
+
canary: path.join(homeDir, '.config', 'google-chrome-unstable'),
|
|
31
|
+
beta: path.join(homeDir, '.config', 'google-chrome-beta'),
|
|
32
|
+
dev: path.join(homeDir, '.config', 'google-chrome-dev'),
|
|
33
|
+
},
|
|
34
|
+
};
|
|
35
|
+
return platformPaths[platform] || {};
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Check if Chrome profile directory exists and is valid
|
|
39
|
+
*/
|
|
40
|
+
function validateChromeProfile(profilePath) {
|
|
41
|
+
try {
|
|
42
|
+
if (!fs.existsSync(profilePath)) {
|
|
43
|
+
return false;
|
|
44
|
+
}
|
|
45
|
+
const stats = fs.statSync(profilePath);
|
|
46
|
+
if (!stats.isDirectory()) {
|
|
47
|
+
return false;
|
|
48
|
+
}
|
|
49
|
+
// Check for essential Chrome profile files
|
|
50
|
+
const essentialFiles = [
|
|
51
|
+
'Default', // Default profile directory
|
|
52
|
+
'Local State', // Chrome local state file
|
|
53
|
+
];
|
|
54
|
+
for (const file of essentialFiles) {
|
|
55
|
+
const filePath = path.join(profilePath, file);
|
|
56
|
+
if (!fs.existsSync(filePath)) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
return true;
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Detect system Chrome profile for the specified channel
|
|
68
|
+
*/
|
|
69
|
+
export function detectSystemChromeProfile(channel = 'stable') {
|
|
70
|
+
const platform = os.platform();
|
|
71
|
+
const chromePaths = getChromeUserDataPaths();
|
|
72
|
+
if (!chromePaths[channel]) {
|
|
73
|
+
return null;
|
|
74
|
+
}
|
|
75
|
+
const profilePath = chromePaths[channel];
|
|
76
|
+
const exists = validateChromeProfile(profilePath);
|
|
77
|
+
if (exists) {
|
|
78
|
+
return {
|
|
79
|
+
path: profilePath,
|
|
80
|
+
exists: true,
|
|
81
|
+
platform,
|
|
82
|
+
channel,
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Detect any available system Chrome profile with fallback priority
|
|
89
|
+
*/
|
|
90
|
+
export function detectAnySystemChromeProfile() {
|
|
91
|
+
const platform = os.platform();
|
|
92
|
+
const chromePaths = getChromeUserDataPaths();
|
|
93
|
+
// Priority order: stable > beta > dev > canary
|
|
94
|
+
const channelPriority = ['stable', 'beta', 'dev', 'canary'];
|
|
95
|
+
for (const channel of channelPriority) {
|
|
96
|
+
const profilePath = chromePaths[channel];
|
|
97
|
+
if (profilePath) {
|
|
98
|
+
const exists = validateChromeProfile(profilePath);
|
|
99
|
+
if (exists) {
|
|
100
|
+
return {
|
|
101
|
+
path: profilePath,
|
|
102
|
+
exists: true,
|
|
103
|
+
platform,
|
|
104
|
+
channel,
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get all available system Chrome profiles
|
|
113
|
+
*/
|
|
114
|
+
export function getAllSystemChromeProfiles() {
|
|
115
|
+
const platform = os.platform();
|
|
116
|
+
const chromePaths = getChromeUserDataPaths();
|
|
117
|
+
const profiles = [];
|
|
118
|
+
for (const [channel, profilePath] of Object.entries(chromePaths)) {
|
|
119
|
+
if (profilePath) {
|
|
120
|
+
const exists = validateChromeProfile(profilePath);
|
|
121
|
+
profiles.push({
|
|
122
|
+
path: profilePath,
|
|
123
|
+
exists,
|
|
124
|
+
platform,
|
|
125
|
+
channel,
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
return profiles;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Get the default profile path within a Chrome user data directory
|
|
133
|
+
*/
|
|
134
|
+
export function getDefaultProfilePath(userDataDir) {
|
|
135
|
+
return path.join(userDataDir, 'Default');
|
|
136
|
+
}
|
|
137
|
+
/**
|
|
138
|
+
* Check if we're running in a sandboxed environment where system profile detection might fail
|
|
139
|
+
*/
|
|
140
|
+
export function isSandboxedEnvironment() {
|
|
141
|
+
const platform = os.platform();
|
|
142
|
+
// Check for common sandbox indicators
|
|
143
|
+
if (platform === 'darwin') {
|
|
144
|
+
// macOS Seatbelt indicators
|
|
145
|
+
const sandboxIndicators = [
|
|
146
|
+
process.env.APP_SANDBOX_CONTAINER_ID,
|
|
147
|
+
process.env.TMPDIR?.includes('TemporaryItems'),
|
|
148
|
+
];
|
|
149
|
+
return sandboxIndicators.some(indicator => !!indicator);
|
|
150
|
+
}
|
|
151
|
+
if (platform === 'linux') {
|
|
152
|
+
// Linux container indicators
|
|
153
|
+
const containerIndicators = [
|
|
154
|
+
fs.existsSync('/.dockerenv'),
|
|
155
|
+
process.env.container,
|
|
156
|
+
process.env.KUBERNETES_SERVICE_HOST,
|
|
157
|
+
];
|
|
158
|
+
return containerIndicators.some(indicator => !!indicator);
|
|
159
|
+
}
|
|
160
|
+
return false;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Log system profile detection information for debugging
|
|
164
|
+
*/
|
|
165
|
+
export function logSystemProfileInfo() {
|
|
166
|
+
const platform = os.platform();
|
|
167
|
+
const profiles = getAllSystemChromeProfiles();
|
|
168
|
+
const sandboxed = isSandboxedEnvironment();
|
|
169
|
+
console.error(`System Chrome Profile Detection:`);
|
|
170
|
+
console.error(` Platform: ${platform}`);
|
|
171
|
+
console.error(` Sandboxed Environment: ${sandboxed}`);
|
|
172
|
+
console.error(` Available Profiles:`);
|
|
173
|
+
if (profiles.length === 0) {
|
|
174
|
+
console.error(` None detected`);
|
|
175
|
+
}
|
|
176
|
+
else {
|
|
177
|
+
profiles.forEach((profile, index) => {
|
|
178
|
+
console.error(` ${index + 1}. ${profile.channel}: ${profile.path} (${profile.exists ? 'exists' : 'not found'})`);
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
}
|
|
@@ -0,0 +1,310 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { z } from 'zod';
|
|
7
|
+
import * as fs from 'fs';
|
|
8
|
+
import * as path from 'path';
|
|
9
|
+
import * as os from 'os';
|
|
10
|
+
import { ToolCategories } from './categories.js';
|
|
11
|
+
import { defineTool } from './ToolDefinition.js';
|
|
12
|
+
// Default hardcoded bookmarks - fallback when Chrome bookmarks cannot be loaded
|
|
13
|
+
function getDefaultBookmarks() {
|
|
14
|
+
return {
|
|
15
|
+
'dashboard': 'https://chrome.google.com/webstore/devconsole',
|
|
16
|
+
'new_item': 'https://chrome.google.com/webstore/devconsole/register',
|
|
17
|
+
'analytics': 'https://chrome.google.com/webstore/devconsole/analytics',
|
|
18
|
+
'payments': 'https://chrome.google.com/webstore/devconsole/payments',
|
|
19
|
+
'support': 'https://support.google.com/chrome_webstore/contact/developer_support',
|
|
20
|
+
'extensions': 'chrome://extensions/',
|
|
21
|
+
'extensions_dev': 'chrome://extensions/?id=',
|
|
22
|
+
'policy': 'https://developer.chrome.com/docs/webstore/program-policies/',
|
|
23
|
+
'docs': 'https://developer.chrome.com/docs/extensions/',
|
|
24
|
+
'localhost': 'http://localhost:3000',
|
|
25
|
+
'localhost8080': 'http://localhost:8080',
|
|
26
|
+
'suno': 'https://suno.com/create',
|
|
27
|
+
'chatgpt': 'https://chatgpt.com'
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Get Chrome bookmarks file path based on the operating system
|
|
32
|
+
*/
|
|
33
|
+
function getChromeBookmarksPath() {
|
|
34
|
+
const platform = process.platform;
|
|
35
|
+
const homeDir = os.homedir();
|
|
36
|
+
switch (platform) {
|
|
37
|
+
case 'darwin': // macOS
|
|
38
|
+
return path.join(homeDir, 'Library', 'Application Support', 'Google', 'Chrome', 'Default', 'Bookmarks');
|
|
39
|
+
case 'win32': // Windows
|
|
40
|
+
return path.join(homeDir, 'AppData', 'Local', 'Google', 'Chrome', 'User Data', 'Default', 'Bookmarks');
|
|
41
|
+
case 'linux': // Linux
|
|
42
|
+
return path.join(homeDir, '.config', 'google-chrome', 'Default', 'Bookmarks');
|
|
43
|
+
default:
|
|
44
|
+
return path.join(homeDir, '.config', 'google-chrome', 'Default', 'Bookmarks');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Recursively extract bookmark URLs from Chrome bookmark structure
|
|
49
|
+
*/
|
|
50
|
+
function extractBookmarkUrls(bookmark, prefix = '') {
|
|
51
|
+
const result = {};
|
|
52
|
+
const MAX_BOOKMARKS = 100; // Limit to 100 bookmarks to prevent response size issues
|
|
53
|
+
let bookmarkCount = 0;
|
|
54
|
+
// Helper function to recursively extract bookmarks with limit
|
|
55
|
+
function extract(node) {
|
|
56
|
+
if (bookmarkCount >= MAX_BOOKMARKS)
|
|
57
|
+
return;
|
|
58
|
+
if (node.type === 'url' && node.url && node.name) {
|
|
59
|
+
// Create a safe key from bookmark name
|
|
60
|
+
const key = node.name.toLowerCase()
|
|
61
|
+
.replace(/[^a-z0-9]/g, '_')
|
|
62
|
+
.replace(/_+/g, '_')
|
|
63
|
+
.replace(/^_|_$/g, '');
|
|
64
|
+
if (key && !result[key]) {
|
|
65
|
+
result[key] = node.url;
|
|
66
|
+
bookmarkCount++;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (node.children && bookmarkCount < MAX_BOOKMARKS) {
|
|
70
|
+
for (const child of node.children) {
|
|
71
|
+
extract(child);
|
|
72
|
+
if (bookmarkCount >= MAX_BOOKMARKS)
|
|
73
|
+
break;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
extract(bookmark);
|
|
78
|
+
return result;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Load Chrome bookmarks from the user's Chrome profile
|
|
82
|
+
*/
|
|
83
|
+
function loadChromeBookmarks() {
|
|
84
|
+
try {
|
|
85
|
+
const bookmarksPath = getChromeBookmarksPath();
|
|
86
|
+
console.error(`📚 Attempting to load Chrome bookmarks from: ${bookmarksPath}`);
|
|
87
|
+
if (!fs.existsSync(bookmarksPath)) {
|
|
88
|
+
console.error(`⚠️ Chrome bookmarks file not found: ${bookmarksPath}`);
|
|
89
|
+
return {};
|
|
90
|
+
}
|
|
91
|
+
const bookmarksData = fs.readFileSync(bookmarksPath, 'utf8');
|
|
92
|
+
const bookmarksJson = JSON.parse(bookmarksData);
|
|
93
|
+
const allBookmarks = {};
|
|
94
|
+
// Extract bookmarks from all roots
|
|
95
|
+
Object.assign(allBookmarks, extractBookmarkUrls(bookmarksJson.roots.bookmark_bar));
|
|
96
|
+
Object.assign(allBookmarks, extractBookmarkUrls(bookmarksJson.roots.other));
|
|
97
|
+
Object.assign(allBookmarks, extractBookmarkUrls(bookmarksJson.roots.synced));
|
|
98
|
+
const bookmarkCount = Object.keys(allBookmarks).length;
|
|
99
|
+
console.error(`✅ Successfully loaded ${bookmarkCount} Chrome bookmarks${bookmarkCount >= 100 ? ' (limited to 100)' : ''}`);
|
|
100
|
+
return allBookmarks;
|
|
101
|
+
}
|
|
102
|
+
catch (error) {
|
|
103
|
+
console.error('❌ Failed to load Chrome bookmarks:');
|
|
104
|
+
console.error(' Path:', getChromeBookmarksPath());
|
|
105
|
+
console.error(' Error:', error instanceof Error ? error.message : String(error));
|
|
106
|
+
if (error instanceof Error && error.stack) {
|
|
107
|
+
console.error(' Stack:', error.stack);
|
|
108
|
+
}
|
|
109
|
+
return {};
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Get all bookmarks: merged Chrome bookmarks with default fallback
|
|
114
|
+
*/
|
|
115
|
+
function getBookmarks() {
|
|
116
|
+
const defaultBookmarks = getDefaultBookmarks();
|
|
117
|
+
const chromeBookmarks = loadChromeBookmarks();
|
|
118
|
+
// Merge bookmarks: Chrome bookmarks take precedence, but defaults are always included
|
|
119
|
+
return {
|
|
120
|
+
...defaultBookmarks,
|
|
121
|
+
...chromeBookmarks
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
export const listBookmarks = defineTool({
|
|
125
|
+
name: 'list_bookmarks',
|
|
126
|
+
description: `List all available bookmarks including both Chrome bookmarks from the user's profile and default development bookmarks. Automatically loads bookmarks from Chrome's bookmark file and merges them with predefined development URLs.`,
|
|
127
|
+
annotations: {
|
|
128
|
+
category: ToolCategories.NAVIGATION_AUTOMATION,
|
|
129
|
+
readOnlyHint: true,
|
|
130
|
+
},
|
|
131
|
+
schema: {},
|
|
132
|
+
handler: async (_request, response, _context) => {
|
|
133
|
+
const defaultBookmarks = getDefaultBookmarks();
|
|
134
|
+
const chromeBookmarks = loadChromeBookmarks();
|
|
135
|
+
const allBookmarks = getBookmarks();
|
|
136
|
+
const bookmarkNames = Object.keys(allBookmarks);
|
|
137
|
+
if (bookmarkNames.length === 0) {
|
|
138
|
+
response.appendResponseLine('No bookmarks configured.');
|
|
139
|
+
response.appendResponseLine('');
|
|
140
|
+
response.appendResponseLine('💡 **Tip:** Chrome bookmarks could not be loaded. Check if Chrome is installed and has bookmarks.');
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
response.appendResponseLine('📚 **Available Bookmarks:**');
|
|
144
|
+
response.appendResponseLine('');
|
|
145
|
+
// Show loading status
|
|
146
|
+
const chromeBookmarkCount = Object.keys(chromeBookmarks).length;
|
|
147
|
+
const defaultBookmarkCount = Object.keys(defaultBookmarks).length;
|
|
148
|
+
if (chromeBookmarkCount > 0) {
|
|
149
|
+
response.appendResponseLine(`✅ Loaded ${chromeBookmarkCount} bookmarks from Chrome profile${chromeBookmarkCount >= 100 ? ' (limited to 100)' : ''}`);
|
|
150
|
+
response.appendResponseLine(`📋 ${defaultBookmarkCount} default development bookmarks included`);
|
|
151
|
+
}
|
|
152
|
+
else {
|
|
153
|
+
response.appendResponseLine(`⚠️ Could not load Chrome bookmarks, using ${defaultBookmarkCount} default bookmarks`);
|
|
154
|
+
}
|
|
155
|
+
response.appendResponseLine('');
|
|
156
|
+
bookmarkNames.forEach(name => {
|
|
157
|
+
const url = allBookmarks[name];
|
|
158
|
+
const source = chromeBookmarks[name] ? '🌐' : '🔧';
|
|
159
|
+
response.appendResponseLine(`${source} **${name}**: ${url}`);
|
|
160
|
+
});
|
|
161
|
+
response.appendResponseLine('');
|
|
162
|
+
response.appendResponseLine('**Legend:** 🌐 = Chrome bookmark, 🔧 = Default bookmark');
|
|
163
|
+
response.appendResponseLine('');
|
|
164
|
+
response.appendResponseLine(`Use \`navigate_bookmark name="<bookmark_name>"\` to navigate to any of these URLs.`);
|
|
165
|
+
},
|
|
166
|
+
});
|
|
167
|
+
export const navigateBookmark = defineTool({
|
|
168
|
+
name: 'navigate_bookmark',
|
|
169
|
+
description: `Navigate to a bookmark URL from Chrome bookmarks or default development bookmarks. Automatically includes bookmarks from the user's Chrome profile merged with predefined development resources.`,
|
|
170
|
+
annotations: {
|
|
171
|
+
category: ToolCategories.NAVIGATION_AUTOMATION,
|
|
172
|
+
readOnlyHint: false,
|
|
173
|
+
},
|
|
174
|
+
schema: {
|
|
175
|
+
name: z
|
|
176
|
+
.string()
|
|
177
|
+
.describe('The name of the bookmark to navigate to. Use list_bookmarks to see available options.'),
|
|
178
|
+
},
|
|
179
|
+
handler: async (request, response, context) => {
|
|
180
|
+
const { name } = request.params;
|
|
181
|
+
const bookmarks = getBookmarks();
|
|
182
|
+
if (!bookmarks[name]) {
|
|
183
|
+
response.appendResponseLine(`❌ Bookmark "${name}" not found.`);
|
|
184
|
+
response.appendResponseLine('');
|
|
185
|
+
const availableBookmarks = Object.keys(bookmarks);
|
|
186
|
+
if (availableBookmarks.length > 0) {
|
|
187
|
+
response.appendResponseLine('Available bookmarks:');
|
|
188
|
+
availableBookmarks.forEach(bookmarkName => {
|
|
189
|
+
response.appendResponseLine(`• ${bookmarkName}`);
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
else {
|
|
193
|
+
response.appendResponseLine('No bookmarks are currently configured.');
|
|
194
|
+
}
|
|
195
|
+
return;
|
|
196
|
+
}
|
|
197
|
+
const url = bookmarks[name];
|
|
198
|
+
const page = context.getSelectedPage();
|
|
199
|
+
await context.waitForEventsAfterAction(async () => {
|
|
200
|
+
await page.goto(url, { waitUntil: 'networkidle0' });
|
|
201
|
+
response.appendResponseLine(`✅ Navigated to bookmark "${name}": ${url}`);
|
|
202
|
+
});
|
|
203
|
+
},
|
|
204
|
+
});
|
|
205
|
+
export const openExtensionById = defineTool({
|
|
206
|
+
name: 'open_extension_by_id',
|
|
207
|
+
description: `Open a specific Chrome extension page by its ID. Useful for quickly accessing extension details, options, or management pages.`,
|
|
208
|
+
annotations: {
|
|
209
|
+
category: ToolCategories.EXTENSION_DEVELOPMENT,
|
|
210
|
+
readOnlyHint: false,
|
|
211
|
+
},
|
|
212
|
+
schema: {
|
|
213
|
+
extensionId: z
|
|
214
|
+
.string()
|
|
215
|
+
.describe('The Chrome extension ID (e.g., "abcdefghijklmnopqrstuvwxyz")'),
|
|
216
|
+
page: z
|
|
217
|
+
.enum(['details', 'options'])
|
|
218
|
+
.default('details')
|
|
219
|
+
.describe('The extension page to open'),
|
|
220
|
+
},
|
|
221
|
+
handler: async (request, response, context) => {
|
|
222
|
+
const { extensionId, page: extensionPage } = request.params;
|
|
223
|
+
const pageContext = context.getSelectedPage();
|
|
224
|
+
let url;
|
|
225
|
+
if (extensionPage === 'details') {
|
|
226
|
+
url = `chrome://extensions/?id=${extensionId}`;
|
|
227
|
+
}
|
|
228
|
+
else {
|
|
229
|
+
url = `chrome-extension://${extensionId}/options.html`;
|
|
230
|
+
}
|
|
231
|
+
await context.waitForEventsAfterAction(async () => {
|
|
232
|
+
try {
|
|
233
|
+
await pageContext.goto(url, { waitUntil: 'networkidle0' });
|
|
234
|
+
response.appendResponseLine(`✅ Opened ${extensionPage} page for extension: ${extensionId}`);
|
|
235
|
+
}
|
|
236
|
+
catch (error) {
|
|
237
|
+
response.appendResponseLine(`❌ Failed to open extension page: ${error instanceof Error ? error.message : String(error)}`);
|
|
238
|
+
response.appendResponseLine('');
|
|
239
|
+
response.appendResponseLine('💡 **Possible reasons:**');
|
|
240
|
+
response.appendResponseLine('• Extension ID is invalid or extension is not installed');
|
|
241
|
+
response.appendResponseLine('• Extension does not have an options page (for options page requests)');
|
|
242
|
+
response.appendResponseLine('• Extension is disabled');
|
|
243
|
+
}
|
|
244
|
+
});
|
|
245
|
+
},
|
|
246
|
+
});
|
|
247
|
+
export const openWebstoreDashboard = defineTool({
|
|
248
|
+
name: 'open_webstore_dashboard',
|
|
249
|
+
description: `Open the Chrome Web Store developer dashboard. Provides quick access to extension management, analytics, and publishing tools.`,
|
|
250
|
+
annotations: {
|
|
251
|
+
category: ToolCategories.EXTENSION_DEVELOPMENT,
|
|
252
|
+
readOnlyHint: false,
|
|
253
|
+
},
|
|
254
|
+
schema: {},
|
|
255
|
+
handler: async (_request, response, context) => {
|
|
256
|
+
const page = context.getSelectedPage();
|
|
257
|
+
const dashboardUrl = 'https://chrome.google.com/webstore/devconsole';
|
|
258
|
+
await context.waitForEventsAfterAction(async () => {
|
|
259
|
+
await page.goto(dashboardUrl, { waitUntil: 'networkidle0' });
|
|
260
|
+
response.appendResponseLine('✅ Opened Chrome Web Store Developer Dashboard');
|
|
261
|
+
response.appendResponseLine('');
|
|
262
|
+
response.appendResponseLine('🚀 **Quick Actions Available:**');
|
|
263
|
+
response.appendResponseLine('• View and manage your published extensions');
|
|
264
|
+
response.appendResponseLine('• Check analytics and user feedback');
|
|
265
|
+
response.appendResponseLine('• Upload new versions or create new items');
|
|
266
|
+
response.appendResponseLine('• Review policy compliance and store listing details');
|
|
267
|
+
});
|
|
268
|
+
},
|
|
269
|
+
});
|
|
270
|
+
export const openExtensionDocs = defineTool({
|
|
271
|
+
name: 'open_extension_docs',
|
|
272
|
+
description: `Open the Chrome Extensions documentation. Provides access to the official development guides, API references, and best practices.`,
|
|
273
|
+
annotations: {
|
|
274
|
+
category: ToolCategories.EXTENSION_DEVELOPMENT,
|
|
275
|
+
readOnlyHint: false,
|
|
276
|
+
},
|
|
277
|
+
schema: {
|
|
278
|
+
section: z
|
|
279
|
+
.enum([
|
|
280
|
+
'overview',
|
|
281
|
+
'getting-started',
|
|
282
|
+
'api',
|
|
283
|
+
'manifest',
|
|
284
|
+
'examples',
|
|
285
|
+
'best-practices',
|
|
286
|
+
])
|
|
287
|
+
.optional()
|
|
288
|
+
.describe('Specific documentation section to open'),
|
|
289
|
+
},
|
|
290
|
+
handler: async (request, response, context) => {
|
|
291
|
+
const { section } = request.params;
|
|
292
|
+
const page = context.getSelectedPage();
|
|
293
|
+
let url = 'https://developer.chrome.com/docs/extensions/';
|
|
294
|
+
if (section) {
|
|
295
|
+
const sectionUrls = {
|
|
296
|
+
overview: 'https://developer.chrome.com/docs/extensions/',
|
|
297
|
+
'getting-started': 'https://developer.chrome.com/docs/extensions/get-started/',
|
|
298
|
+
api: 'https://developer.chrome.com/docs/extensions/reference/',
|
|
299
|
+
manifest: 'https://developer.chrome.com/docs/extensions/reference/manifest',
|
|
300
|
+
examples: 'https://github.com/GoogleChrome/chrome-extensions-samples',
|
|
301
|
+
'best-practices': 'https://developer.chrome.com/docs/extensions/develop/migrate',
|
|
302
|
+
};
|
|
303
|
+
url = sectionUrls[section] || url;
|
|
304
|
+
}
|
|
305
|
+
await context.waitForEventsAfterAction(async () => {
|
|
306
|
+
await page.goto(url, { waitUntil: 'networkidle0' });
|
|
307
|
+
response.appendResponseLine(`✅ Opened Chrome Extensions ${section ? `${section} ` : ''}documentation`);
|
|
308
|
+
});
|
|
309
|
+
},
|
|
310
|
+
});
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
export var ToolCategories;
|
|
7
|
+
(function (ToolCategories) {
|
|
8
|
+
ToolCategories["INPUT_AUTOMATION"] = "Input automation";
|
|
9
|
+
ToolCategories["NAVIGATION_AUTOMATION"] = "Navigation automation";
|
|
10
|
+
ToolCategories["EMULATION"] = "Emulation";
|
|
11
|
+
ToolCategories["PERFORMANCE"] = "Performance";
|
|
12
|
+
ToolCategories["NETWORK"] = "Network";
|
|
13
|
+
ToolCategories["DEBUGGING"] = "Debugging";
|
|
14
|
+
ToolCategories["EXTENSION_DEVELOPMENT"] = "Extension development";
|
|
15
|
+
})(ToolCategories || (ToolCategories = {}));
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { ToolCategories } from './categories.js';
|
|
7
|
+
import { defineTool } from './ToolDefinition.js';
|
|
8
|
+
export const consoleTool = defineTool({
|
|
9
|
+
name: 'list_console_messages',
|
|
10
|
+
description: 'List all console messages for the currently selected page',
|
|
11
|
+
annotations: {
|
|
12
|
+
category: ToolCategories.DEBUGGING,
|
|
13
|
+
readOnlyHint: true,
|
|
14
|
+
},
|
|
15
|
+
schema: {},
|
|
16
|
+
handler: async (_request, response) => {
|
|
17
|
+
response.setIncludeConsoleData(true);
|
|
18
|
+
},
|
|
19
|
+
});
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2025 Google LLC
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { PredefinedNetworkConditions } from 'puppeteer-core';
|
|
7
|
+
import z from 'zod';
|
|
8
|
+
import { ToolCategories } from './categories.js';
|
|
9
|
+
import { defineTool } from './ToolDefinition.js';
|
|
10
|
+
const throttlingOptions = [
|
|
11
|
+
'No emulation',
|
|
12
|
+
...Object.keys(PredefinedNetworkConditions),
|
|
13
|
+
];
|
|
14
|
+
export const emulateNetwork = defineTool({
|
|
15
|
+
name: 'emulate_network',
|
|
16
|
+
description: `Emulates network conditions such as throttling on the selected page.`,
|
|
17
|
+
annotations: {
|
|
18
|
+
category: ToolCategories.EMULATION,
|
|
19
|
+
readOnlyHint: false,
|
|
20
|
+
},
|
|
21
|
+
schema: {
|
|
22
|
+
throttlingOption: z
|
|
23
|
+
.enum(throttlingOptions)
|
|
24
|
+
.describe(`The network throttling option to emulate. Available throttling options are: ${throttlingOptions.join(', ')}. Set to "No emulation" to disable.`),
|
|
25
|
+
},
|
|
26
|
+
handler: async (request, _response, context) => {
|
|
27
|
+
const page = context.getSelectedPage();
|
|
28
|
+
const conditions = request.params.throttlingOption;
|
|
29
|
+
if (conditions === 'No emulation') {
|
|
30
|
+
await page.emulateNetworkConditions(null);
|
|
31
|
+
context.setNetworkConditions(null);
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (conditions in PredefinedNetworkConditions) {
|
|
35
|
+
const networkCondition = PredefinedNetworkConditions[conditions];
|
|
36
|
+
await page.emulateNetworkConditions(networkCondition);
|
|
37
|
+
context.setNetworkConditions(conditions);
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
});
|
|
41
|
+
export const emulateCpu = defineTool({
|
|
42
|
+
name: 'emulate_cpu',
|
|
43
|
+
description: `Emulates CPU throttling by slowing down the selected page's execution.`,
|
|
44
|
+
annotations: {
|
|
45
|
+
category: ToolCategories.EMULATION,
|
|
46
|
+
readOnlyHint: false,
|
|
47
|
+
},
|
|
48
|
+
schema: {
|
|
49
|
+
throttlingRate: z
|
|
50
|
+
.number()
|
|
51
|
+
.min(1)
|
|
52
|
+
.max(20)
|
|
53
|
+
.describe('The CPU throttling rate representing the slowdown factor 1-20x. Set the rate to 1 to disable throttling'),
|
|
54
|
+
},
|
|
55
|
+
handler: async (request, _response, context) => {
|
|
56
|
+
const page = context.getSelectedPage();
|
|
57
|
+
const { throttlingRate } = request.params;
|
|
58
|
+
await page.emulateCPUThrottling(throttlingRate);
|
|
59
|
+
context.setCpuThrottlingRate(throttlingRate);
|
|
60
|
+
},
|
|
61
|
+
});
|