@@ -6,6 +6,7 @@ import * as Host from '../../../core/host/host.js';
66import * as i18n from '../../../core/i18n/i18n.js' ;
77import * as Root from '../../../core/root/root.js' ;
88import type * as SDK from '../../../core/sdk/sdk.js' ;
9+ import type * as NetworkTimeCalculator from '../../network_time_calculator/network_time_calculator.js' ;
910import { NetworkRequestFormatter } from '../data_formatters/NetworkRequestFormatter.js' ;
1011
1112import {
@@ -93,10 +94,13 @@ const lockedString = i18n.i18n.lockedString;
9394
9495export class RequestContext extends ConversationContext < SDK . NetworkRequest . NetworkRequest > {
9596 #request: SDK . NetworkRequest . NetworkRequest ;
97+ #calculator: NetworkTimeCalculator . NetworkTransferTimeCalculator ;
9698
97- constructor ( request : SDK . NetworkRequest . NetworkRequest ) {
99+ constructor (
100+ request : SDK . NetworkRequest . NetworkRequest , calculator : NetworkTimeCalculator . NetworkTransferTimeCalculator ) {
98101 super ( ) ;
99102 this . #request = request ;
103+ this . #calculator = calculator ;
100104 }
101105
102106 override getOrigin ( ) : string {
@@ -107,6 +111,10 @@ export class RequestContext extends ConversationContext<SDK.NetworkRequest.Netwo
107111 return this . #request;
108112 }
109113
114+ get calculator ( ) : NetworkTimeCalculator . NetworkTimeCalculator {
115+ return this . #calculator;
116+ }
117+
110118 override getTitle ( ) : string {
111119 return this . #request. name ( ) ;
112120 }
@@ -133,34 +141,33 @@ export class NetworkAgent extends AiAgent<SDK.NetworkRequest.NetworkRequest> {
133141 }
134142
135143 async *
136- handleContextDetails ( selectedNetworkRequest : ConversationContext < SDK . NetworkRequest . NetworkRequest > | null ) :
137- AsyncGenerator < ContextResponse , void , void > {
144+ handleContextDetails ( selectedNetworkRequest : RequestContext | null ) : AsyncGenerator < ContextResponse , void , void > {
138145 if ( ! selectedNetworkRequest ) {
139146 return ;
140147 }
141148
142149 yield {
143150 type : ResponseType . CONTEXT ,
144151 title : lockedString ( UIStringsNotTranslate . analyzingNetworkData ) ,
145- details : createContextDetailsForNetworkAgent ( selectedNetworkRequest . getItem ( ) ) ,
152+ details : createContextDetailsForNetworkAgent ( selectedNetworkRequest ) ,
146153 } ;
147154 }
148155
149- override async enhanceQuery (
150- query : string ,
151- selectedNetworkRequest : ConversationContext < SDK . NetworkRequest . NetworkRequest > | null ) : Promise < string > {
156+ override async enhanceQuery ( query : string , selectedNetworkRequest : RequestContext | null ) : Promise < string > {
152157 const networkEnchantmentQuery = selectedNetworkRequest ?
153158 `# Selected network request \n${
154- new NetworkRequestFormatter ( selectedNetworkRequest . getItem ( ) )
159+ new NetworkRequestFormatter ( selectedNetworkRequest . getItem ( ) , selectedNetworkRequest . calculator )
155160 . formatNetworkRequest ( ) } \n\n# User request\n\n` :
156161 '' ;
157162 return `${ networkEnchantmentQuery } ${ query } ` ;
158163 }
159164}
160165
161- function createContextDetailsForNetworkAgent ( request : SDK . NetworkRequest . NetworkRequest ) :
162- [ ContextDetail , ...ContextDetail [ ] ] {
163- const formatter = new NetworkRequestFormatter ( request ) ;
166+ function createContextDetailsForNetworkAgent (
167+ selectedNetworkRequest : RequestContext ,
168+ ) : [ ContextDetail , ...ContextDetail [ ] ] {
169+ const request = selectedNetworkRequest . getItem ( ) ;
170+ const formatter = new NetworkRequestFormatter ( request , selectedNetworkRequest . calculator ) ;
164171 const requestContextDetail : ContextDetail = {
165172 title : lockedString ( UIStringsNotTranslate . request ) ,
166173 text : lockedString ( UIStringsNotTranslate . requestUrl ) + ': ' + request . url ( ) + '\n\n' +
0 commit comments