chrome-devtools-frontend 1.0.1547147 → 1.0.1547571

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 (212) hide show
  1. package/.stylelintrc.json +5 -1
  2. package/docs/contributing/infrastructure.md +2 -2
  3. package/eslint.config.mjs +3 -2
  4. package/front_end/Images/generate-css-vars.js +1 -1
  5. package/front_end/core/common/common.ts +0 -2
  6. package/front_end/core/i18n/collect-ui-strings.js +1 -1
  7. package/front_end/core/i18n/generate-locales-js.js +1 -1
  8. package/front_end/core/platform/HostRuntime.ts +14 -7
  9. package/front_end/core/platform/api/HostRuntime.ts +28 -3
  10. package/front_end/core/platform/browser/HostRuntime.ts +66 -5
  11. package/front_end/core/platform/node/HostRuntime.ts +76 -4
  12. package/front_end/core/sdk/AnimationModel.ts +1 -1
  13. package/front_end/core/sdk/CSSModel.ts +1 -1
  14. package/front_end/core/sdk/CSSProperty.ts +1 -1
  15. package/front_end/core/sdk/CSSPropertyParserMatchers.ts +1 -1
  16. package/front_end/core/sdk/ConsoleModel.ts +1 -1
  17. package/front_end/core/sdk/Cookie.ts +1 -1
  18. package/front_end/core/sdk/DOMModel.ts +2 -2
  19. package/front_end/core/sdk/DebuggerModel.ts +1 -1
  20. package/front_end/core/sdk/NetworkManager.ts +6 -0
  21. package/front_end/core/sdk/PreloadingModel.ts +1 -1
  22. package/front_end/core/sdk/RemoteObject.ts +1 -1
  23. package/front_end/core/sdk/ResourceTreeModel.ts +1 -1
  24. package/front_end/core/sdk/Script.ts +4 -4
  25. package/front_end/entrypoints/formatter_worker/HTMLFormatter.ts +2 -2
  26. package/front_end/entrypoints/formatter_worker/JavaScriptFormatter.ts +15 -18
  27. package/front_end/entrypoints/formatter_worker/formatter_worker-entrypoint.ts +8 -5
  28. package/front_end/entrypoints/main/ExecutionContextSelector.ts +1 -1
  29. package/front_end/entrypoints/main/MainImpl.ts +2 -2
  30. package/front_end/generated/Deprecation.ts +19 -0
  31. package/front_end/generated/InspectorBackendCommands.ts +4 -3
  32. package/front_end/generated/SupportedCSSProperties.js +13 -13
  33. package/front_end/generated/protocol-mapping.d.ts +2 -0
  34. package/front_end/generated/protocol-proxy-api.d.ts +4 -0
  35. package/front_end/generated/protocol.ts +16 -27
  36. package/front_end/models/ai_assistance/AiConversation.ts +104 -24
  37. package/front_end/models/ai_assistance/BuiltInAi.ts +131 -134
  38. package/front_end/models/ai_assistance/ChangeManager.ts +9 -0
  39. package/front_end/models/ai_assistance/ConversationHandler.ts +23 -48
  40. package/front_end/models/ai_assistance/agents/AiAgent.ts +8 -5
  41. package/front_end/models/ai_assistance/agents/StylingAgent.ts +0 -10
  42. package/front_end/models/formatter/FormatterWorkerPool.ts +9 -7
  43. package/front_end/models/har/Importer.ts +1 -1
  44. package/front_end/models/issues_manager/ContrastCheckTrigger.ts +1 -1
  45. package/front_end/models/persistence/AutomaticFileSystemManager.ts +1 -1
  46. package/front_end/panels/accessibility/AccessibilityNodeView.ts +1 -1
  47. package/front_end/panels/ai_assistance/AiAssistancePanel.ts +80 -153
  48. package/front_end/panels/ai_assistance/components/ChatView.ts +54 -31
  49. package/front_end/panels/application/ExtensionStorageModel.ts +1 -1
  50. package/front_end/panels/application/FrameDetailsView.ts +62 -34
  51. package/front_end/panels/application/ServiceWorkerCacheViews.ts +1 -1
  52. package/front_end/panels/application/components/components.ts +0 -2
  53. package/front_end/panels/console/ConsoleInsightTeaser.ts +166 -100
  54. package/front_end/panels/console/ConsolePrompt.ts +1 -1
  55. package/front_end/panels/console/ConsoleViewMessage.ts +77 -29
  56. package/front_end/panels/console/ConsoleViewport.ts +1 -1
  57. package/front_end/panels/console/consoleInsightTeaser.css +1 -0
  58. package/front_end/panels/coverage/CoverageModel.ts +2 -2
  59. package/front_end/panels/elements/ElementsPanel.ts +1 -1
  60. package/front_end/panels/elements/ElementsTreeOutline.ts +17 -7
  61. package/front_end/panels/elements/NodeStackTraceWidget.ts +6 -5
  62. package/front_end/panels/elements/StylePropertyTreeElement.ts +1 -2
  63. package/front_end/panels/explain/components/ConsoleInsight.ts +1 -1
  64. package/front_end/panels/network/RequestConditionsDrawer.ts +64 -20
  65. package/front_end/panels/profiler/HeapSnapshotGridNodes.ts +1 -1
  66. package/front_end/panels/profiler/HeapSnapshotProxy.ts +15 -14
  67. package/front_end/panels/recorder/components/StepEditor.ts +1 -1
  68. package/front_end/panels/security/SecurityPanelSidebar.ts +1 -3
  69. package/front_end/panels/settings/KeybindsSettingsTab.ts +1 -1
  70. package/front_end/panels/sources/CSSPlugin.ts +1 -1
  71. package/front_end/panels/sources/DebuggerPlugin.ts +2 -2
  72. package/front_end/panels/sources/NavigatorView.ts +1 -1
  73. package/front_end/panels/sources/SourcesSearchScope.ts +1 -1
  74. package/front_end/panels/sources/WatchExpressionsSidebarPane.ts +10 -2
  75. package/front_end/panels/timeline/TimelineFlameChartView.ts +1 -1
  76. package/front_end/panels/timeline/TimelinePanel.ts +7 -7
  77. package/front_end/panels/timeline/TimelineUIUtils.ts +3 -1
  78. package/front_end/panels/timeline/enable-easter-egg.js +1 -1
  79. package/front_end/panels/timeline/utils/Treemap.ts +1 -1
  80. package/front_end/third_party/chromium/README.chromium +1 -1
  81. package/front_end/third_party/puppeteer/README.chromium +2 -2
  82. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts +66 -0
  83. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -0
  84. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js +57 -0
  85. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/DeviceRequestPrompt.js.map +1 -0
  86. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts +1 -1
  87. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.d.ts.map +1 -1
  88. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Frame.js.map +1 -1
  89. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts +2 -2
  90. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.d.ts.map +1 -1
  91. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/Page.js.map +1 -1
  92. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts +1 -0
  93. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.d.ts.map +1 -1
  94. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js +1 -0
  95. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/api/api.js.map +1 -1
  96. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
  97. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js +1 -6
  98. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/HTTPRequest.js.map +1 -1
  99. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts +0 -4
  100. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.d.ts.map +1 -1
  101. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js +18 -23
  102. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/Page.js.map +1 -1
  103. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts +2 -0
  104. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  105. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js +16 -0
  106. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  107. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts +4 -62
  108. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  109. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js +9 -73
  110. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  111. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts +1 -1
  112. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.d.ts.map +1 -1
  113. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Frame.js.map +1 -1
  114. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts +1 -1
  115. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.d.ts.map +1 -1
  116. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js +3 -3
  117. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/cdp/Page.js.map +1 -1
  118. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts +8 -1
  119. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  120. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js +11 -1
  121. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/common/ConsoleMessage.js.map +1 -1
  122. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/injected/injected.d.ts +1 -1
  123. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.d.ts +3 -3
  124. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js +3 -3
  125. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/revisions.js.map +1 -1
  126. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/Mutex.d.ts +2 -2
  127. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.d.ts +1 -1
  128. package/front_end/third_party/puppeteer/package/lib/cjs/puppeteer/util/version.js +1 -1
  129. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.d.ts +9 -10
  130. package/front_end/third_party/puppeteer/package/lib/es5-iife/puppeteer-core-browser.js +80 -81
  131. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts +66 -0
  132. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.d.ts.map +1 -0
  133. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js +52 -0
  134. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/DeviceRequestPrompt.js.map +1 -0
  135. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts +1 -1
  136. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.d.ts.map +1 -1
  137. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Frame.js.map +1 -1
  138. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts +2 -2
  139. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.d.ts.map +1 -1
  140. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/Page.js.map +1 -1
  141. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts +1 -0
  142. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.d.ts.map +1 -1
  143. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js +1 -0
  144. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/api/api.js.map +1 -1
  145. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.d.ts.map +1 -1
  146. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js +1 -6
  147. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/HTTPRequest.js.map +1 -1
  148. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts +0 -4
  149. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.d.ts.map +1 -1
  150. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js +18 -23
  151. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/Page.js.map +1 -1
  152. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts +2 -0
  153. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.d.ts.map +1 -1
  154. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js +16 -0
  155. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/bidi/core/BrowsingContext.js.map +1 -1
  156. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts +4 -62
  157. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.d.ts.map +1 -1
  158. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js +6 -69
  159. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/DeviceRequestPrompt.js.map +1 -1
  160. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts +1 -1
  161. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.d.ts.map +1 -1
  162. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Frame.js.map +1 -1
  163. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts +1 -1
  164. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.d.ts.map +1 -1
  165. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js +3 -3
  166. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/cdp/Page.js.map +1 -1
  167. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts +8 -1
  168. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.d.ts.map +1 -1
  169. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js +11 -1
  170. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/common/ConsoleMessage.js.map +1 -1
  171. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.d.ts +3 -3
  172. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js +3 -3
  173. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/revisions.js.map +1 -1
  174. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.d.ts +1 -1
  175. package/front_end/third_party/puppeteer/package/lib/esm/puppeteer/util/version.js +1 -1
  176. package/front_end/third_party/puppeteer/package/lib/types.d.ts +9 -10
  177. package/front_end/third_party/puppeteer/package/package.json +3 -3
  178. package/front_end/third_party/puppeteer/package/src/api/DeviceRequestPrompt.ts +79 -0
  179. package/front_end/third_party/puppeteer/package/src/api/Frame.ts +1 -1
  180. package/front_end/third_party/puppeteer/package/src/api/Page.ts +2 -2
  181. package/front_end/third_party/puppeteer/package/src/api/api.ts +1 -0
  182. package/front_end/third_party/puppeteer/package/src/bidi/HTTPRequest.ts +1 -9
  183. package/front_end/third_party/puppeteer/package/src/bidi/Page.ts +21 -31
  184. package/front_end/third_party/puppeteer/package/src/bidi/core/BrowsingContext.ts +18 -0
  185. package/front_end/third_party/puppeteer/package/src/cdp/DeviceRequestPrompt.ts +6 -72
  186. package/front_end/third_party/puppeteer/package/src/cdp/Frame.ts +2 -4
  187. package/front_end/third_party/puppeteer/package/src/cdp/Page.ts +7 -2
  188. package/front_end/third_party/puppeteer/package/src/common/ConsoleMessage.ts +14 -0
  189. package/front_end/third_party/puppeteer/package/src/revisions.ts +3 -3
  190. package/front_end/third_party/puppeteer/package/src/util/version.ts +1 -1
  191. package/front_end/third_party/puppeteer/puppeteer-tsconfig.json +1 -0
  192. package/front_end/ui/components/markdown_view/MarkdownLinksMap.ts +4 -0
  193. package/front_end/ui/components/text_editor/javascript.ts +1 -1
  194. package/front_end/ui/legacy/ListWidget.ts +51 -18
  195. package/front_end/ui/legacy/ReportView.ts +1 -1
  196. package/front_end/ui/legacy/TabbedPane.ts +3 -3
  197. package/front_end/ui/legacy/Treeoutline.ts +1 -1
  198. package/front_end/ui/legacy/components/color_picker/ContrastInfo.ts +1 -1
  199. package/front_end/ui/legacy/components/data_grid/DataGrid.ts +3 -2
  200. package/front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts +87 -111
  201. package/front_end/ui/legacy/components/source_frame/SourceFrame.ts +1 -2
  202. package/front_end/ui/legacy/components/utils/JSPresentationUtils.ts +40 -11
  203. package/front_end/ui/legacy/components/utils/jsUtils.css +28 -0
  204. package/front_end/ui/visual_logging/KnownContextValues.ts +1 -0
  205. package/front_end/ui/visual_logging/LoggingConfig.ts +2 -1
  206. package/inspector_overlay/tool_window_controls.ts +4 -1
  207. package/mcp/mcp.ts +1 -1
  208. package/package.json +2 -3
  209. package/front_end/core/common/Worker.ts +0 -60
  210. package/front_end/panels/application/components/StackTrace.ts +0 -238
  211. package/front_end/panels/application/components/stackTraceLinkButton.css +0 -16
  212. package/front_end/panels/application/components/stackTraceRow.css +0 -50
