chrome-ai-bridge 1.0.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.
Files changed (443) hide show
  1. package/LICENSE +202 -0
  2. package/README.md +252 -0
  3. package/build/node_modules/chrome-devtools-frontend/LICENSE +27 -0
  4. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/App.js +4 -0
  5. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/AppProvider.js +17 -0
  6. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Base64.js +43 -0
  7. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/CharacterIdMap.js +27 -0
  8. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Color.js +2033 -0
  9. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorConverter.js +332 -0
  10. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ColorUtils.js +221 -0
  11. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Console.js +79 -0
  12. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Debouncer.js +14 -0
  13. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/EventTarget.js +14 -0
  14. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Gzip.js +66 -0
  15. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/JavaScriptMetaData.js +4 -0
  16. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Lazy.js +29 -0
  17. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/MapWithDefault.js +22 -0
  18. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Mutex.js +49 -0
  19. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Object.js +86 -0
  20. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ParsedURL.js +449 -0
  21. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Progress.js +144 -0
  22. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResolverBase.js +69 -0
  23. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ResourceType.js +495 -0
  24. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/ReturnToPanel.js +15 -0
  25. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Revealer.js +164 -0
  26. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Runnable.js +24 -0
  27. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SegmentedRange.js +78 -0
  28. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SettingRegistration.js +164 -0
  29. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +1263 -0
  30. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/SimpleHistoryManager.js +97 -0
  31. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/StringOutputStream.js +14 -0
  32. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/TextDictionary.js +40 -0
  33. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Throttler.js +71 -0
  34. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Trie.js +127 -0
  35. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/common.js +41 -0
  36. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/AidaClient.js +434 -0
  37. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/DispatchHttpRequestClient.js +66 -0
  38. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/GdpClient.js +202 -0
  39. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHost.js +92 -0
  40. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostAPI.js +69 -0
  41. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/InspectorFrontendHostStub.js +430 -0
  42. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/Platform.js +61 -0
  43. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/ResourceLoader.js +220 -0
  44. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/UserMetrics.js +968 -0
  45. package/build/node_modules/chrome-devtools-frontend/front_end/core/host/host.js +13 -0
  46. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +60 -0
  47. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/ArrayUtilities.js +199 -0
  48. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Brand.js +4 -0
  49. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Constructor.js +4 -0
  50. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DateUtilities.js +13 -0
  51. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/DevToolsPath.js +27 -0
  52. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/HostRuntime.js +19 -0
  53. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/KeyboardUtilities.js +21 -0
  54. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MapUtilities.js +79 -0
  55. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/MimeType.js +143 -0
  56. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/NumberUtilities.js +72 -0
  57. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/StringUtilities.js +538 -0
  58. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/Timing.js +9 -0
  59. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypedArrayUtilities.js +157 -0
  60. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/TypescriptUtilities.js +24 -0
  61. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UIString.js +4 -0
  62. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/UserVisibleError.js +22 -0
  63. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/HostRuntime.js +4 -0
  64. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/api/api.js +5 -0
  65. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/HostRuntime.js +63 -0
  66. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/browser/browser.js +5 -0
  67. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/HostRuntime.js +72 -0
  68. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/node/node.js +5 -0
  69. package/build/node_modules/chrome-devtools-frontend/front_end/core/platform/platform.js +26 -0
  70. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/CDPConnection.js +17 -0
  71. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/ConnectionTransport.js +12 -0
  72. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/DevToolsCDPConnection.js +138 -0
  73. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/InspectorBackend.js +539 -0
  74. package/build/node_modules/chrome-devtools-frontend/front_end/core/protocol_client/protocol_client.js +8 -0
  75. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/DevToolsContext.js +54 -0
  76. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/Runtime.js +4 -0
  77. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/root.js +6 -0
  78. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AccessibilityModel.js +281 -0
  79. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AnimationModel.js +845 -0
  80. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/AutofillModel.js +155 -0
  81. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUProfilerModel.js +99 -0
  82. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CPUThrottlingManager.js +217 -0
  83. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSContainerQuery.js +98 -0
  84. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSFontFace.js +31 -0
  85. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSLayer.js +22 -0
  86. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMatchedStyles.js +1318 -0
  87. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMedia.js +100 -0
  88. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSMetadata.js +1532 -0
  89. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSModel.js +908 -0
  90. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSProperty.js +312 -0
  91. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParser.js +574 -0
  92. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSPropertyParserMatchers.js +1346 -0
  93. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSQuery.js +53 -0
  94. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSRule.js +403 -0
  95. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSScope.js +22 -0
  96. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStartingStyle.js +21 -0
  97. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleDeclaration.js +275 -0
  98. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSStyleSheetHeader.js +166 -0
  99. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CSSSupports.js +24 -0
  100. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CategorizedBreakpoint.js +29 -0
  101. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ChildTargetManager.js +236 -0
  102. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CompilerSourceMappingContentProvider.js +47 -0
  103. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Connections.js +205 -0
  104. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModel.js +629 -0
  105. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ConsoleModelTypes.js +14 -0
  106. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Cookie.js +241 -0
  107. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieModel.js +198 -0
  108. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/CookieParser.js +163 -0
  109. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMDebuggerModel.js +597 -0
  110. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DOMModel.js +1635 -0
  111. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/DebuggerModel.js +1216 -0
  112. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EmulationModel.js +527 -0
  113. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EnhancedTracesParser.js +364 -0
  114. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/EventBreakpointsModel.js +127 -0
  115. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameAssociated.js +4 -0
  116. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/FrameManager.js +199 -0
  117. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HeapProfilerModel.js +130 -0
  118. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/HttpReasonPhraseStrings.js +75 -0
  119. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IOModel.js +80 -0
  120. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IsolateManager.js +208 -0
  121. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/IssuesModel.js +41 -0
  122. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LayerTreeBase.js +95 -0
  123. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/LogModel.js +34 -0
  124. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkManager.js +2223 -0
  125. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/NetworkRequest.js +1654 -0
  126. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayColorGenerator.js +48 -0
  127. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayModel.js +765 -0
  128. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/OverlayPersistentHighlighter.js +384 -0
  129. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageLoad.js +25 -0
  130. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PageResourceLoader.js +310 -0
  131. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PaintProfiler.js +67 -0
  132. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PerformanceMetricsModel.js +62 -0
  133. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/PreloadingModel.js +608 -0
  134. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingConnection.js +413 -0
  135. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RehydratingObject.js +4 -0
  136. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RemoteObject.js +908 -0
  137. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Resource.js +163 -0
  138. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ResourceTreeModel.js +923 -0
  139. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/RuntimeModel.js +535 -0
  140. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SDKModel.js +45 -0
  141. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScopeTreeCache.js +36 -0
  142. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ScreenCaptureModel.js +176 -0
  143. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Script.js +420 -0
  144. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SecurityOriginManager.js +54 -0
  145. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEvents.js +67 -0
  146. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerSentEventsProtocol.js +113 -0
  147. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServerTiming.js +216 -0
  148. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerCacheModel.js +271 -0
  149. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/ServiceWorkerManager.js +511 -0
  150. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMap.js +691 -0
  151. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapCache.js +57 -0
  152. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapFunctionRanges.js +132 -0
  153. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapManager.js +201 -0
  154. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopeChainEntry.js +156 -0
  155. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/SourceMapScopesInfo.js +508 -0
  156. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageBucketsModel.js +143 -0
  157. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/StorageKeyManager.js +53 -0
  158. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/Target.js +257 -0
  159. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TargetManager.js +395 -0
  160. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/TraceObject.js +55 -0
  161. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/WebAuthnModel.js +66 -0
  162. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk-meta.js +1166 -0
  163. package/build/node_modules/chrome-devtools-frontend/front_end/core/sdk/sdk.js +91 -0
  164. package/build/node_modules/chrome-devtools-frontend/front_end/generated/ARIAProperties.js +2640 -0
  165. package/build/node_modules/chrome-devtools-frontend/front_end/generated/Deprecation.js +384 -0
  166. package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +1532 -0
  167. package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +7602 -0
  168. package/build/node_modules/chrome-devtools-frontend/front_end/generated/protocol.js +4 -0
  169. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.js +289 -0
  170. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js +995 -0
  171. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +664 -0
  172. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/UnitFormatters.js +139 -0
  173. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +377 -0
  174. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIContext.js +131 -0
  175. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +149 -0
  176. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +245 -0
  177. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +486 -0
  178. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ContentProviderBasedProject.js +130 -0
  179. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerLanguagePlugins.js +992 -0
  180. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +592 -0
  181. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DefaultScriptMapping.js +112 -0
  182. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/FileUtils.js +186 -0
  183. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/LiveLocation.js +60 -0
  184. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/NetworkProject.js +107 -0
  185. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/PresentationConsoleMessageHelper.js +244 -0
  186. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +564 -0
  187. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +437 -0
  188. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceUtils.js +87 -0
  189. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +182 -0
  190. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/StylesSourceMapping.js +268 -0
  191. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/TempFile.js +55 -0
  192. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/bindings.js +20 -0
  193. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/CPUProfileDataModel.js +516 -0
  194. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/ProfileTreeModel.js +89 -0
  195. package/build/node_modules/chrome-devtools-frontend/front_end/models/cpu_profile/cpu_profile.js +6 -0
  196. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +285 -0
  197. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/crux-manager.js +4 -0
  198. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/DeviceModeModel.js +775 -0
  199. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/EmulatedDevices.js +1706 -0
  200. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/emulation.js +6 -0
  201. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +145 -0
  202. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/ScriptFormatter.js +77 -0
  203. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/formatter.js +6 -0
  204. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/GeometryImpl.js +347 -0
  205. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/geometry.js +4 -0
  206. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/LogManager.js +67 -0
  207. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/NetworkLog.js +494 -0
  208. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/RequestResolver.js +49 -0
  209. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs-meta.js +73 -0
  210. package/build/node_modules/chrome-devtools-frontend/front_end/models/logs/logs.js +7 -0
  211. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/Calculator.js +4 -0
  212. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/NetworkTimeCalculator.js +256 -0
  213. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/RequestTimeRanges.js +122 -0
  214. package/build/node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator/network_time_calculator.js +6 -0
  215. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/FunctionCodeResolver.js +192 -0
  216. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +622 -0
  217. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeChainModel.js +59 -0
  218. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +7 -0
  219. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTrace.js +4 -0
  220. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceImpl.js +67 -0
  221. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +97 -0
  222. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/Trie.js +121 -0
  223. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace.js +5 -0
  224. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace_impl.js +7 -0
  225. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/CodeMirrorUtils.js +32 -0
  226. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentData.js +173 -0
  227. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/ContentProvider.js +30 -0
  228. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StaticContentProvider.js +32 -0
  229. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/StreamingContentData.js +79 -0
  230. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/Text.js +69 -0
  231. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextCursor.js +35 -0
  232. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextRange.js +231 -0
  233. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextUtils.js +355 -0
  234. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/WasmDisassembly.js +68 -0
  235. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/text_utils.js +14 -0
  236. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EntityMapper.js +122 -0
  237. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js +81 -0
  238. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/LanternComputationData.js +371 -0
  239. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/ModelImpl.js +169 -0
  240. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Name.js +114 -0
  241. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +555 -0
  242. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Styles.js +815 -0
  243. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/FilmStrip.js +44 -0
  244. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/MainThreadActivity.js +76 -0
  245. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ScriptDuplication.js +162 -0
  246. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/StackTraceForEvent.js +191 -0
  247. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/ThirdParties.js +118 -0
  248. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceFilter.js +50 -0
  249. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/TraceTree.js +599 -0
  250. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/extras/extras.js +10 -0
  251. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationFramesHandler.js +109 -0
  252. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AnimationHandler.js +26 -0
  253. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AsyncJSCallsHandler.js +187 -0
  254. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/AuctionWorkletsHandler.js +162 -0
  255. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/DOMStatsHandler.js +21 -0
  256. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ExtensionTraceDataHandler.js +263 -0
  257. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FlowsHandler.js +148 -0
  258. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/FramesHandler.js +485 -0
  259. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/GPUHandler.js +35 -0
  260. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ImagePaintingHandler.js +147 -0
  261. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InitiatorsHandler.js +180 -0
  262. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/InvalidationsHandler.js +126 -0
  263. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestImagePaintHandler.js +85 -0
  264. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LargestTextPaintHandler.js +27 -0
  265. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayerTreeHandler.js +103 -0
  266. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/LayoutShiftsHandler.js +449 -0
  267. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MemoryHandler.js +21 -0
  268. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/MetaHandler.js +404 -0
  269. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ModelHandlers.js +33 -0
  270. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/NetworkRequestsHandler.js +566 -0
  271. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageFramesHandler.js +42 -0
  272. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/PageLoadMetricsHandler.js +349 -0
  273. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/RendererHandler.js +346 -0
  274. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SamplesHandler.js +260 -0
  275. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScreenshotsHandler.js +97 -0
  276. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/ScriptsHandler.js +276 -0
  277. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/SelectorStatsHandler.js +71 -0
  278. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/Threads.js +101 -0
  279. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserInteractionsHandler.js +317 -0
  280. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/UserTimingsHandler.js +183 -0
  281. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WarningsHandler.js +134 -0
  282. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/WorkersHandler.js +33 -0
  283. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/handlers.js +7 -0
  284. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/helpers.js +163 -0
  285. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/handlers/types.js +1 -0
  286. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Extensions.js +41 -0
  287. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Network.js +102 -0
  288. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SamplesIntegrator.js +495 -0
  289. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/SyntheticEvents.js +74 -0
  290. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Timing.js +186 -0
  291. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +820 -0
  292. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/TreeHelpers.js +254 -0
  293. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/helpers.js +10 -0
  294. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/CLSCulprits.js +489 -0
  295. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Cache.js +209 -0
  296. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Common.js +340 -0
  297. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DOMSize.js +181 -0
  298. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +258 -0
  299. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DuplicatedJavaScript.js +90 -0
  300. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/FontDisplay.js +82 -0
  301. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ForcedReflow.js +161 -0
  302. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/INPBreakdown.js +129 -0
  303. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ImageDelivery.js +263 -0
  304. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPBreakdown.js +199 -0
  305. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LCPDiscovery.js +183 -0
  306. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/LegacyJavaScript.js +90 -0
  307. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Models.js +21 -0
  308. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ModernHTTP.js +200 -0
  309. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/NetworkDependencyTree.js +545 -0
  310. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/RenderBlocking.js +192 -0
  311. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/SlowCSSSelector.js +136 -0
  312. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Statistics.js +92 -0
  313. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/ThirdParties.js +98 -0
  314. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/Viewport.js +102 -0
  315. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/insights.js +9 -0
  316. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/types.js +18 -0
  317. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/LanternError.js +6 -0
  318. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/NetworkAnalyzer.js +488 -0
  319. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/core/core.js +5 -0
  320. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/BaseNode.js +276 -0
  321. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/CPUNode.js +63 -0
  322. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/NetworkNode.js +82 -0
  323. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/PageDependencyGraph.js +551 -0
  324. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/graph/graph.js +7 -0
  325. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/lantern.js +9 -0
  326. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/FirstContentfulPaint.js +136 -0
  327. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Interactive.js +67 -0
  328. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/LargestContentfulPaint.js +68 -0
  329. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/MaxPotentialFID.js +48 -0
  330. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/Metric.js +68 -0
  331. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/SpeedIndex.js +101 -0
  332. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TBTUtils.js +64 -0
  333. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/TotalBlockingTime.js +78 -0
  334. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/metrics/metrics.js +11 -0
  335. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/ConnectionPool.js +115 -0
  336. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Constants.js +42 -0
  337. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/DNSCache.js +47 -0
  338. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/SimulationTimingMap.js +134 -0
  339. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/Simulator.js +450 -0
  340. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/TCPConnection.js +154 -0
  341. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/simulation/simulation.js +9 -0
  342. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/Lantern.js +24 -0
  343. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/lantern/types/types.js +4 -0
  344. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/trace.js +17 -0
  345. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Configuration.js +18 -0
  346. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Extensions.js +37 -0
  347. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/File.js +57 -0
  348. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Overlays.js +4 -0
  349. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/Timing.js +15 -0
  350. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/TraceEvents.js +580 -0
  351. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/types/types.js +9 -0
  352. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +224 -0
  353. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.js +4 -0
  354. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/FileManager.js +64 -0
  355. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +504 -0
  356. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/SearchConfig.js +113 -0
  357. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +601 -0
  358. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +201 -0
  359. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace-meta.js +34 -0
  360. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace.js +9 -0
  361. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/codemirror.next/codemirror.next.js +1 -0
  362. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/LICENSE +202 -0
  363. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/legacy-javascript.js +2 -0
  364. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript/lib/legacy-javascript.js +940 -0
  365. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/LICENSE +26 -0
  366. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/builder.js +196 -0
  367. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/builder/safe_builder.js +226 -0
  368. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/codec.js +4 -0
  369. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/decode/decode.js +394 -0
  370. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encode.js +24 -0
  371. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/encode/encoder.js +283 -0
  372. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/mod.js +7 -0
  373. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/util.js +9 -0
  374. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/package/src/vlq.js +84 -0
  375. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec/source-map-scopes-codec.js +4 -0
  376. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/LICENSE +20 -0
  377. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/lib/nostats-subset.js +146 -0
  378. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-nostats-subset.js +2 -0
  379. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/httparchive-subset.js +2 -0
  380. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.js +118 -0
  381. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/create-entity-finder-api.test.js +40 -0
  382. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/entities.test.js +26 -0
  383. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.js +4 -0
  384. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/index.test.js +215 -0
  385. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive-nostats.js +4 -0
  386. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/httparchive.js +4 -0
  387. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/lib/subsets/nostats.js +4 -0
  388. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/package/nostats-subset.js +2 -0
  389. package/build/node_modules/chrome-devtools-frontend/front_end/third_party/third-party-web/third-party-web.js +2 -0
  390. package/build/src/McpContext.js +400 -0
  391. package/build/src/McpResponse.js +237 -0
  392. package/build/src/Mutex.js +40 -0
  393. package/build/src/PageCollector.js +68 -0
  394. package/build/src/WaitForHelper.js +134 -0
  395. package/build/src/browser-connection-manager.js +373 -0
  396. package/build/src/browser.js +719 -0
  397. package/build/src/cli.js +120 -0
  398. package/build/src/client-detector.js +93 -0
  399. package/build/src/config.js +38 -0
  400. package/build/src/formatters/consoleFormatter.js +73 -0
  401. package/build/src/formatters/extensionsPageFormatter.js +184 -0
  402. package/build/src/formatters/networkFormatter.js +34 -0
  403. package/build/src/formatters/snapshotFormatter.js +80 -0
  404. package/build/src/graceful.js +125 -0
  405. package/build/src/index.js +13 -0
  406. package/build/src/logger.js +27 -0
  407. package/build/src/login-helper.js +431 -0
  408. package/build/src/main.js +268 -0
  409. package/build/src/plugin-api.js +189 -0
  410. package/build/src/profile-migration.js +82 -0
  411. package/build/src/profile-resolver.js +555 -0
  412. package/build/src/project-detector.js +71 -0
  413. package/build/src/project-root-state.js +18 -0
  414. package/build/src/roots-manager.js +253 -0
  415. package/build/src/selectors/chatgpt.json +61 -0
  416. package/build/src/selectors/gemini.json +24 -0
  417. package/build/src/selectors/loader.js +128 -0
  418. package/build/src/stable-identity.js +193 -0
  419. package/build/src/startup-check.js +147 -0
  420. package/build/src/system-profile.js +181 -0
  421. package/build/src/tools/ToolDefinition.js +9 -0
  422. package/build/src/tools/bookmarks.js +170 -0
  423. package/build/src/tools/categories.js +15 -0
  424. package/build/src/tools/chatgpt-web.js +507 -0
  425. package/build/src/tools/console.js +19 -0
  426. package/build/src/tools/core-tools.js +65 -0
  427. package/build/src/tools/diagnose-ui.js +328 -0
  428. package/build/src/tools/emulation.js +67 -0
  429. package/build/src/tools/extensions.js +185 -0
  430. package/build/src/tools/gemini-web.js +491 -0
  431. package/build/src/tools/iframe-popup-tools.js +204 -0
  432. package/build/src/tools/input.js +185 -0
  433. package/build/src/tools/network.js +68 -0
  434. package/build/src/tools/optional-tools.js +69 -0
  435. package/build/src/tools/pages.js +172 -0
  436. package/build/src/tools/performance.js +127 -0
  437. package/build/src/tools/screenshot.js +48 -0
  438. package/build/src/tools/script.js +39 -0
  439. package/build/src/tools/snapshot.js +45 -0
  440. package/build/src/trace-processing/parse.js +93 -0
  441. package/build/src/utils/pagination.js +49 -0
  442. package/package.json +90 -0
  443. package/scripts/cli.mjs +49 -0
