chrome-devtools-mcp 0.0.2 → 0.2.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 (69) hide show
  1. package/README.md +6 -3
  2. package/build/node_modules/chrome-devtools-frontend/front_end/core/common/Settings.js +3 -32
  3. package/build/node_modules/chrome-devtools-frontend/front_end/core/i18n/i18n.js +35 -8
  4. package/build/node_modules/chrome-devtools-frontend/front_end/core/root/Runtime.js +4 -1
  5. package/build/node_modules/chrome-devtools-frontend/front_end/generated/InspectorBackendCommands.js +4 -4
  6. package/build/node_modules/chrome-devtools-frontend/front_end/generated/SupportedCSSProperties.js +12 -0
  7. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js +366 -0
  8. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AICallTree.js +366 -0
  9. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIContext.js +64 -0
  10. package/build/node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/performance/AIQueries.js +105 -0
  11. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CSSWorkspaceBinding.js +243 -0
  12. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/CompilerScriptMapping.js +407 -0
  13. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ContentProviderBasedProject.js +128 -0
  14. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerLanguagePlugins.js +992 -0
  15. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DebuggerWorkspaceBinding.js +574 -0
  16. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/DefaultScriptMapping.js +112 -0
  17. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/FileUtils.js +186 -0
  18. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/LiveLocation.js +60 -0
  19. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/NetworkProject.js +107 -0
  20. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/PresentationConsoleMessageHelper.js +244 -0
  21. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceMapping.js +473 -0
  22. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceScriptMapping.js +399 -0
  23. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/ResourceUtils.js +87 -0
  24. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/SASSSourceMapping.js +181 -0
  25. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/StylesSourceMapping.js +268 -0
  26. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/TempFile.js +55 -0
  27. package/build/node_modules/chrome-devtools-frontend/front_end/models/bindings/bindings.js +20 -0
  28. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/CrUXManager.js +283 -0
  29. package/build/node_modules/chrome-devtools-frontend/front_end/models/crux-manager/crux-manager.js +4 -0
  30. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/DeviceModeModel.js +775 -0
  31. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/EmulatedDevices.js +1706 -0
  32. package/build/node_modules/chrome-devtools-frontend/front_end/models/emulation/emulation.js +6 -0
  33. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/FormatterWorkerPool.js +131 -0
  34. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/ScriptFormatter.js +77 -0
  35. package/build/node_modules/chrome-devtools-frontend/front_end/models/formatter/formatter.js +6 -0
  36. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/GeometryImpl.js +347 -0
  37. package/build/node_modules/chrome-devtools-frontend/front_end/models/geometry/geometry.js +4 -0
  38. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/NamesResolver.js +626 -0
  39. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeChainModel.js +59 -0
  40. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/ScopeTreeCache.js +32 -0
  41. package/build/node_modules/chrome-devtools-frontend/front_end/models/source_map_scopes/source_map_scopes.js +7 -0
  42. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTrace.js +4 -0
  43. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceImpl.js +67 -0
  44. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/StackTraceModel.js +97 -0
  45. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/Trie.js +113 -0
  46. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace.js +5 -0
  47. package/build/node_modules/chrome-devtools-frontend/front_end/models/stack_trace/stack_trace_impl.js +7 -0
  48. package/build/node_modules/chrome-devtools-frontend/front_end/models/text_utils/TextUtils.js +23 -0
  49. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/Processor.js +1 -1
  50. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/helpers/Trace.js +1 -1
  51. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace/insights/DocumentLatency.js +5 -4
  52. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/SourceMapsResolver.js +199 -0
  53. package/build/node_modules/chrome-devtools-frontend/front_end/models/trace_source_maps_resolver/trace_source_maps_resolver.js +4 -0
  54. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/FileManager.js +64 -0
  55. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/IgnoreListManager.js +511 -0
  56. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/SearchConfig.js +113 -0
  57. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/UISourceCode.js +563 -0
  58. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/WorkspaceImpl.js +204 -0
  59. package/build/node_modules/chrome-devtools-frontend/front_end/models/workspace/workspace.js +9 -0
  60. package/build/src/McpContext.js +24 -9
  61. package/build/src/McpResponse.js +3 -3
  62. package/build/src/browser.js +3 -1
  63. package/build/src/index.js +1 -1
  64. package/build/src/tools/input.js +7 -7
  65. package/build/src/tools/performance.js +29 -2
  66. package/build/src/tools/screenshot.js +1 -1
  67. package/build/src/tools/script.js +40 -14
  68. package/build/src/trace-processing/parse.js +26 -22
  69. package/package.json +9 -7
