Skip to content

Commit 03f27da

Browse files
committed
wip
1 parent 732267d commit 03f27da

File tree

5 files changed

+19
-38
lines changed

5 files changed

+19
-38
lines changed

package-lock.json

Lines changed: 2 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/devtools.d.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,3 +5,7 @@
55
*/
66

77
type CSSInJS = string & {_tag: 'CSS-in-JS'};
8+
declare module '*.css.js' {
9+
const styles: CSSInJS;
10+
export default styles;
11+
}

src/trace-processing/parse.ts

Lines changed: 8 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,11 @@
44
* SPDX-License-Identifier: Apache-2.0
55
*/
66

7-
import {PerformanceInsightFormatter} from '../../node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.js';
7+
import {PerformanceTraceFormatter} from '../../node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.js';
88
import * as TraceEngine from '../../node_modules/chrome-devtools-frontend/front_end/models/trace/trace.js';
99
import {logger} from '../logger.js';
10+
import {AgentFocus} from 'chrome-devtools-frontend/front_end/panels/timeline/utils/AIContext.js';
11+
import {EventsSerializer} from 'chrome-devtools-frontend/front_end/models/trace/EventsSerializer.js';
1012

1113
const engine = TraceEngine.TraceModel.Model.createWithAllHandlers();
1214

@@ -62,38 +64,9 @@ export async function parseRawTraceBuffer(
6264
// TODO(jactkfranklin): move the formatters from DevTools to use here.
6365
// This is a very temporary helper to output some text from the tool call to aid development.
6466
export function insightOutput(result: TraceResult): string {
65-
const mainNavigationId =
66-
result.parsedTrace.data.Meta.mainFrameNavigations.at(0)?.args.data
67-
?.navigationId;
68-
if (!mainNavigationId) {
69-
return '';
70-
}
71-
72-
let text = '';
73-
const insightsForNav = result.insights.get(mainNavigationId);
74-
if (!insightsForNav) {
75-
text += 'No Performance insights were found for this trace.';
76-
return text;
77-
}
78-
79-
const failingInsightKeys = Object.keys(insightsForNav.model).filter(
80-
insightKey => {
81-
const key = insightKey as keyof TraceEngine.Insights.Types.InsightModels;
82-
const data = insightsForNav.model[key] ?? null;
83-
return data?.state === 'fail';
84-
},
85-
) as Array<keyof TraceEngine.Insights.Types.InsightModels>;
86-
logger(`Found failing Insight keys: ${failingInsightKeys.join(', ')}`);
87-
88-
for (const failingKey of failingInsightKeys) {
89-
const modelData = insightsForNav.model[failingKey];
90-
const formatter = new PerformanceInsightFormatter(
91-
result.parsedTrace,
92-
modelData,
93-
);
94-
95-
const output = formatter.formatInsight();
96-
text += `${output}\n`;
97-
}
98-
return text;
67+
const focus = AgentFocus.full(result.parsedTrace);
68+
const serializer = new EventsSerializer();
69+
const formatter = new PerformanceTraceFormatter(focus, serializer);
70+
const output = formatter.formatTraceSummary();
71+
return output;
9972
}

tests/trace-processing/parse.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ describe('Trace parsing', async () => {
1919
assert.ok(result?.insights);
2020
});
2121

22-
it('can format results of a trace', async () => {
22+
it.only('can format results of a trace', async () => {
2323
const rawData = loadTraceAsBuffer('web-dev-with-commit.json.gz');
2424
const result = await parseRawTraceBuffer(rawData);
2525
assert.ok(result?.parsedTrace);

tsconfig.json

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,9 @@
2424
"node_modules/chrome-devtools-frontend/front_end/models/logs",
2525
"node_modules/chrome-devtools-frontend/front_end/models/text_utils",
2626
"node_modules/chrome-devtools-frontend/front_end/models/network_time_calculator",
27+
"node_modules/chrome-devtools-frontend/front_end/models/crux-manager",
2728
"node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceInsightFormatter.ts",
29+
"node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/PerformanceTraceFormatter.ts",
2830
"node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/NetworkRequestFormatter.ts",
2931
"node_modules/chrome-devtools-frontend/front_end/models/ai_assistance/data_formatters/UnitFormatters.ts",
3032
"node_modules/chrome-devtools-frontend/front_end/core/common",
@@ -33,6 +35,8 @@
3335
"node_modules/chrome-devtools-frontend/front_end/core/host",
3436
"node_modules/chrome-devtools-frontend/front_end/core/platform",
3537
"node_modules/chrome-devtools-frontend/front_end/models/cpu_profile",
38+
"node_modules/chrome-devtools-frontend/front_end/panels/timeline/utils",
39+
"node_modules/chrome-devtools-frontend/front_end/ui/legacy/theme_support",
3640
"node_modules/chrome-devtools-frontend/front_end/generated",
3741
"node_modules/chrome-devtools-frontend/front_end/third_party/legacy-javascript",
3842
"node_modules/chrome-devtools-frontend/front_end/third_party/source-map-scopes-codec",

0 commit comments

Comments
 (0)