@@ -7,7 +7,7 @@ import * as Platform from '../../core/platform/platform.js';
7
7
  import * as FormatterWorker from './formatter_worker.js';
8
8
  import {FormatterActions} from './FormatterActions.js';
9
9
 
10
- self.onmessage = function(event: MessageEvent): void {
10
+ Platform.HostRuntime.HOST_RUNTIME.workerScope.onmessage = function(event): void {
11
11
  const method: FormatterActions = event.data.method;
12
12
  const params: {
13
13
  indentString: string,
@@ -22,17 +22,20 @@ self.onmessage = function(event: MessageEvent): void {
22
22
 
23
23
  switch (method) {
24
24
  case FormatterActions.FORMAT:
25
- self.postMessage(FormatterWorker.FormatterWorker.format(params.mimeType, params.content, params.indentString));
25
+ Platform.HostRuntime.HOST_RUNTIME.workerScope.postMessage(
26
+ FormatterWorker.FormatterWorker.format(params.mimeType, params.content, params.indentString));
26
27
  break;
27
28
  case FormatterActions.PARSE_CSS:
28
29
  FormatterWorker.CSSRuleParser.parseCSS(params.content, self.postMessage);
29
30
  break;
30
31
  case FormatterActions.JAVASCRIPT_SUBSTITUTE: {
31
- self.postMessage(FormatterWorker.Substitute.substituteExpression(params.content, params.mapping));
32
+ Platform.HostRuntime.HOST_RUNTIME.workerScope.postMessage(
33
+ FormatterWorker.Substitute.substituteExpression(params.content, params.mapping));
32
34
  break;
33
35
  }
34
36
  case FormatterActions.JAVASCRIPT_SCOPE_TREE: {
35
- self.postMessage(FormatterWorker.ScopeParser.parseScopes(params.content, params.sourceType)?.export());
37
+ Platform.HostRuntime.HOST_RUNTIME.workerScope.postMessage(
38
+ FormatterWorker.ScopeParser.parseScopes(params.content, params.sourceType)?.export());
36
39
  break;
37
40
  }
38
41
  default:
@@ -40,4 +43,4 @@ self.onmessage = function(event: MessageEvent): void {
40
43
  }
41
44
  };
42
45
 
43
- self.postMessage('workerReady');
46
+ Platform.HostRuntime.HOST_RUNTIME.workerScope.postMessage('workerReady');
@@ -45,7 +45,7 @@ export class ExecutionContextSelector implements SDK.TargetManager.SDKModelObser
45
45
 
46
46
  modelRemoved(runtimeModel: SDK.RuntimeModel.RuntimeModel): void {
47
47
  const currentExecutionContext = this.#context.flavor(SDK.RuntimeModel.ExecutionContext);
48
- if (currentExecutionContext && currentExecutionContext.runtimeModel === runtimeModel) {
48
+ if (currentExecutionContext?.runtimeModel === runtimeModel) {
49
49
  this.#currentExecutionContextGone();
50
50
  }
51
51
 
@@ -183,7 +183,7 @@ export class MainImpl {
183
183
  Host.userMetrics.syncSetting(Common.Settings.Settings.instance().moduleSetting<boolean>('sync-preferences').get());
184
184
  const veLogging = config.devToolsVeLogging;
185
185
 
186
- // Used by e2e_non_hosted to put VE Logs into "test mode".
186
+ // Used by e2e to put VE Logs into "test mode".
187
187
  const veLogsTestMode = Common.Settings.Settings.instance().createSetting('veLogsTestMode', false).get();
188
188
 
189
189
  if (veLogging?.enabled) {
@@ -504,7 +504,7 @@ export class MainImpl {
504
504
  LiveMetrics.LiveMetrics.instance();
505
505
  CrUXManager.CrUXManager.instance();
506
506
 
507
- void AiAssistanceModel.BuiltInAi.BuiltInAi.instance();
507
+ AiAssistanceModel.BuiltInAi.BuiltInAi.instance();
508
508
 
509
509
  new PauseListener();
510
510
 
@@ -182,6 +182,10 @@ export const UIStrings = {
182
182
  * @description Standard message when one web API is deprecated in favor of another.
183
183
  */
184
184
  RangeExpand: "Range.expand() is deprecated. Please use Selection.modify() instead.",
185
+ /**
186
+ * @description A deprecation warning shown in the DevTools Issues tab. It's shown when the Storage Access API is automatically granted by Related Website Sets. The placeholder will always be the string `Related Website Sets`.
187
+ */
188
+ RelatedWebsiteSets: "`Related Website Sets` is deprecated and will be removed. See https://privacysandbox.com/news/update-on-plans-for-privacy-sandbox-technologies/ for more details.",
185
189
  /**
186
190
  * @description This warning occurs when a subresource loaded by a page has a URL with an authority portion. These are disallowed.
187
191
  */
@@ -210,6 +214,10 @@ export const UIStrings = {
210
214
  * @description A deprecation warning shown in the DevTools Issues tab. It's shown when the speech synthesis API is called before the page receives a user activation.
211
215
  */
212
216
  TextToSpeech_DisallowedByAutoplay: "`speechSynthesis.speak()` without user activation is deprecated and will be removed.",
217
+ /**
218
+ * @description A deprecation warning shown in the DevTools Issues tab. It's shown when one of the Topics APIs like `document.browsingTopics()`, `<img browsingtopics>`, `<iframe browsingtopics>`, or `fetch(url, {browsingTopics: true})` are used.
219
+ */
220
+ Topics: "The Topics API is deprecated and will be removed in a future release.",
213
221
  /**
214
222
  * @description A deprecation warning shown in the DevTools Issues tab. It's shown when a listener for the `unload` event is added.
215
223
  */
@@ -230,6 +238,10 @@ export const UIStrings = {
230
238
  * @description Warning displayed to developers. It is shown when the `XMLHttpRequest` API is used in a way that it slows down the page load of the next page. The `main thread` refers to an operating systems thread used to run most of the processing of HTML documents, so please use a consistent wording.
231
239
  */
232
240
  XMLHttpRequestSynchronousInNonWorkerOutsideBeforeUnload: "Synchronous `XMLHttpRequest` on the main thread is deprecated because of its detrimental effects to the end user's experience. For more help, check https://xhr.spec.whatwg.org/.",
241
+ /**
242
+ * @description Warning displayed to developers that they are using externally loaded entities in an XML document that constitutes a part of the web page. Externally loaded entities are a technical concept of XML document processing.
243
+ */
244
+ XMLNoExternalEntities: "Externally loaded entities in XML parsing have been deprecated and will be removed from this browser soon.",
233
245
  /**
234
246
  * @description Warning displayed to developers that they are using either the XSLTProcessor API, or XSLT processing instructions, both of which have been deprecated and are scheduled to be removed.
235
247
  */
@@ -326,6 +338,9 @@ export const DEPRECATIONS_METADATA: Partial<Record<string, DeprecationDescriptor
326
338
  "chromeStatusFeature": 4631626228695040,
327
339
  "milestone": 117
328
340
  },
341
+ "RelatedWebsiteSets": {
342
+ "chromeStatusFeature": 5194473869017088
343
+ },
329
344
  "RequestedSubresourceWithEmbeddedCredentials": {
330
345
  "chromeStatusFeature": 5669008342777856
331
346
  },
@@ -352,6 +367,10 @@ export const DEPRECATIONS_METADATA: Partial<Record<string, DeprecationDescriptor
352
367
  "XHRJSONEncodingDetection": {
353
368
  "milestone": 93
354
369
  },
370
+ "XMLNoExternalEntities": {
371
+ "chromeStatusFeature": 6734457763659776,
372
+ "milestone": 144
373
+ },
355
374
  "XSLT": {
356
375
  "chromeStatusFeature": 4709671889534976,
357
376
  "milestone": 143
@@ -247,7 +247,7 @@ inspectorBackend.registerCommand("CSS.resolveValues", [{"name": "values", "type"
247
247
  inspectorBackend.registerCommand("CSS.getLonghandProperties", [{"name": "shorthandName", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "value", "type": "string", "optional": false, "description": "", "typeRef": null}], ["longhandProperties"], "");
248
248
  inspectorBackend.registerCommand("CSS.getInlineStylesForNode", [{"name": "nodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.NodeId"}], ["inlineStyle", "attributesStyle"], "Returns the styles defined inline (explicitly in the \"style\" attribute and implicitly, using DOM attributes) for a DOM node identified by `nodeId`.");
249
249
  inspectorBackend.registerCommand("CSS.getAnimatedStylesForNode", [{"name": "nodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.NodeId"}], ["animationStyles", "transitionsStyle", "inherited"], "Returns the styles coming from animations & transitions including the animation & transition styles coming from inheritance chain.");
250
- inspectorBackend.registerCommand("CSS.getMatchedStylesForNode", [{"name": "nodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.NodeId"}], ["inlineStyle", "attributesStyle", "matchedCSSRules", "pseudoElements", "inherited", "inheritedPseudoElements", "cssKeyframesRules", "cssPositionTryRules", "activePositionFallbackIndex", "cssPropertyRules", "cssPropertyRegistrations", "cssFontPaletteValuesRule", "cssAtRules", "parentLayoutNodeId", "cssFunctionRules"], "Returns requested styles for a DOM node identified by `nodeId`.");
250
+ inspectorBackend.registerCommand("CSS.getMatchedStylesForNode", [{"name": "nodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.NodeId"}], ["inlineStyle", "attributesStyle", "matchedCSSRules", "pseudoElements", "inherited", "inheritedPseudoElements", "cssKeyframesRules", "cssPositionTryRules", "activePositionFallbackIndex", "cssPropertyRules", "cssPropertyRegistrations", "cssAtRules", "parentLayoutNodeId", "cssFunctionRules"], "Returns requested styles for a DOM node identified by `nodeId`.");
251
251
  inspectorBackend.registerCommand("CSS.getEnvironmentVariables", [], ["environmentVariables"], "Returns the values of the default UA-defined environment variables used in env()");
252
252
  inspectorBackend.registerCommand("CSS.getMediaQueries", [], ["medias"], "Returns all media queries parsed by the rendering engine.");
253
253
  inspectorBackend.registerCommand("CSS.getPlatformFontsForNode", [{"name": "nodeId", "type": "number", "optional": false, "description": "", "typeRef": "DOM.NodeId"}], ["fonts"], "Requests information about platform fonts which we used to render child TextNodes in the given node.");
@@ -305,7 +305,6 @@ inspectorBackend.registerType("CSS.CSSTryRule", [{"name": "styleSheetId", "type"
305
305
  inspectorBackend.registerType("CSS.CSSPositionTryRule", [{"name": "name", "type": "object", "optional": false, "description": "The prelude dashed-ident name", "typeRef": "CSS.Value"}, {"name": "styleSheetId", "type": "string", "optional": true, "description": "The css style sheet identifier (absent for user agent stylesheet and user-specified stylesheet rules) this rule came from.", "typeRef": "CSS.StyleSheetId"}, {"name": "origin", "type": "string", "optional": false, "description": "Parent stylesheet's origin.", "typeRef": "CSS.StyleSheetOrigin"}, {"name": "style", "type": "object", "optional": false, "description": "Associated style declaration.", "typeRef": "CSS.CSSStyle"}, {"name": "active", "type": "boolean", "optional": false, "description": "", "typeRef": null}]);
306
306
  inspectorBackend.registerType("CSS.CSSKeyframesRule", [{"name": "animationName", "type": "object", "optional": false, "description": "Animation name.", "typeRef": "CSS.Value"}, {"name": "keyframes", "type": "array", "optional": false, "description": "List of keyframes.", "typeRef": "CSS.CSSKeyframeRule"}]);
307
307
  inspectorBackend.registerType("CSS.CSSPropertyRegistration", [{"name": "propertyName", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "initialValue", "type": "object", "optional": true, "description": "", "typeRef": "CSS.Value"}, {"name": "inherits", "type": "boolean", "optional": false, "description": "", "typeRef": null}, {"name": "syntax", "type": "string", "optional": false, "description": "", "typeRef": null}]);
308
- inspectorBackend.registerType("CSS.CSSFontPaletteValuesRule", [{"name": "styleSheetId", "type": "string", "optional": true, "description": "The css style sheet identifier (absent for user agent stylesheet and user-specified stylesheet rules) this rule came from.", "typeRef": "CSS.StyleSheetId"}, {"name": "origin", "type": "string", "optional": false, "description": "Parent stylesheet's origin.", "typeRef": "CSS.StyleSheetOrigin"}, {"name": "fontPaletteName", "type": "object", "optional": false, "description": "Associated font palette name.", "typeRef": "CSS.Value"}, {"name": "style", "type": "object", "optional": false, "description": "Associated style declaration.", "typeRef": "CSS.CSSStyle"}]);
309
308
  inspectorBackend.registerType("CSS.CSSAtRule", [{"name": "type", "type": "string", "optional": false, "description": "Type of at-rule.", "typeRef": null}, {"name": "subsection", "type": "string", "optional": true, "description": "Subsection of font-feature-values, if this is a subsection.", "typeRef": null}, {"name": "name", "type": "object", "optional": true, "description": "LINT_SKIP.ThenChange(//third_party/blink/renderer/core/inspector/inspector_style_sheet.cc:FontVariantAlternatesFeatureType,//third_party/blink/renderer/core/inspector/inspector_css_agent.cc:FontVariantAlternatesFeatureType) Associated name, if applicable.", "typeRef": "CSS.Value"}, {"name": "styleSheetId", "type": "string", "optional": true, "description": "The css style sheet identifier (absent for user agent stylesheet and user-specified stylesheet rules) this rule came from.", "typeRef": "CSS.StyleSheetId"}, {"name": "origin", "type": "string", "optional": false, "description": "Parent stylesheet's origin.", "typeRef": "CSS.StyleSheetOrigin"}, {"name": "style", "type": "object", "optional": false, "description": "Associated style declaration.", "typeRef": "CSS.CSSStyle"}]);
310
309
  inspectorBackend.registerType("CSS.CSSPropertyRule", [{"name": "styleSheetId", "type": "string", "optional": true, "description": "The css style sheet identifier (absent for user agent stylesheet and user-specified stylesheet rules) this rule came from.", "typeRef": "CSS.StyleSheetId"}, {"name": "origin", "type": "string", "optional": false, "description": "Parent stylesheet's origin.", "typeRef": "CSS.StyleSheetOrigin"}, {"name": "propertyName", "type": "object", "optional": false, "description": "Associated property name.", "typeRef": "CSS.Value"}, {"name": "style", "type": "object", "optional": false, "description": "Associated style declaration.", "typeRef": "CSS.CSSStyle"}]);
311
310
  inspectorBackend.registerType("CSS.CSSFunctionParameter", [{"name": "name", "type": "string", "optional": false, "description": "The parameter name.", "typeRef": null}, {"name": "type", "type": "string", "optional": false, "description": "The parameter type.", "typeRef": null}]);
@@ -811,6 +810,8 @@ inspectorBackend.registerEvent("Network.directTCPSocketAborted", ["identifier",
811
810
  inspectorBackend.registerEvent("Network.directTCPSocketClosed", ["identifier", "timestamp"]);
812
811
  inspectorBackend.registerEvent("Network.directTCPSocketChunkSent", ["identifier", "data", "timestamp"]);
813
812
  inspectorBackend.registerEvent("Network.directTCPSocketChunkReceived", ["identifier", "data", "timestamp"]);
813
+ inspectorBackend.registerEvent("Network.directUDPSocketJoinedMulticastGroup", ["identifier", "IPAddress"]);
814
+ inspectorBackend.registerEvent("Network.directUDPSocketLeftMulticastGroup", ["identifier", "IPAddress"]);
814
815
  inspectorBackend.registerEvent("Network.directUDPSocketCreated", ["identifier", "options", "timestamp", "initiator"]);
815
816
  inspectorBackend.registerEvent("Network.directUDPSocketOpened", ["identifier", "localAddr", "localPort", "timestamp", "remoteAddr", "remotePort"]);
816
817
  inspectorBackend.registerEvent("Network.directUDPSocketAborted", ["identifier", "errorMessage", "timestamp"]);
@@ -893,7 +894,7 @@ inspectorBackend.registerType("Network.SignedExchangeInfo", [{"name": "outerResp
893
894
  inspectorBackend.registerType("Network.NetworkConditions", [{"name": "urlPattern", "type": "string", "optional": false, "description": "Only matching requests will be affected by these conditions. Patterns use the URLPattern constructor string syntax (https://urlpattern.spec.whatwg.org/) and must be absolute. If the pattern is empty, all requests are matched (including p2p connections).", "typeRef": null}, {"name": "latency", "type": "number", "optional": false, "description": "Minimum latency from request sent to response headers received (ms).", "typeRef": null}, {"name": "downloadThroughput", "type": "number", "optional": false, "description": "Maximal aggregated download throughput (bytes/sec). -1 disables download throttling.", "typeRef": null}, {"name": "uploadThroughput", "type": "number", "optional": false, "description": "Maximal aggregated upload throughput (bytes/sec). -1 disables upload throttling.", "typeRef": null}, {"name": "connectionType", "type": "string", "optional": true, "description": "Connection type if known.", "typeRef": "Network.ConnectionType"}, {"name": "packetLoss", "type": "number", "optional": true, "description": "WebRTC packet loss (percent, 0-100). 0 disables packet loss emulation, 100 drops all the packets.", "typeRef": null}, {"name": "packetQueueLength", "type": "number", "optional": true, "description": "WebRTC packet queue length (packet). 0 removes any queue length limitations.", "typeRef": null}, {"name": "packetReordering", "type": "boolean", "optional": true, "description": "WebRTC packetReordering feature.", "typeRef": null}]);
894
895
  inspectorBackend.registerType("Network.BlockPattern", [{"name": "urlPattern", "type": "string", "optional": false, "description": "URL pattern to match. Patterns use the URLPattern constructor string syntax (https://urlpattern.spec.whatwg.org/) and must be absolute. Example: `*://*:*/*.css`.", "typeRef": null}, {"name": "block", "type": "boolean", "optional": false, "description": "Whether or not to block the pattern. If false, a matching request will not be blocked even if it matches a later `BlockPattern`.", "typeRef": null}]);
895
896
  inspectorBackend.registerType("Network.DirectTCPSocketOptions", [{"name": "noDelay", "type": "boolean", "optional": false, "description": "TCP_NODELAY option", "typeRef": null}, {"name": "keepAliveDelay", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}, {"name": "sendBufferSize", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}, {"name": "receiveBufferSize", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}, {"name": "dnsQueryType", "type": "string", "optional": true, "description": "", "typeRef": "Network.DirectSocketDnsQueryType"}]);
896
- inspectorBackend.registerType("Network.DirectUDPSocketOptions", [{"name": "remoteAddr", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "remotePort", "type": "number", "optional": true, "description": "Unsigned int 16.", "typeRef": null}, {"name": "localAddr", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "localPort", "type": "number", "optional": true, "description": "Unsigned int 16.", "typeRef": null}, {"name": "dnsQueryType", "type": "string", "optional": true, "description": "", "typeRef": "Network.DirectSocketDnsQueryType"}, {"name": "sendBufferSize", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}, {"name": "receiveBufferSize", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}]);
897
+ inspectorBackend.registerType("Network.DirectUDPSocketOptions", [{"name": "remoteAddr", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "remotePort", "type": "number", "optional": true, "description": "Unsigned int 16.", "typeRef": null}, {"name": "localAddr", "type": "string", "optional": true, "description": "", "typeRef": null}, {"name": "localPort", "type": "number", "optional": true, "description": "Unsigned int 16.", "typeRef": null}, {"name": "dnsQueryType", "type": "string", "optional": true, "description": "", "typeRef": "Network.DirectSocketDnsQueryType"}, {"name": "sendBufferSize", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}, {"name": "receiveBufferSize", "type": "number", "optional": true, "description": "Expected to be unsigned integer.", "typeRef": null}, {"name": "multicastLoopback", "type": "boolean", "optional": true, "description": "", "typeRef": null}, {"name": "multicastTimeToLive", "type": "number", "optional": true, "description": "Unsigned int 8.", "typeRef": null}, {"name": "multicastAllowAddressSharing", "type": "boolean", "optional": true, "description": "", "typeRef": null}]);
897
898
  inspectorBackend.registerType("Network.DirectUDPMessage", [{"name": "data", "type": "string", "optional": false, "description": "", "typeRef": null}, {"name": "remoteAddr", "type": "string", "optional": true, "description": "Null for connected mode.", "typeRef": null}, {"name": "remotePort", "type": "number", "optional": true, "description": "Null for connected mode. Expected to be unsigned integer.", "typeRef": null}]);
898
899
  inspectorBackend.registerType("Network.ConnectTiming", [{"name": "requestTime", "type": "number", "optional": false, "description": "Timing's requestTime is a baseline in seconds, while the other numbers are ticks in milliseconds relatively to this requestTime. Matches ResourceTiming's requestTime for the same request (but not for redirected requests).", "typeRef": null}]);
899
900
  inspectorBackend.registerType("Network.ClientSecurityState", [{"name": "initiatorIsSecureContext", "type": "boolean", "optional": false, "description": "", "typeRef": null}, {"name": "initiatorIPAddressSpace", "type": "string", "optional": false, "description": "", "typeRef": "Network.IPAddressSpace"}, {"name": "privateNetworkRequestPolicy", "type": "string", "optional": false, "description": "", "typeRef": "Network.PrivateNetworkRequestPolicy"}]);
@@ -2142,8 +2142,8 @@ export const generatedProperties = [
2142
2142
  "math",
2143
2143
  "ruby",
2144
2144
  "ruby-text",
2145
- "masonry",
2146
- "inline-masonry"
2145
+ "grid-lanes",
2146
+ "inline-grid-lanes"
2147
2147
  ],
2148
2148
  "name": "display"
2149
2149
  },
@@ -2643,6 +2643,15 @@ export const generatedProperties = [
2643
2643
  ],
2644
2644
  "name": "grid-column-start"
2645
2645
  },
2646
+ {
2647
+ "longhands": [
2648
+ "grid-template-areas",
2649
+ "grid-template-columns",
2650
+ "masonry-direction",
2651
+ "masonry-fill"
2652
+ ],
2653
+ "name": "grid-lanes"
2654
+ },
2646
2655
  {
2647
2656
  "longhands": [
2648
2657
  "grid-row-start",
@@ -3087,15 +3096,6 @@ export const generatedProperties = [
3087
3096
  ],
3088
3097
  "name": "mask-type"
3089
3098
  },
3090
- {
3091
- "longhands": [
3092
- "grid-template-areas",
3093
- "grid-template-columns",
3094
- "masonry-direction",
3095
- "masonry-fill"
3096
- ],
3097
- "name": "masonry"
3098
- },
3099
3099
  {
3100
3100
  "keywords": [
3101
3101
  "row",
@@ -5655,8 +5655,8 @@ export const generatedPropertyValues = {
5655
5655
  "math",
5656
5656
  "ruby",
5657
5657
  "ruby-text",
5658
- "masonry",
5659
- "inline-masonry"
5658
+ "grid-lanes",
5659
+ "inline-grid-lanes"
5660
5660
  ]
5661
5661
  },
5662
5662
  "dominant-baseline": {
@@ -376,6 +376,8 @@ export namespace ProtocolMapping {
376
376
  * Fired when data is received from tcp direct socket stream.
377
377
  */
378
378
  'Network.directTCPSocketChunkReceived': [Protocol.Network.DirectTCPSocketChunkReceivedEvent];
379
+ 'Network.directUDPSocketJoinedMulticastGroup': [Protocol.Network.DirectUDPSocketJoinedMulticastGroupEvent];
380
+ 'Network.directUDPSocketLeftMulticastGroup': [Protocol.Network.DirectUDPSocketLeftMulticastGroupEvent];
379
381
  /**
380
382
  * Fired upon direct_socket.UDPSocket creation.
381
383
  */
@@ -2797,6 +2797,10 @@ declare namespace ProtocolProxyApi {
2797
2797
  */
2798
2798
  directTCPSocketChunkReceived(params: Protocol.Network.DirectTCPSocketChunkReceivedEvent): void;
2799
2799
 
2800
+ directUDPSocketJoinedMulticastGroup(params: Protocol.Network.DirectUDPSocketJoinedMulticastGroupEvent): void;
2801
+
2802
+ directUDPSocketLeftMulticastGroup(params: Protocol.Network.DirectUDPSocketLeftMulticastGroupEvent): void;
2803
+
2800
2804
  /**
2801
2805
  * Fired upon direct_socket.UDPSocket creation.
2802
2806
  */
@@ -3430,29 +3430,6 @@ export namespace CSS {
3430
3430
  syntax: string;
3431
3431
  }
3432
3432
 
3433
- /**
3434
- * CSS font-palette-values rule representation.
3435
- */
3436
- export interface CSSFontPaletteValuesRule {
3437
- /**
3438
- * The css style sheet identifier (absent for user agent stylesheet and user-specified
3439
- * stylesheet rules) this rule came from.
3440
- */
3441
- styleSheetId?: StyleSheetId;
3442
- /**
3443
- * Parent stylesheet's origin.
3444
- */
3445
- origin: StyleSheetOrigin;
3446
- /**
3447
- * Associated font palette name.
3448
- */
3449
- fontPaletteName: Value;
3450
- /**
3451
- * Associated style declaration.
3452
- */
3453
- style: CSSStyle;
3454
- }
3455
-
3456
3433
  export const enum CSSAtRuleType {
3457
3434
  FontFace = 'font-face',
3458
3435
  FontFeatureValues = 'font-feature-values',
@@ -3892,10 +3869,6 @@ export namespace CSS {
3892
3869
  * A list of CSS property registrations matching this node.
3893
3870
  */
3894
3871
  cssPropertyRegistrations?: CSSPropertyRegistration[];
3895
- /**
3896
- * A font-palette-values rule matching this node.
3897
- */
3898
- cssFontPaletteValuesRule?: CSSFontPaletteValuesRule;
3899
3872
  /**
3900
3873
  * A list of simple @rules matching this node or its pseudo-elements.
3901
3874
  */
@@ -11140,6 +11113,12 @@ export namespace Network {
11140
11113
  * Expected to be unsigned integer.
11141
11114
  */
11142
11115
  receiveBufferSize?: number;
11116
+ multicastLoopback?: boolean;
11117
+ /**
11118
+ * Unsigned int 8.
11119
+ */
11120
+ multicastTimeToLive?: integer;
11121
+ multicastAllowAddressSharing?: boolean;
11143
11122
  }
11144
11123
 
11145
11124
  export interface DirectUDPMessage {
@@ -12393,6 +12372,16 @@ export namespace Network {
12393
12372
  timestamp: MonotonicTime;
12394
12373
  }
12395
12374
 
12375
+ export interface DirectUDPSocketJoinedMulticastGroupEvent {
12376
+ identifier: RequestId;
12377
+ IPAddress: string;
12378
+ }
12379
+
12380
+ export interface DirectUDPSocketLeftMulticastGroupEvent {
12381
+ identifier: RequestId;
12382
+ IPAddress: string;
12383
+ }
12384
+
12396
12385
  /**
12397
12386
  * Fired upon direct_socket.UDPSocket creation.
12398
12387
  */
@@ -2,35 +2,77 @@
2
2
  // Use of this source code is governed by a BSD-style license that can be
3
3
  // found in the LICENSE file.
4
4
 
5
- import {type ContextDetail, type ResponseData, ResponseType} from './agents/AiAgent.js';
6
- import {AiHistoryStorage, type ConversationType, type SerializedConversation} from './AiHistoryStorage.js';
5
+ import * as Host from '../../core/host/host.js';
6
+ import * as Root from '../../core/root/root.js';
7
+
8
+ import {
9
+ type AiAgent,
10
+ type ContextDetail,
11
+ type ConversationContext,
12
+ type MultimodalInput,
13
+ type ResponseData,
14
+ ResponseType
15
+ } from './agents/AiAgent.js';
16
+ import {FileAgent} from './agents/FileAgent.js';
17
+ import {NetworkAgent} from './agents/NetworkAgent.js';
18
+ import {PerformanceAgent} from './agents/PerformanceAgent.js';
19
+ import {StylingAgent} from './agents/StylingAgent.js';
20
+ import {AiHistoryStorage, ConversationType, type SerializedConversation} from './AiHistoryStorage.js';
21
+ import type {ChangeManager} from './ChangeManager.js';
7
22
 
8
23
  export const NOT_FOUND_IMAGE_DATA = '';
9
24
  const MAX_TITLE_LENGTH = 80;
10
25
 
26
+ export function generateContextDetailsMarkdown(details: ContextDetail[]): string {
27
+ const detailsMarkdown: string[] = [];
28
+ for (const detail of details) {
29
+ const text = `\`\`\`\`${detail.codeLang || ''}\n${detail.text.trim()}\n\`\`\`\``;
30
+ detailsMarkdown.push(`**${detail.title}:**\n${text}`);
31
+ }
32
+ return detailsMarkdown.join('\n\n');
33
+ }
11
34
  export class AiConversation {
35
+ static fromSerializedConversation(serializedConversation: SerializedConversation): AiConversation {
36
+ const history = serializedConversation.history.map(entry => {
37
+ if (entry.type === ResponseType.SIDE_EFFECT) {
38
+ return {...entry, confirm: () => {}};
39
+ }
40
+ return entry;
41
+ });
42
+ return new AiConversation(
43
+ serializedConversation.type,
44
+ history,
45
+ serializedConversation.id,
46
+ true,
47
+ undefined,
48
+ undefined,
49
+ serializedConversation.isExternal,
50
+ );
51
+ }
52
+
12
53
  readonly id: string;
13
54
  type: ConversationType;
14
55
  #isReadOnly: boolean;
15
56
  readonly history: ResponseData[];
16
57
  #isExternal: boolean;
17
58
 
18
- static generateContextDetailsMarkdown(details: ContextDetail[]): string {
19
- const detailsMarkdown: string[] = [];
20
- for (const detail of details) {
21
- const text = `\`\`\`\`${detail.codeLang || ''}\n${detail.text.trim()}\n\`\`\`\``;
22
- detailsMarkdown.push(`**${detail.title}:**\n${text}`);
23
- }
24
- return detailsMarkdown.join('\n\n');
25
- }
59
+ #aidaClient: Host.AidaClient.AidaClient;
60
+ #changeManager: ChangeManager|undefined;
61
+ #agent: AiAgent<unknown>;
26
62
 
27
63
  constructor(
28
64
  type: ConversationType,
29
65
  data: ResponseData[] = [],
30
66
  id: string = crypto.randomUUID(),
31
67
  isReadOnly = true,
68
+ aidaClient: Host.AidaClient.AidaClient = new Host.AidaClient.AidaClient(),
69
+ changeManager?: ChangeManager,
32
70
  isExternal = false,
33
71
  ) {
72
+ this.#changeManager = changeManager;
73
+ this.#aidaClient = aidaClient;
74
+ this.#agent = this.#createAgent(type);
75
+
34
76
  this.type = type;
35
77
  this.id = id;
36
78
  this.#isReadOnly = isReadOnly;
@@ -99,7 +141,7 @@ export class AiConversation {
99
141
  case ResponseType.CONTEXT: {
100
142
  contentParts.push(`### ${item.title}`);
101
143
  if (item.details && item.details.length > 0) {
102
- contentParts.push(AiConversation.generateContextDetailsMarkdown(item.details));
144
+ contentParts.push(generateContextDetailsMarkdown(item.details));
103
145
  }
104
146
  break;
105
147
  }
@@ -170,19 +212,57 @@ export class AiConversation {
170
212
  };
171
213
  }
172
214
 
173
- static fromSerializedConversation(serializedConversation: SerializedConversation): AiConversation {
174
- const history = serializedConversation.history.map(entry => {
175
- if (entry.type === ResponseType.SIDE_EFFECT) {
176
- return {...entry, confirm: () => {}};
215
+ #createAgent(conversationType: ConversationType): AiAgent<unknown> {
216
+ const options = {
217
+ aidaClient: this.#aidaClient,
218
+ serverSideLoggingEnabled: isAiAssistanceServerSideLoggingEnabled(),
219
+ changeManager: this.#changeManager,
220
+ };
221
+ let agent: AiAgent<unknown>;
222
+ switch (conversationType) {
223
+ case ConversationType.STYLING: {
224
+ agent = new StylingAgent(options);
225
+ break;
177
226
  }
178
- return entry;
179
- });
180
- return new AiConversation(
181
- serializedConversation.type,
182
- history,
183
- serializedConversation.id,
184
- true,
185
- serializedConversation.isExternal,
186
- );
227
+ case ConversationType.NETWORK: {
228
+ agent = new NetworkAgent(options);
229
+ break;
230
+ }
231
+ case ConversationType.FILE: {
232
+ agent = new FileAgent(options);
233
+ break;
234
+ }
235
+ case ConversationType.PERFORMANCE: {
236
+ agent = new PerformanceAgent(options);
237
+ break;
238
+ }
239
+ }
240
+ return agent;
241
+ }
242
+
243
+ async *
244
+ run(
245
+ initialQuery: string,
246
+ options: {
247
+ selected: ConversationContext<unknown>|null,
248
+ signal?: AbortSignal,
249
+ },
250
+ multimodalInput?: MultimodalInput,
251
+ ): AsyncGenerator<ResponseData, void, void> {
252
+ for await (const data of this.#agent.run(initialQuery, options, multimodalInput)) {
253
+ // We don't want to save partial responses to the conversation history.
254
+ if (data.type !== ResponseType.ANSWER || data.complete) {
255
+ void this.addHistoryItem(data);
256
+ }
257
+ yield data;
258
+ }
259
+ }
260
+
261
+ get origin(): string|undefined {
262
+ return this.#agent.origin;
187
263
  }
188
264
  }
265
+
266
+ function isAiAssistanceServerSideLoggingEnabled(): boolean {
267
+ return !Root.Runtime.hostConfig.aidaAvailability?.disallowLogging;
268
+ }