Skip to content

Commit 3fb5584

Browse files
paulirishDevtools-frontend LUCI CQ
authored andcommitted
[DrJones/Perf] Rename several methods for clarity
No behaviour change Bug:370436840 Change-Id: Id1910cce1e1841bcd05460abd4c7117df287c54f Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5950603 Auto-Submit: Paul Irish <[email protected]> Reviewed-by: Connor Clark <[email protected]> Commit-Queue: Connor Clark <[email protected]> Commit-Queue: Paul Irish <[email protected]>
1 parent 9c5dfce commit 3fb5584

File tree

14 files changed

+70
-75
lines changed

14 files changed

+70
-75
lines changed

front_end/models/trace/helpers/TreeHelpers.test.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -473,17 +473,16 @@ describe('TreeHelpers', () => {
473473
assert.exists(rootNode);
474474
assert.exists(selectedNode);
475475

476-
const traceEntryTreeForAI = Trace.Helpers.TreeHelpers.TraceEntryNodeForAI.fromSelectedEntryNode(selectedNode);
477-
const actualSelectedNode =
478-
Trace.Helpers.TreeHelpers.TraceEntryNodeForAI.getSelectedNodeForTraceEntryTreeForAI(traceEntryTreeForAI);
476+
const traceEntryTreeForAI = Trace.Helpers.TreeHelpers.AINode.fromEntryNode(selectedNode);
477+
const actualSelectedNode = Trace.Helpers.TreeHelpers.AINode.getSelectedNodeWithinTree(traceEntryTreeForAI);
479478

480479
assert.exists(traceEntryTreeForAI);
481480
assert.exists(actualSelectedNode);
482481

483482
// delete for smaller deepStrictEqual comparison
484483
actualSelectedNode.children = traceEntryTreeForAI.children = [];
485484

486-
const expectedTraceEntryTree = new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI(
485+
const expectedTraceEntryTree = new Trace.Helpers.TreeHelpers.AINode(
487486
'EvaluateScript',
488487
Trace.Types.Timing.MilliSeconds(0),
489488
Trace.Types.Timing.MilliSeconds(0.5),
@@ -494,7 +493,7 @@ describe('TreeHelpers', () => {
494493
expectedTraceEntryTree.children = [];
495494
assert.deepStrictEqual(traceEntryTreeForAI, expectedTraceEntryTree);
496495

497-
const expectedselectedNodeForAI = new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI(
496+
const expectedselectedNodeForAI = new Trace.Helpers.TreeHelpers.AINode(
498497
'V8.ParseFunction',
499498
Trace.Types.Timing.MilliSeconds(0.012),
500499
Trace.Types.Timing.MilliSeconds(0.001),

front_end/models/trace/helpers/TreeHelpers.ts

Lines changed: 25 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@ export interface TraceEntryTree {
2727
maxDepth: number;
2828
}
2929

30+
/** Node in the graph that defines all parent/child relationships. */
3031
export interface TraceEntryNode {
3132
entry: Types.Events.Event;
3233
depth: number;
@@ -36,77 +37,75 @@ export interface TraceEntryNode {
3637
children: TraceEntryNode[];
3738
}
3839

39-
/**
40-
* Represents a node in a trace entry tree, simplified for AI Assistance processing.
41-
*/
42-
export class TraceEntryNodeForAI {
40+
/** Node in a graph simplified for AI Assistance processing. The graph mirrors the TraceEntryNode one. */
41+
export class AINode {
4342
id?: TraceEntryNodeId;
4443
domain?: string;
4544
line?: number;
4645
column?: number;
4746
function?: string;
48-
children?: TraceEntryNodeForAI[];
47+
children?: AINode[];
4948
selected?: boolean;
5049

5150
constructor(
5251
public type: string, public start: Types.Timing.MilliSeconds, public end?: Types.Timing.MilliSeconds,
5352
public totalTime?: Types.Timing.MilliSeconds, public selfTime?: Types.Timing.MilliSeconds) {
5453
}
5554

56-
static #fromTraceEvent(event: Types.Events.Event): TraceEntryNodeForAI {
55+
static #fromTraceEvent(event: Types.Events.Event): AINode {
5756
const start = microSecondsToMilliseconds(event.ts);
5857
const duration = event.dur === undefined ? undefined : microSecondsToMilliseconds(event.dur);
59-
const nodeForAI = new TraceEntryNodeForAI(event.name, start, duration);
58+
const aiNode = new AINode(event.name, start, duration);
6059
if (Types.Events.isProfileCall(event)) {
61-
nodeForAI.function = event.callFrame.functionName || '(anonymous)';
60+
aiNode.function = event.callFrame.functionName || '(anonymous)';
6261
try {
6362
const url = new URL(event.callFrame.url);
64-
nodeForAI.domain = url.origin;
65-
nodeForAI.line = event.callFrame.lineNumber;
66-
nodeForAI.column = event.callFrame.columnNumber;
63+
aiNode.domain = url.origin;
64+
aiNode.line = event.callFrame.lineNumber;
65+
aiNode.column = event.callFrame.columnNumber;
6766
} catch (e) {
6867
}
6968
}
70-
return nodeForAI;
69+
return aiNode;
7170
}
7271

7372
/**
74-
* Builds a TraceEntryNodeForAI tree from a TraceEntryNode tree and marks the selected node.
73+
* Builds a AINode tree from a TraceEntryNode tree and marks the selected node.
7574
*/
76-
static #fromTraceEntryTree(node: TraceEntryNode, selectedEntryNode: TraceEntryNode): TraceEntryNodeForAI {
77-
const nodeForAI = TraceEntryNodeForAI.#fromTraceEvent(node.entry);
78-
nodeForAI.id = node.id;
79-
if (node === selectedEntryNode) {
80-
nodeForAI.selected = true;
75+
static #fromEntryNodeAndTree(node: TraceEntryNode, selectedNode: TraceEntryNode): AINode {
76+
const aiNode = AINode.#fromTraceEvent(node.entry);
77+
aiNode.id = node.id;
78+
if (node === selectedNode) {
79+
aiNode.selected = true;
8180
}
82-
nodeForAI.selfTime = node.selfTime === undefined ? undefined : microSecondsToMilliseconds(node.selfTime);
81+
aiNode.selfTime = node.selfTime === undefined ? undefined : microSecondsToMilliseconds(node.selfTime);
8382
for (const child of node.children) {
84-
nodeForAI.children ??= [];
85-
nodeForAI.children.push(TraceEntryNodeForAI.#fromTraceEntryTree(child, selectedEntryNode));
83+
aiNode.children ??= [];
84+
aiNode.children.push(AINode.#fromEntryNodeAndTree(child, selectedNode));
8685
}
87-
return nodeForAI;
86+
return aiNode;
8887
}
8988

90-
static fromSelectedEntryNode(selectedEntryNode: TraceEntryNode): TraceEntryNodeForAI {
89+
static fromEntryNode(selectedNode: TraceEntryNode): AINode {
9190
function getRoot(node: TraceEntryNode): TraceEntryNode {
9291
if (node.parent) {
9392
return getRoot(node.parent);
9493
}
9594
return node;
9695
}
9796

98-
return TraceEntryNodeForAI.#fromTraceEntryTree(getRoot(selectedEntryNode), selectedEntryNode);
97+
return AINode.#fromEntryNodeAndTree(getRoot(selectedNode), selectedNode);
9998
}
10099

101-
static getSelectedNodeForTraceEntryTreeForAI(node: TraceEntryNodeForAI): TraceEntryNodeForAI|null {
100+
static getSelectedNodeWithinTree(node: AINode): AINode|null {
102101
if (node.selected) {
103102
return node;
104103
}
105104
if (!node.children) {
106105
return null;
107106
}
108107
for (const child of node.children) {
109-
const returnedNode = TraceEntryNodeForAI.getSelectedNodeForTraceEntryTreeForAI(child);
108+
const returnedNode = AINode.getSelectedNodeWithinTree(child);
110109
if (returnedNode) {
111110
return returnedNode;
112111
}

front_end/panels/freestyler/DrJonesPerformanceAgent.test.ts

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -120,13 +120,12 @@ describeWithEnvironment('DrJonesPerformanceAgent', () => {
120120
});
121121
});
122122
describe('run', () => {
123-
const rootNodeEntry =
124-
new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI('RunTask', Trace.Types.Timing.MilliSeconds(0));
125-
const node1 = new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI('ProfileCall', Trace.Types.Timing.MilliSeconds(1));
126-
const node2 = new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI('ProfileCall', Trace.Types.Timing.MilliSeconds(2));
127-
const node3 = new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI('ProfileCall', Trace.Types.Timing.MilliSeconds(10));
128-
const node4 = new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI('ProfileCall', Trace.Types.Timing.MilliSeconds(11));
129-
const node5 = new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI('ProfileCall', Trace.Types.Timing.MilliSeconds(15));
123+
const rootNodeEntry = new Trace.Helpers.TreeHelpers.AINode('RunTask', Trace.Types.Timing.MilliSeconds(0));
124+
const node1 = new Trace.Helpers.TreeHelpers.AINode('ProfileCall', Trace.Types.Timing.MilliSeconds(1));
125+
const node2 = new Trace.Helpers.TreeHelpers.AINode('ProfileCall', Trace.Types.Timing.MilliSeconds(2));
126+
const node3 = new Trace.Helpers.TreeHelpers.AINode('ProfileCall', Trace.Types.Timing.MilliSeconds(10));
127+
const node4 = new Trace.Helpers.TreeHelpers.AINode('ProfileCall', Trace.Types.Timing.MilliSeconds(11));
128+
const node5 = new Trace.Helpers.TreeHelpers.AINode('ProfileCall', Trace.Types.Timing.MilliSeconds(15));
130129

131130
beforeEach(() => {
132131
rootNodeEntry.children = [node1, node3];

front_end/panels/freestyler/DrJonesPerformanceAgent.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@ const lockedString = i18n.i18n.lockedString;
7575
* One agent instance handles one conversation. Create a new agent
7676
* instance for a new conversation.
7777
*/
78-
export class DrJonesPerformanceAgent extends AiAgent<Trace.Helpers.TreeHelpers.TraceEntryNodeForAI> {
78+
export class DrJonesPerformanceAgent extends AiAgent<Trace.Helpers.TreeHelpers.AINode> {
7979
readonly preamble = preamble;
8080
readonly clientFeature = Host.AidaClient.ClientFeature.CHROME_DRJONES_PERFORMANCE_AGENT;
8181
get userTier(): string|undefined {
@@ -94,7 +94,7 @@ export class DrJonesPerformanceAgent extends AiAgent<Trace.Helpers.TreeHelpers.T
9494
}
9595

9696
async *
97-
handleContextDetails(selectedStackTrace: Trace.Helpers.TreeHelpers.TraceEntryNodeForAI|null):
97+
handleContextDetails(selectedStackTrace: Trace.Helpers.TreeHelpers.AINode|null):
9898
AsyncGenerator<ContextResponse, void, void> {
9999
yield {
100100
type: ResponseType.CONTEXT,
@@ -103,7 +103,7 @@ export class DrJonesPerformanceAgent extends AiAgent<Trace.Helpers.TreeHelpers.T
103103
};
104104
}
105105

106-
override async enhanceQuery(query: string, selectedStackTrace: Trace.Helpers.TreeHelpers.TraceEntryNodeForAI|null):
106+
override async enhanceQuery(query: string, selectedStackTrace: Trace.Helpers.TreeHelpers.AINode|null):
107107
Promise<string> {
108108
const networkEnchantmentQuery =
109109
selectedStackTrace ? `# Selected stack trace\n${JSON.stringify(selectedStackTrace)}\n\n# User request\n\n` : '';
@@ -117,8 +117,8 @@ export class DrJonesPerformanceAgent extends AiAgent<Trace.Helpers.TreeHelpers.T
117117
}
118118
}
119119

120-
function createContextDetailsForDrJonesPerformanceAgent(
121-
selectedStackTrace: Trace.Helpers.TreeHelpers.TraceEntryNodeForAI|null): [ContextDetail, ...ContextDetail[]] {
120+
function createContextDetailsForDrJonesPerformanceAgent(selectedStackTrace: Trace.Helpers.TreeHelpers.AINode|
121+
null): [ContextDetail, ...ContextDetail[]] {
122122
return [
123123
{
124124
title: 'Selected stack trace',

front_end/panels/freestyler/FreestylerPanel.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -433,15 +433,15 @@ describeWithEnvironment('FreestylerPanel', () => {
433433

434434
describe('Trace.Helpers.TreeHelpers.TraceEntryNodeForAI flavor changes for selected stack trace', () => {
435435
it('should set the selected stack trace when the widget is shown', () => {
436-
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.TraceEntryNodeForAI, null);
436+
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.AINode, null);
437437
panel = new Freestyler.FreestylerPanel(mockView, {
438438
aidaClient: getTestAidaClient(),
439439
aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
440440
syncInfo: getTestSyncInfo(),
441441
});
442442

443443
const traceEntryNode = {};
444-
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.TraceEntryNodeForAI, traceEntryNode);
444+
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.AINode, traceEntryNode);
445445
panel.markAsRoot();
446446
panel.show(document.body);
447447

@@ -451,7 +451,7 @@ describeWithEnvironment('FreestylerPanel', () => {
451451
});
452452

453453
it('should set selected stack trace when the TraceEntryNodeForAI flavor changes', () => {
454-
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.TraceEntryNodeForAI, null);
454+
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.AINode, null);
455455
panel = new Freestyler.FreestylerPanel(mockView, {
456456
aidaClient: getTestAidaClient(),
457457
aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
@@ -464,23 +464,23 @@ describeWithEnvironment('FreestylerPanel', () => {
464464
}));
465465

466466
const traceEntryNode = {};
467-
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.TraceEntryNodeForAI, traceEntryNode);
467+
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.AINode, traceEntryNode);
468468

469469
sinon.assert.calledWith(mockView, sinon.match({
470470
selectedStackTrace: traceEntryNode,
471471
}));
472472
});
473473

474474
it('should not handle TraceEntryNodeForAI flavor changes if the widget is not shown', () => {
475-
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.TraceEntryNodeForAI, null);
475+
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.AINode, null);
476476
panel = new Freestyler.FreestylerPanel(mockView, {
477477
aidaClient: getTestAidaClient(),
478478
aidaAvailability: Host.AidaClient.AidaAccessPreconditions.AVAILABLE,
479479
syncInfo: getTestSyncInfo(),
480480
});
481481

482482
const traceEntryNode = {};
483-
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.TraceEntryNodeForAI, traceEntryNode);
483+
UI.Context.Context.instance().setFlavor(Trace.Helpers.TreeHelpers.AINode, traceEntryNode);
484484

485485
sinon.assert.notCalled(mockView);
486486
});

front_end/panels/freestyler/FreestylerPanel.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -274,7 +274,7 @@ export class FreestylerPanel extends UI.Panel.Panel {
274274
inspectElementToggled: this.#toggleSearchElementAction.toggled(),
275275
selectedElement: selectedElementFilter(UI.Context.Context.instance().flavor(SDK.DOMModel.DOMNode)),
276276
selectedNetworkRequest: UI.Context.Context.instance().flavor(SDK.NetworkRequest.NetworkRequest),
277-
selectedStackTrace: UI.Context.Context.instance().flavor(Trace.Helpers.TreeHelpers.TraceEntryNodeForAI),
277+
selectedStackTrace: UI.Context.Context.instance().flavor(Trace.Helpers.TreeHelpers.AINode),
278278
selectedFile: UI.Context.Context.instance().flavor(Workspace.UISourceCode.UISourceCode),
279279
};
280280
this.doUpdate();
@@ -288,7 +288,7 @@ export class FreestylerPanel extends UI.Panel.Panel {
288288
UI.Context.Context.instance().addFlavorChangeListener(
289289
SDK.NetworkRequest.NetworkRequest, this.#handleNetworkRequestFlavorChange);
290290
UI.Context.Context.instance().addFlavorChangeListener(
291-
Trace.Helpers.TreeHelpers.TraceEntryNodeForAI, this.#handleTraceEntryNodeFlavorChange);
291+
Trace.Helpers.TreeHelpers.AINode, this.#handleTraceEntryNodeFlavorChange);
292292
UI.Context.Context.instance().addFlavorChangeListener(
293293
Workspace.UISourceCode.UISourceCode, this.#handleUISourceCodeFlavorChange);
294294
}
@@ -303,7 +303,7 @@ export class FreestylerPanel extends UI.Panel.Panel {
303303
UI.Context.Context.instance().removeFlavorChangeListener(
304304
SDK.NetworkRequest.NetworkRequest, this.#handleNetworkRequestFlavorChange);
305305
UI.Context.Context.instance().removeFlavorChangeListener(
306-
Trace.Helpers.TreeHelpers.TraceEntryNodeForAI, this.#handleTraceEntryNodeFlavorChange);
306+
Trace.Helpers.TreeHelpers.AINode, this.#handleTraceEntryNodeFlavorChange);
307307
UI.Context.Context.instance().removeFlavorChangeListener(
308308
Workspace.UISourceCode.UISourceCode, this.#handleUISourceCodeFlavorChange);
309309
}
@@ -352,7 +352,7 @@ export class FreestylerPanel extends UI.Panel.Panel {
352352
};
353353

354354
#handleTraceEntryNodeFlavorChange =
355-
(ev: Common.EventTarget.EventTargetEvent<Trace.Helpers.TreeHelpers.TraceEntryNodeForAI>): void => {
355+
(ev: Common.EventTarget.EventTargetEvent<Trace.Helpers.TreeHelpers.AINode>): void => {
356356
if (this.#viewProps.selectedStackTrace === ev.data) {
357357
return;
358358
}

front_end/panels/freestyler/components/FreestylerChatUi.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ css
5656
selectedElement: {} as unknown as SDK.DOMModel.DOMNode,
5757
selectedFile: null,
5858
selectedNetworkRequest: {} as unknown as SDK.NetworkRequest.NetworkRequest,
59-
selectedStackTrace: {} as unknown as Trace.Helpers.TreeHelpers.TraceEntryNodeForAI,
59+
selectedStackTrace: {} as unknown as Trace.Helpers.TreeHelpers.AINode,
6060
isLoading: false,
6161
canShowFeedbackForm: false,
6262
userInfo: {},

front_end/panels/freestyler/components/FreestylerChatUi.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -312,7 +312,7 @@ export interface Props {
312312
selectedElement: SDK.DOMModel.DOMNode|null;
313313
selectedFile: Workspace.UISourceCode.UISourceCode|null;
314314
selectedNetworkRequest: SDK.NetworkRequest.NetworkRequest|null;
315-
selectedStackTrace: Trace.Helpers.TreeHelpers.TraceEntryNodeForAI|null;
315+
selectedStackTrace: Trace.Helpers.TreeHelpers.AINode|null;
316316
isLoading: boolean;
317317
canShowFeedbackForm: boolean;
318318
userInfo: Pick<Host.InspectorFrontendHostAPI.SyncInformation, 'accountImage'|'accountFullName'>;
@@ -884,8 +884,7 @@ export class FreestylerChatUi extends HTMLElement {
884884
return html`${LitHtml.nothing}`;
885885
}
886886

887-
const selectedNode = Trace.Helpers.TreeHelpers.TraceEntryNodeForAI.getSelectedNodeForTraceEntryTreeForAI(
888-
this.#props.selectedStackTrace);
887+
const selectedNode = Trace.Helpers.TreeHelpers.AINode.getSelectedNodeWithinTree(this.#props.selectedStackTrace);
889888

890889
if (!selectedNode) {
891890
return html`${LitHtml.nothing}`;

front_end/panels/timeline/EntriesFilter.test.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -730,18 +730,17 @@ describeWithEnvironment('EntriesFilter', function() {
730730
throw new Error('EntriesFilter does not exist');
731731
}
732732

733-
const traceEntryTree = stack.getTraceEntryTreeForAI(firstFooCallEntry);
733+
const traceEntryTree = stack.getAIEventNodeTree(firstFooCallEntry);
734734

735735
assert.exists(traceEntryTree);
736736

737-
const selectedNode =
738-
Trace.Helpers.TreeHelpers.TraceEntryNodeForAI.getSelectedNodeForTraceEntryTreeForAI(traceEntryTree);
737+
const selectedNode = Trace.Helpers.TreeHelpers.AINode.getSelectedNodeWithinTree(traceEntryTree);
739738
assert.exists(selectedNode);
740739

741740
// delete for smaller deepStrictEqual comparison
742741
selectedNode.children = traceEntryTree.children = [];
743742

744-
const expectedTraceEntryTree = new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI(
743+
const expectedTraceEntryTree = new Trace.Helpers.TreeHelpers.AINode(
745744
'RunTask',
746745
Trace.Types.Timing.MilliSeconds(336772948.813),
747746
Trace.Types.Timing.MilliSeconds(4.614),
@@ -752,7 +751,7 @@ describeWithEnvironment('EntriesFilter', function() {
752751
expectedTraceEntryTree.children = [];
753752
assert.deepStrictEqual(traceEntryTree, expectedTraceEntryTree);
754753

755-
const expectedselectedNode = new Trace.Helpers.TreeHelpers.TraceEntryNodeForAI(
754+
const expectedselectedNode = new Trace.Helpers.TreeHelpers.AINode(
756755
'ProfileCall',
757756
Trace.Types.Timing.MilliSeconds(336772953.044),
758757
Trace.Types.Timing.MilliSeconds(0.233),

front_end/panels/timeline/EntriesFilter.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,13 +80,13 @@ export class EntriesFilter {
8080
* Returns the trace entry tree for the specified event, simplified for input to AI Assistance.
8181
* The tree is rooted at the top-level task that contains the event, with the node for specified event marked as selected.
8282
*/
83-
getTraceEntryTreeForAI(entry: Trace.Types.Events.Event): Trace.Helpers.TreeHelpers.TraceEntryNodeForAI|null {
84-
const entryNode = this.#entryToNode.get(entry);
85-
if (!entryNode) {
83+
getAIEventNodeTree(entry: Trace.Types.Events.Event): Trace.Helpers.TreeHelpers.AINode|null {
84+
const node = this.#entryToNode.get(entry);
85+
if (!node) {
8686
return null;
8787
}
8888

89-
return Trace.Helpers.TreeHelpers.TraceEntryNodeForAI.fromSelectedEntryNode(entryNode);
89+
return Trace.Helpers.TreeHelpers.AINode.fromEntryNode(node);
9090
}
9191

9292
/**

0 commit comments

Comments
 (0)