@@ -24,11 +24,12 @@ import {
2424 CONDITIONS_KEY_NAME ,
2525 CLIENT_FILTERS_KEY_NAME
2626} from "./featureManagement/constants.js" ;
27- import { FM_PACKAGE_NAME } from "./requestTracing/constants.js" ;
27+ import { FM_PACKAGE_NAME , AI_MIME_PROFILE , AI_CHAT_COMPLETION_MIME_PROFILE } from "./requestTracing/constants.js" ;
2828import { AzureKeyVaultKeyValueAdapter } from "./keyvault/AzureKeyVaultKeyValueAdapter.js" ;
2929import { RefreshTimer } from "./refresh/RefreshTimer.js" ;
3030import { RequestTracingOptions , getConfigurationSettingWithTrace , listConfigurationSettingsWithTrace , requestTracingEnabled } from "./requestTracing/utils.js" ;
3131import { FeatureFlagTracingOptions } from "./requestTracing/FeatureFlagTracingOptions.js" ;
32+ import { AIConfigurationTracingOptions } from "./requestTracing/AIConfigurationTracingOptions.js" ;
3233import { KeyFilter , LabelFilter , SettingSelector } from "./types.js" ;
3334import { ConfigurationClientManager } from "./ConfigurationClientManager.js" ;
3435
@@ -58,6 +59,7 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
5859 #isFailoverRequest: boolean = false ;
5960 #featureFlagTracing: FeatureFlagTracingOptions | undefined ;
6061 #fmVersion: string | undefined ;
62+ #aiConfigurationTracing: AIConfigurationTracingOptions | undefined ;
6163
6264 // Refresh
6365 #refreshInProgress: boolean = false ;
@@ -178,7 +180,8 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
178180 replicaCount : this . #clientManager. getReplicaCount ( ) ,
179181 isFailoverRequest : this . #isFailoverRequest,
180182 featureFlagTracing : this . #featureFlagTracing,
181- fmVersion : this . #fmVersion
183+ fmVersion : this . #fmVersion,
184+ aiConfigurationTracing : this . #aiConfigurationTracing
182185 } ;
183186 }
184187
@@ -634,11 +637,22 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
634637 }
635638
636639 async #processKeyValues( setting : ConfigurationSetting < string > ) : Promise < [ string , unknown ] > {
640+ this . #setAIConfigurationTracing( setting ) ;
641+
637642 const [ key , value ] = await this . #processAdapters( setting ) ;
638643 const trimmedKey = this . #keyWithPrefixesTrimmed( key ) ;
639644 return [ trimmedKey , value ] ;
640645 }
641646
647+ #setAIConfigurationTracing( setting : ConfigurationSetting < string > ) : void {
648+ if ( this . #requestTracingEnabled && this . #aiConfigurationTracing !== undefined ) {
649+ // Reset old AI configuration tracing in order to track the information present in the current response from server.
650+ this . #aiConfigurationTracing. reset ( ) ;
651+
652+
653+ }
654+ }
655+
642656 async #processAdapters( setting : ConfigurationSetting < string > ) : Promise < [ string , unknown ] > {
643657 for ( const adapter of this . #adapters) {
644658 if ( adapter . canProcess ( setting ) ) {
@@ -675,7 +689,24 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
675689 } ;
676690 }
677691
692+ this . #setFeatureFlagTracing( featureFlag ) ;
693+
694+ return featureFlag ;
695+ }
696+
697+ #createFeatureFlagReference( setting : ConfigurationSetting < string > ) : string {
698+ let featureFlagReference = `${ this . #clientManager. endpoint . origin } /kv/${ setting . key } ` ;
699+ if ( setting . label && setting . label . trim ( ) . length !== 0 ) {
700+ featureFlagReference += `?label=${ setting . label } ` ;
701+ }
702+ return featureFlagReference ;
703+ }
704+
705+ #setFeatureFlagTracing( featureFlag : any ) : void {
678706 if ( this . #requestTracingEnabled && this . #featureFlagTracing !== undefined ) {
707+ // Reset old feature flag tracing in order to track the information present in the current response from server.
708+ this . #featureFlagTracing. reset ( ) ;
709+
679710 if ( featureFlag [ CONDITIONS_KEY_NAME ] &&
680711 featureFlag [ CONDITIONS_KEY_NAME ] [ CLIENT_FILTERS_KEY_NAME ] &&
681712 Array . isArray ( featureFlag [ CONDITIONS_KEY_NAME ] [ CLIENT_FILTERS_KEY_NAME ] ) ) {
@@ -693,16 +724,6 @@ export class AzureAppConfigurationImpl implements AzureAppConfiguration {
693724 this . #featureFlagTracing. usesSeed = true ;
694725 }
695726 }
696-
697- return featureFlag ;
698- }
699-
700- #createFeatureFlagReference( setting : ConfigurationSetting < string > ) : string {
701- let featureFlagReference = `${ this . #clientManager. endpoint . origin } /kv/${ setting . key } ` ;
702- if ( setting . label && setting . label . trim ( ) . length !== 0 ) {
703- featureFlagReference += `?label=${ setting . label } ` ;
704- }
705- return featureFlagReference ;
706727 }
707728}
708729
0 commit comments