@@ -0,0 +1,128 @@
1
+ // Copyright 2013 The Chromium Authors
2
+ // Use of this source code is governed by a BSD-style license that can be
3
+ // found in the LICENSE file.
4
+ import * as i18n from '../../core/i18n/i18n.js';
5
+ import * as Platform from '../../core/platform/platform.js';
6
+ import * as TextUtils from '../text_utils/text_utils.js';
7
+ import * as Workspace from '../workspace/workspace.js';
8
+ const UIStrings = {
9
+ /**
10
+ * @description Error message that is displayed in the Sources panel when can't be loaded.
11
+ */
12
+ unknownErrorLoadingFile: 'Unknown error loading file',
13
+ };
14
+ const str_ = i18n.i18n.registerUIStrings('models/bindings/ContentProviderBasedProject.ts', UIStrings);
15
+ const i18nString = i18n.i18n.getLocalizedString.bind(undefined, str_);
16
+ export class ContentProviderBasedProject extends Workspace.Workspace.ProjectStore {
17
+ #isServiceProject;
18
+ #uiSourceCodeToData = new WeakMap();
19
+ constructor(workspace, id, type, displayName, isServiceProject) {
20
+ super(workspace, id, type, displayName);
21
+ this.#isServiceProject = isServiceProject;
22
+ workspace.addProject(this);
23
+ }
24
+ async requestFileContent(uiSourceCode) {
25
+ const { contentProvider } = this.#uiSourceCodeToData.get(uiSourceCode);
26
+ try {
27
+ return await contentProvider.requestContentData();
28
+ }
29
+ catch (err) {
30
+ // TODO(rob.paveza): CRBug 1013683 - Consider propagating exceptions full-stack
31
+ return {
32
+ error: err ? String(err) : i18nString(UIStrings.unknownErrorLoadingFile),
33
+ };
34
+ }
35
+ }
36
+ isServiceProject() {
37
+ return this.#isServiceProject;
38
+ }
39
+ async requestMetadata(uiSourceCode) {
40
+ const { metadata } = this.#uiSourceCodeToData.get(uiSourceCode);
41
+ return metadata;
42
+ }
43
+ canSetFileContent() {
44
+ return false;
45
+ }
46
+ async setFileContent(_uiSourceCode, _newContent, _isBase64) {
47
+ }
48
+ fullDisplayName(uiSourceCode) {
49
+ let parentPath = uiSourceCode.parentURL().replace(/^(?:https?|file)\:\/\//, '');
50
+ try {
51
+ parentPath = decodeURI(parentPath);
52
+ }
53
+ catch {
54
+ }
55
+ return parentPath + '/' + uiSourceCode.displayName(true);
56
+ }
57
+ mimeType(uiSourceCode) {
58
+ const { mimeType } = this.#uiSourceCodeToData.get(uiSourceCode);
59
+ return mimeType;
60
+ }
61
+ canRename() {
62
+ return false;
63
+ }
64
+ rename(_uiSourceCode, _newName, callback) {
65
+ callback(false);
66
+ }
67
+ excludeFolder(_path) {
68
+ }
69
+ canExcludeFolder(_path) {
70
+ return false;
71
+ }
72
+ async createFile(_path, _name, _content, _isBase64) {
73
+ return null;
74
+ }
75
+ canCreateFile() {
76
+ return false;
77
+ }
78
+ deleteFile(_uiSourceCode) {
79
+ }
80
+ remove() {
81
+ }
82
+ searchInFileContent(uiSourceCode, query, caseSensitive, isRegex) {
83
+ const { contentProvider } = this.#uiSourceCodeToData.get(uiSourceCode);
84
+ return contentProvider.searchInContent(query, caseSensitive, isRegex);
85
+ }
86
+ async findFilesMatchingSearchRequest(searchConfig, filesMatchingFileQuery, progress) {
87
+ const result = new Map();
88
+ progress.setTotalWork(filesMatchingFileQuery.length);
89
+ await Promise.all(filesMatchingFileQuery.map(searchInContent.bind(this)));
90
+ progress.done();
91
+ return result;
92
+ async function searchInContent(uiSourceCode) {
93
+ let allMatchesFound = true;
94
+ let matches = [];
95
+ for (const query of searchConfig.queries().slice()) {
96
+ const searchMatches = await this.searchInFileContent(uiSourceCode, query, !searchConfig.ignoreCase(), searchConfig.isRegex());
97
+ if (!searchMatches.length) {
98
+ allMatchesFound = false;
99
+ break;
100
+ }
101
+ matches = Platform.ArrayUtilities.mergeOrdered(matches, searchMatches, TextUtils.ContentProvider.SearchMatch.comparator);
102
+ }
103
+ if (allMatchesFound) {
104
+ result.set(uiSourceCode, matches);
105
+ }
106
+ progress.incrementWorked(1);
107
+ }
108
+ }
109
+ indexContent(progress) {
110
+ queueMicrotask(progress.done.bind(progress));
111
+ }
112
+ addUISourceCodeWithProvider(uiSourceCode, contentProvider, metadata, mimeType) {
113
+ this.#uiSourceCodeToData.set(uiSourceCode, { mimeType, metadata, contentProvider });
114
+ this.addUISourceCode(uiSourceCode);
115
+ }
116
+ addContentProvider(url, contentProvider, mimeType) {
117
+ const uiSourceCode = this.createUISourceCode(url, contentProvider.contentType());
118
+ this.addUISourceCodeWithProvider(uiSourceCode, contentProvider, null, mimeType);
119
+ return uiSourceCode;
120
+ }
121
+ reset() {
122
+ this.removeProject();
123
+ this.workspace().addProject(this);
124
+ }
125
+ dispose() {
126
+ this.removeProject();
127
+ }
128
+ }