@@ -0,0 +1,555 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ // src/profile-resolver.ts
7
+ // Phase 1 (v0.15.0) + v0.15.1 (MCP_CLIENT_ID support) + v0.17.0 (Hierarchical profiles)
8
+ // - Hybrid priority (CLI > MCP_USER_DATA_DIR > MCP_PROJECT_ID > AUTO > DEFAULT)
9
+ // - Auto-detection (git root -> nearest package.json -> cwd)
10
+ // - Realpath normalization
11
+ // - Tilde (~) expansion
12
+ // - Short SHA-256 hash (8 chars)
13
+ // - CI detection => ephemeral session profile (unless MCP_PERSIST_PROFILES)
14
+ // - Client ID isolation (MCP_CLIENT_ID environment variable)
15
+ // - Hierarchical structure: {project}/{client}/{channel} (v0.17.0)
16
+ // - Minimal console.error() logging of decision
17
+ import crypto from 'node:crypto';
18
+ import fs from 'node:fs';
19
+ import os from 'node:os';
20
+ import path from 'node:path';
21
+ import { fileURLToPath } from 'node:url';
22
+ import { detectClientType } from './client-detector.js';
23
+ import { detectProjectName, detectProjectRoot } from './project-detector.js';
24
+ import { getProjectRoot } from './project-root-state.js';
25
+ import { resolveStableIdentity, } from './stable-identity.js';
26
+ const CACHE_ROOT = path.join(os.homedir(), '.cache', 'chrome-ai-bridge');
27
+ // --- Public API ---
28
+ export function resolveUserDataDir(opts) {
29
+ const channel = opts.channel || 'stable';
30
+ // v0.18.0: PRIORITY 0 - Use Roots info if available
31
+ if (opts.rootsInfo) {
32
+ const stableProfilePath = path.join(CACHE_ROOT, 'profiles', opts.rootsInfo.profileKey, opts.rootsInfo.clientName, channel);
33
+ const normalized = pathNormalize(stableProfilePath);
34
+ // v0.25.8: Comprehensive migration from legacy profile formats to stable identity profile
35
+ // Handles:
36
+ // - v0.18.x: URI+client+version hash, directory name as project name
37
+ // - v0.19.0-v0.25.4: URI+client hash (no version), directory name as project name
38
+ // - v0.25.5+: stable identity hash, package.json name as project name
39
+ if (!fs.existsSync(stableProfilePath) &&
40
+ opts.rootsInfo.rootsUris.length > 0) {
41
+ try {
42
+ const firstUri = opts.rootsInfo.rootsUris[0];
43
+ const url = new URL(firstUri);
44
+ if (url.protocol === 'file:') {
45
+ // Extract directory name for OLD project name (v0.25.4以前)
46
+ const rootPath = fileURLToPath(url);
47
+ const realRoot = realpathSafe(rootPath);
48
+ const dirName = path.basename(realRoot);
49
+ const oldProjectName = sanitize(dirName); // e.g., "adlogger" from "adLogger"
50
+ const newProjectName = opts.rootsInfo.projectName; // e.g., "adblocker" from package.json
51
+ // Try both old and new project names
52
+ const projectNamesToTry = [oldProjectName];
53
+ if (newProjectName !== oldProjectName) {
54
+ projectNamesToTry.push(newProjectName);
55
+ }
56
+ // Legacy hash formats to try
57
+ const sortedUris = [...opts.rootsInfo.rootsUris].sort();
58
+ const clientName = opts.rootsInfo.clientName;
59
+ const clientVersion = opts.rootsInfo.clientVersion;
60
+ const legacyHashFormats = [
61
+ // Format 1: v0.19.0-v0.25.4 (URI+client, no version)
62
+ {
63
+ name: 'uri+client',
64
+ hash: crypto
65
+ .createHash('sha256')
66
+ .update(JSON.stringify({
67
+ roots: sortedUris,
68
+ client: clientName,
69
+ }))
70
+ .digest('hex')
71
+ .slice(0, 8),
72
+ },
73
+ // Format 2: v0.18.x (URI+client+version) - try common version strings
74
+ ...['1.0.0', '0.1.0', clientVersion].map(version => ({
75
+ name: `uri+client+version(${version})`,
76
+ hash: crypto
77
+ .createHash('sha256')
78
+ .update(JSON.stringify({
79
+ roots: sortedUris,
80
+ client: clientName,
81
+ version,
82
+ }))
83
+ .digest('hex')
84
+ .slice(0, 8),
85
+ })),
86
+ // Format 3: Directory path hash
87
+ {
88
+ name: 'directory-path',
89
+ hash: shortHash(realRoot),
90
+ },
91
+ ];
92
+ // Try all combinations of project name × hash format
93
+ let migrated = false;
94
+ for (const projName of projectNamesToTry) {
95
+ if (migrated)
96
+ break;
97
+ for (const format of legacyHashFormats) {
98
+ const legacyKey = `${projName}_${format.hash}`;
99
+ const legacyPath = path.join(CACHE_ROOT, 'profiles', legacyKey, opts.rootsInfo.clientName, channel);
100
+ if (fs.existsSync(legacyPath)) {
101
+ console.error(`[profiles] Migration: Found legacy profile (${format.name}, project=${projName}): ${legacyPath}`);
102
+ console.error(`[profiles] Migration: Creating symlink to stable profile: ${stableProfilePath}`);
103
+ try {
104
+ fs.mkdirSync(path.dirname(stableProfilePath), {
105
+ recursive: true,
106
+ });
107
+ fs.symlinkSync(legacyPath, stableProfilePath, 'dir');
108
+ console.error(`[profiles] Migration: ✅ Symlink created successfully`);
109
+ migrated = true;
110
+ break;
111
+ }
112
+ catch (e) {
113
+ console.error(`[profiles] Migration: ⚠️ Failed to create symlink: ${e}`);
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
119
+ }
120
+ catch (e) {
121
+ console.error(`[profiles] Migration check failed: ${e}`);
122
+ }
123
+ }
124
+ const result = {
125
+ path: normalized,
126
+ reason: opts.rootsInfo.source,
127
+ projectKey: opts.rootsInfo.profileKey,
128
+ projectName: opts.rootsInfo.projectName,
129
+ hash: opts.rootsInfo.profileKey.slice(0, 8), // Use first 8 chars as hash
130
+ clientId: opts.rootsInfo.clientName,
131
+ channel,
132
+ };
133
+ console.error(`[profiles] Resolved via Roots (${opts.rootsInfo.source}): ${result.path}`);
134
+ console.error(`[profiles] project=${opts.rootsInfo.projectName}, client=${opts.rootsInfo.clientName}, key=${opts.rootsInfo.profileKey}`);
135
+ return result;
136
+ }
137
+ // Auto-detect client type from parent process if MCP_CLIENT_ID not set
138
+ let clientId;
139
+ if (opts.env.MCP_CLIENT_ID) {
140
+ clientId = sanitize(opts.env.MCP_CLIENT_ID);
141
+ console.error(`[profiles] Using explicit MCP_CLIENT_ID: ${clientId}`);
142
+ }
143
+ else {
144
+ const detected = detectClientType();
145
+ clientId = sanitize(detected);
146
+ console.error(`[profiles] Auto-detected client from parent process: ${clientId}`);
147
+ }
148
+ // 0a) MCP_SHARED_PROFILE → shared profile across all projects
149
+ // - Uses a single profile for all projects to avoid re-login
150
+ if (opts.env.MCP_SHARED_PROFILE === 'true') {
151
+ const key = 'shared';
152
+ const p = projectProfilePath(key, clientId, channel);
153
+ const result = {
154
+ path: p,
155
+ reason: 'MCP_USER_DATA_DIR', // Treat as explicit user choice
156
+ projectKey: key,
157
+ projectName: 'shared',
158
+ hash: '00000000',
159
+ clientId,
160
+ channel,
161
+ };
162
+ console.error(`[profiles] resolved(MCP_SHARED_PROFILE): ${result.path} (client=${clientId})`);
163
+ console.error(`[profiles] ℹ️ Using shared profile - login state persists across all projects`);
164
+ return result;
165
+ }
166
+ // 0b) CI detection → ephemeral session directory (unless MCP_PERSIST_PROFILES)
167
+ // - This happens before other priorities to keep CI clean by default.
168
+ if (isCI(opts.env) && !opts.env.MCP_PERSIST_PROFILES) {
169
+ const sessionId = `${process.pid}-${Date.now()}`;
170
+ const tempPath = realpathSafe(path.join(CACHE_ROOT, 'sessions', sessionId, channel));
171
+ // best-effort cleanup on exit
172
+ process.on('exit', () => {
173
+ try {
174
+ fs.rmSync(tempPath, { recursive: true, force: true });
175
+ }
176
+ catch {
177
+ /* ignore */
178
+ }
179
+ });
180
+ const result = {
181
+ path: tempPath,
182
+ reason: 'AUTO', // keep enum as specified (no EPHEMERAL type in Phase 1)
183
+ projectKey: `session-${sessionId}_${clientId}`,
184
+ projectName: 'ci-session',
185
+ hash: sessionId,
186
+ clientId,
187
+ channel,
188
+ };
189
+ // concise decision log (resolver-side)
190
+ console.error(`[profiles] resolved(AUTO, ci-ephemeral): ${result.path} (session=${sessionId}, client=${clientId})`);
191
+ return result;
192
+ }
193
+ // 1) CLI explicit userDataDir
194
+ if (opts.cliUserDataDir && opts.cliUserDataDir.trim().length > 0) {
195
+ const p = realpathOrExpand(opts.cliUserDataDir);
196
+ const result = {
197
+ path: p,
198
+ reason: 'CLI',
199
+ projectKey: `${stripHomeForKey(p)}_${clientId}`,
200
+ projectName: 'cli',
201
+ hash: shortHash(p),
202
+ clientId,
203
+ channel,
204
+ };
205
+ console.error(`[profiles] resolved(CLI): ${result.path} (client=${clientId})`);
206
+ return result;
207
+ }
208
+ // 2) ENV: MCP_USER_DATA_DIR (full path)
209
+ const envUserData = opts.env.MCP_USER_DATA_DIR?.trim();
210
+ if (envUserData) {
211
+ const p = realpathOrExpand(envUserData);
212
+ const result = {
213
+ path: p,
214
+ reason: 'MCP_USER_DATA_DIR',
215
+ projectKey: `${stripHomeForKey(p)}_${clientId}`,
216
+ projectName: 'env',
217
+ hash: shortHash(p),
218
+ clientId,
219
+ channel,
220
+ };
221
+ console.error(`[profiles] resolved(MCP_USER_DATA_DIR): ${result.path} (client=${clientId})`);
222
+ return result;
223
+ }
224
+ // 3) ENV: MCP_PROJECT_ID (project-scoped persistent profile)
225
+ const projectId = sanitize(opts.env.MCP_PROJECT_ID || '');
226
+ if (projectId) {
227
+ const key = projectId; // v0.17.0: clientId removed from projectKey
228
+ const p = projectProfilePath(key, clientId, channel);
229
+ const result = {
230
+ path: p,
231
+ reason: 'MCP_PROJECT_ID',
232
+ projectKey: key,
233
+ projectName: projectId,
234
+ hash: shortHash(projectId),
235
+ clientId,
236
+ channel,
237
+ };
238
+ console.error(`[profiles] resolved(MCP_PROJECT_ID): ${result.path} (projectId=${projectId}, client=${clientId})`);
239
+ return result;
240
+ }
241
+ // 3.5) ENV: MCP_PROJECT_ROOT (MCP Roots protocol - actual project directory)
242
+ const projectRoot = opts.env.MCP_PROJECT_ROOT;
243
+ if (projectRoot) {
244
+ console.error(`[profiles] MCP_PROJECT_ROOT detected: "${projectRoot}"`);
245
+ try {
246
+ const name = detectProjectName(projectRoot);
247
+ console.error(`[profiles] MCP_PROJECT_ROOT name="${name}"`);
248
+ // v0.25.0: Check profiles in priority order
249
+ // 1. Legacy profile
250
+ const realRoot = realpathSafe(projectRoot);
251
+ const legacyHash = shortHash(realRoot);
252
+ const legacyKey = `${sanitize(name)}_${legacyHash}`;
253
+ const legacyPath = projectProfilePath(legacyKey, clientId, channel);
254
+ // Pre-calculate stable identity
255
+ const identity = resolveStableIdentity(projectRoot, opts.env);
256
+ const stableKey = `${sanitize(name)}_${identity.id}`;
257
+ const stablePath = projectProfilePath(stableKey, clientId, channel);
258
+ if (fs.existsSync(legacyPath)) {
259
+ console.error(`[profiles] Legacy profile exists, using it: ${legacyPath}`);
260
+ // Create stable identity symlink for future moves
261
+ if (legacyPath !== stablePath && !fs.existsSync(stablePath)) {
262
+ try {
263
+ fs.mkdirSync(path.dirname(stablePath), { recursive: true });
264
+ fs.symlinkSync(legacyPath, stablePath, 'dir');
265
+ console.error(`[profiles] ✅ Created stable identity link: ${stablePath} -> ${legacyPath}`);
266
+ }
267
+ catch (e) {
268
+ console.error(`[profiles] ⚠️ Failed to create stable identity link: ${e}`);
269
+ }
270
+ }
271
+ const result = {
272
+ path: legacyPath,
273
+ reason: 'MCP_PROJECT_ROOT',
274
+ projectKey: legacyKey,
275
+ projectName: sanitize(name),
276
+ hash: legacyHash,
277
+ clientId,
278
+ channel,
279
+ identitySource: 'directory-fallback',
280
+ };
281
+ return result;
282
+ }
283
+ // 2. Check stable identity profile
284
+ if (fs.existsSync(stablePath)) {
285
+ console.error(`[profiles] Stable identity profile exists: ${stablePath}`);
286
+ const result = {
287
+ path: stablePath,
288
+ reason: 'MCP_PROJECT_ROOT',
289
+ projectKey: stableKey,
290
+ projectName: sanitize(name),
291
+ hash: identity.id,
292
+ clientId,
293
+ channel,
294
+ identitySource: identity.source,
295
+ };
296
+ return result;
297
+ }
298
+ // 3. Create new with stable identity
299
+ console.error(`[profiles] Creating new profile with stable identity: ${identity.source}`);
300
+ const result = {
301
+ path: stablePath,
302
+ reason: 'MCP_PROJECT_ROOT',
303
+ projectKey: stableKey,
304
+ projectName: sanitize(name),
305
+ hash: identity.id,
306
+ clientId,
307
+ channel,
308
+ identitySource: identity.source,
309
+ };
310
+ return result;
311
+ }
312
+ catch (e) {
313
+ console.error(`[profiles] MCP_PROJECT_ROOT resolution failed: ${e}`);
314
+ // Fall through to AUTO detection
315
+ }
316
+ }
317
+ // 4) INITIALIZED_PROJECT_ROOT: Use globally initialized project root (highest priority for AUTO mode)
318
+ const initializedRoot = getProjectRoot();
319
+ if (initializedRoot) {
320
+ console.error(`[profiles] Using initialized project root: "${initializedRoot}"`);
321
+ try {
322
+ const name = detectProjectName(initializedRoot);
323
+ console.error(`[profiles] Initialized root name="${name}"`);
324
+ // v0.25.0: Check profiles in priority order
325
+ // 1. Legacy profile
326
+ const realRoot = realpathSafe(initializedRoot);
327
+ const legacyHash = shortHash(realRoot);
328
+ const legacyKey = `${sanitize(name)}_${legacyHash}`;
329
+ const legacyPath = projectProfilePath(legacyKey, clientId, channel);
330
+ // Pre-calculate stable identity
331
+ const identity = resolveStableIdentity(initializedRoot, opts.env);
332
+ const stableKey = `${sanitize(name)}_${identity.id}`;
333
+ const stablePath = projectProfilePath(stableKey, clientId, channel);
334
+ if (fs.existsSync(legacyPath)) {
335
+ console.error(`[profiles] Legacy profile exists, using it: ${legacyPath}`);
336
+ // Create stable identity symlink for future moves
337
+ if (legacyPath !== stablePath && !fs.existsSync(stablePath)) {
338
+ try {
339
+ fs.mkdirSync(path.dirname(stablePath), { recursive: true });
340
+ fs.symlinkSync(legacyPath, stablePath, 'dir');
341
+ console.error(`[profiles] ✅ Created stable identity link: ${stablePath} -> ${legacyPath}`);
342
+ }
343
+ catch (e) {
344
+ console.error(`[profiles] ⚠️ Failed to create stable identity link: ${e}`);
345
+ }
346
+ }
347
+ const result = {
348
+ path: legacyPath,
349
+ reason: 'AUTO',
350
+ projectKey: legacyKey,
351
+ projectName: sanitize(name),
352
+ hash: legacyHash,
353
+ clientId,
354
+ channel,
355
+ identitySource: 'directory-fallback',
356
+ };
357
+ return result;
358
+ }
359
+ // 2. Check stable identity profile
360
+ if (fs.existsSync(stablePath)) {
361
+ console.error(`[profiles] Stable identity profile exists: ${stablePath}`);
362
+ const result = {
363
+ path: stablePath,
364
+ reason: 'AUTO',
365
+ projectKey: stableKey,
366
+ projectName: sanitize(name),
367
+ hash: identity.id,
368
+ clientId,
369
+ channel,
370
+ identitySource: identity.source,
371
+ };
372
+ return result;
373
+ }
374
+ // 3. Create new with stable identity
375
+ console.error(`[profiles] Creating new profile with stable identity: ${identity.source}`);
376
+ const result = {
377
+ path: stablePath,
378
+ reason: 'AUTO',
379
+ projectKey: stableKey,
380
+ projectName: sanitize(name),
381
+ hash: identity.id,
382
+ clientId,
383
+ channel,
384
+ identitySource: identity.source,
385
+ };
386
+ return result;
387
+ }
388
+ catch (e) {
389
+ console.error(`[profiles] Initialized root resolution failed: ${e}`);
390
+ // Fall through to cwd-based AUTO detection
391
+ }
392
+ }
393
+ // 5) AUTO: detect by root -> name -> hash (fallback if no initialized root)
394
+ try {
395
+ console.error(`[profiles] AUTO detection (cwd fallback): cwd="${opts.cwd}"`);
396
+ const root = detectProjectRoot(opts.cwd);
397
+ console.error(`[profiles] AUTO detection: root="${root}"`);
398
+ const name = detectProjectName(root);
399
+ console.error(`[profiles] AUTO detection: name="${name}"`);
400
+ // v0.25.0: Check profiles in priority order:
401
+ // 1. Legacy (realpath-based) profile
402
+ // 2. Stable identity profile (for moved projects)
403
+ // 3. Create new with stable identity
404
+ // 1. Check legacy profile
405
+ const realRoot = realpathSafe(root);
406
+ const legacyHash = shortHash(realRoot);
407
+ const legacyKey = `${sanitize(name)}_${legacyHash}`;
408
+ const legacyPath = projectProfilePath(legacyKey, clientId, channel);
409
+ // Pre-calculate stable identity for potential symlink creation
410
+ const identity = resolveStableIdentity(root, opts.env);
411
+ const stableKey = `${sanitize(name)}_${identity.id}`;
412
+ const stablePath = projectProfilePath(stableKey, clientId, channel);
413
+ if (fs.existsSync(legacyPath)) {
414
+ console.error(`[profiles] Legacy profile exists, using it: ${legacyPath}`);
415
+ // Also create stable identity symlink for future moves (if different and not exists)
416
+ if (legacyPath !== stablePath && !fs.existsSync(stablePath)) {
417
+ try {
418
+ fs.mkdirSync(path.dirname(stablePath), { recursive: true });
419
+ fs.symlinkSync(legacyPath, stablePath, 'dir');
420
+ console.error(`[profiles] ✅ Created stable identity link for future moves: ${stablePath} -> ${legacyPath}`);
421
+ }
422
+ catch (e) {
423
+ console.error(`[profiles] ⚠️ Failed to create stable identity link: ${e}`);
424
+ }
425
+ }
426
+ const result = {
427
+ path: legacyPath,
428
+ reason: 'AUTO',
429
+ projectKey: legacyKey,
430
+ projectName: sanitize(name),
431
+ hash: legacyHash,
432
+ clientId,
433
+ channel,
434
+ identitySource: 'directory-fallback',
435
+ };
436
+ console.error(`[profiles] resolved(AUTO, legacy): ${result.path} (root=${root}, name=${name}, hash=${legacyHash}, client=${clientId})`);
437
+ return result;
438
+ }
439
+ // 2. Check stable identity profile (for moved projects)
440
+ if (fs.existsSync(stablePath)) {
441
+ console.error(`[profiles] Stable identity profile exists (project may have moved): ${stablePath}`);
442
+ const result = {
443
+ path: stablePath,
444
+ reason: 'AUTO',
445
+ projectKey: stableKey,
446
+ projectName: sanitize(name),
447
+ hash: identity.id,
448
+ clientId,
449
+ channel,
450
+ identitySource: identity.source,
451
+ };
452
+ console.error(`[profiles] resolved(AUTO, stable-existing): ${result.path} (root=${root}, name=${name}, identity=${identity.source}, client=${clientId})`);
453
+ return result;
454
+ }
455
+ // 3. Neither exists - create new with stable identity
456
+ console.error(`[profiles] No existing profile, creating with stable identity: ${identity.source} (${identity.confidence}) raw="${identity.raw}"`);
457
+ const result = {
458
+ path: stablePath,
459
+ reason: 'AUTO',
460
+ projectKey: stableKey,
461
+ projectName: sanitize(name),
462
+ hash: identity.id,
463
+ clientId,
464
+ channel,
465
+ identitySource: identity.source,
466
+ };
467
+ console.error(`[profiles] resolved(AUTO, stable-new): ${result.path} (root=${root}, name=${name}, identity=${identity.source}, client=${clientId})`);
468
+ return result;
469
+ }
470
+ catch (e) {
471
+ console.error(`[profiles] AUTO detection FAILED: ${e}`);
472
+ // 5) DEFAULT fallback
473
+ const key = 'project-default'; // v0.17.0: clientId removed from projectKey
474
+ const p = projectProfilePath(key, clientId, channel);
475
+ const result = {
476
+ path: p,
477
+ reason: 'DEFAULT',
478
+ projectKey: key,
479
+ projectName: 'project-default',
480
+ hash: '00000000',
481
+ clientId,
482
+ channel,
483
+ };
484
+ console.error(`[profiles] resolved(DEFAULT): ${result.path} (reason=${e?.message || 'fallback'}, client=${clientId})`);
485
+ return result;
486
+ }
487
+ }
488
+ // --- Helpers ---
489
+ function isCI(env) {
490
+ // Common CI signals
491
+ return env.CI === 'true' || env.GITHUB_ACTIONS === 'true';
492
+ }
493
+ function projectProfilePath(projectKey, clientId, channel) {
494
+ // v0.17.0: Hierarchical structure - {project}/{client}/{channel}
495
+ const base = path.join(CACHE_ROOT, 'profiles', projectKey, clientId, channel);
496
+ return pathNormalize(base);
497
+ }
498
+ function shortHash(s) {
499
+ try {
500
+ return crypto.createHash('sha256').update(s).digest('hex').slice(0, 8);
501
+ }
502
+ catch {
503
+ // Extremely unlikely; fallback for robustness
504
+ return '00000000';
505
+ }
506
+ }
507
+ function sanitize(s) {
508
+ const base = (s || 'project').toLowerCase().replace(/[^a-z0-9-_]/g, '-');
509
+ // Avoid empty string after sanitize
510
+ return base.length ? base : 'project';
511
+ }
512
+ function expandTilde(p) {
513
+ if (!p)
514
+ return p;
515
+ if (p.startsWith('~')) {
516
+ return path.join(os.homedir(), p.slice(1));
517
+ }
518
+ return p;
519
+ }
520
+ function realpathSafe(p) {
521
+ try {
522
+ // Use native realpath if available for speed/behavior
523
+ // (Node 18+ has fs.realpathSync.native)
524
+ const rp = fs.realpathSync.native
525
+ ? fs.realpathSync.native(p)
526
+ : fs.realpathSync(p);
527
+ return rp;
528
+ }
529
+ catch {
530
+ // The path may not exist yet; normalize current form
531
+ return pathNormalize(p);
532
+ }
533
+ }
534
+ function realpathOrExpand(p) {
535
+ const expanded = expandTilde(p);
536
+ return realpathSafe(expanded);
537
+ }
538
+ function pathNormalize(p) {
539
+ // Normalize but do not resolve symlinks here
540
+ // (realpathSafe is used where resolution is desired)
541
+ return path.normalize(p);
542
+ }
543
+ /**
544
+ * Best-effort readable key when user supplied an absolute path.
545
+ * We do not want slashes in the key, so hash + tail dir name.
546
+ */
547
+ function stripHomeForKey(absPath) {
548
+ try {
549
+ const name = path.basename(absPath);
550
+ return `${sanitize(name)}_${shortHash(absPath)}`;
551
+ }
552
+ catch {
553
+ return `abs_${shortHash(absPath)}`;
554
+ }
555
+ }
@@ -0,0 +1,71 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ // src/project-detector.ts
7
+ // Phase 1 (v0.15.0)
8
+ // - detectProjectRoot: git root → nearest package.json → cwd
9
+ // - detectProjectName: package.json "name" → dirname
10
+ // - Use spawnSync with 500ms timeout to avoid blocking long
11
+ // - Realpath normalization
12
+ import { spawnSync } from 'node:child_process';
13
+ import fs from 'node:fs';
14
+ import path from 'node:path';
15
+ export function detectProjectRoot(cwd) {
16
+ const realCwd = realpathSafe(cwd);
17
+ // 1) Try 'git rev-parse --show-toplevel' with 500ms timeout
18
+ const git = spawnSync('git', ['rev-parse', '--show-toplevel'], {
19
+ cwd: realCwd,
20
+ timeout: 500,
21
+ encoding: 'utf8',
22
+ stdio: ['ignore', 'pipe', 'ignore'],
23
+ windowsHide: true,
24
+ });
25
+ if (git.status === 0 && git.stdout) {
26
+ const out = git.stdout.toString().trim();
27
+ if (out)
28
+ return realpathSafe(out);
29
+ }
30
+ // If git is not available or command failed/timed out → fall through
31
+ // 2) Walk up to nearest package.json
32
+ let cur = realCwd;
33
+ while (true) {
34
+ if (fs.existsSync(path.join(cur, 'package.json')))
35
+ return cur;
36
+ const next = path.dirname(cur);
37
+ if (next === cur)
38
+ break; // reached filesystem root
39
+ cur = next;
40
+ }
41
+ // 3) Fallback to cwd
42
+ return realCwd;
43
+ }
44
+ export function detectProjectName(root) {
45
+ const realRoot = realpathSafe(root);
46
+ const pj = path.join(realRoot, 'package.json');
47
+ if (fs.existsSync(pj)) {
48
+ try {
49
+ const pkg = JSON.parse(fs.readFileSync(pj, 'utf8'));
50
+ if (pkg && typeof pkg.name === 'string' && pkg.name.trim()) {
51
+ return String(pkg.name).trim();
52
+ }
53
+ }
54
+ catch {
55
+ // ignore parse errors and fall back to directory name
56
+ }
57
+ }
58
+ return path.basename(realRoot);
59
+ }
60
+ // --- helpers ---
61
+ function realpathSafe(p) {
62
+ try {
63
+ const rp = fs.realpathSync.native
64
+ ? fs.realpathSync.native(p)
65
+ : fs.realpathSync(p);
66
+ return rp;
67
+ }
68
+ catch {
69
+ return path.normalize(p);
70
+ }
71
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Google LLC
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ // src/project-root-state.ts
7
+ // Global state for MCP project root (set during initialization)
8
+ let projectRoot;
9
+ export function setProjectRoot(path) {
10
+ projectRoot = path;
11
+ console.error(`[MCP] Project root initialized: ${path}`);
12
+ }
13
+ export function getProjectRoot() {
14
+ return projectRoot;
15
+ }
16
+ export function isProjectRootInitialized() {
17
+ return projectRoot !== undefined;
18
+ }