@@ -73,9 +73,9 @@ export interface ClientConfig {
73
73
callerOptions ?: AsyncCallerParams ;
74
74
timeout_ms ?: number ;
75
75
webUrl ?: string ;
76
- anonymizer ?: ( values : KVMap ) => KVMap ;
77
- hideInputs ?: boolean | ( ( inputs : KVMap ) => KVMap ) ;
78
- hideOutputs ?: boolean | ( ( outputs : KVMap ) => KVMap ) ;
76
+ anonymizer ?: ( values : KVMap ) => KVMap | Promise < KVMap > ;
77
+ hideInputs ?: boolean | ( ( inputs : KVMap ) => KVMap | Promise < KVMap > ) ;
78
+ hideOutputs ?: boolean | ( ( outputs : KVMap ) => KVMap | Promise < KVMap > ) ;
79
79
autoBatchTracing ?: boolean ;
80
80
batchSizeBytesLimit ?: number ;
81
81
blockOnRootRunFinalization ?: boolean ;
@@ -488,9 +488,9 @@ export class Client implements LangSmithTracingClientInterface {
488
488
489
489
private _tenantId : string | null = null ;
490
490
491
- private hideInputs ?: boolean | ( ( inputs : KVMap ) => KVMap ) ;
491
+ private hideInputs ?: boolean | ( ( inputs : KVMap ) => KVMap | Promise < KVMap > ) ;
492
492
493
- private hideOutputs ?: boolean | ( ( outputs : KVMap ) => KVMap ) ;
493
+ private hideOutputs ?: boolean | ( ( outputs : KVMap ) => KVMap | Promise < KVMap > ) ;
494
494
495
495
private tracingSampleRate ?: number ;
496
496
@@ -633,7 +633,7 @@ export class Client implements LangSmithTracingClientInterface {
633
633
return headers ;
634
634
}
635
635
636
- private processInputs ( inputs : KVMap ) : KVMap {
636
+ private async processInputs ( inputs : KVMap ) : Promise < KVMap > {
637
637
if ( this . hideInputs === false ) {
638
638
return inputs ;
639
639
}
@@ -646,7 +646,7 @@ export class Client implements LangSmithTracingClientInterface {
646
646
return inputs ;
647
647
}
648
648
649
- private processOutputs ( outputs : KVMap ) : KVMap {
649
+ private async processOutputs ( outputs : KVMap ) : Promise < KVMap > {
650
650
if ( this . hideOutputs === false ) {
651
651
return outputs ;
652
652
}
@@ -659,17 +659,21 @@ export class Client implements LangSmithTracingClientInterface {
659
659
return outputs ;
660
660
}
661
661
662
- private prepareRunCreateOrUpdateInputs ( run : RunUpdate ) : RunUpdate ;
663
- private prepareRunCreateOrUpdateInputs ( run : RunCreate ) : RunCreate ;
664
- private prepareRunCreateOrUpdateInputs (
662
+ private async prepareRunCreateOrUpdateInputs (
663
+ run : RunUpdate
664
+ ) : Promise < RunUpdate > ;
665
+ private async prepareRunCreateOrUpdateInputs (
666
+ run : RunCreate
667
+ ) : Promise < RunCreate > ;
668
+ private async prepareRunCreateOrUpdateInputs (
665
669
run : RunCreate | RunUpdate
666
- ) : RunCreate | RunUpdate {
670
+ ) : Promise < RunCreate | RunUpdate > {
667
671
const runParams = { ...run } ;
668
672
if ( runParams . inputs !== undefined ) {
669
- runParams . inputs = this . processInputs ( runParams . inputs ) ;
673
+ runParams . inputs = await this . processInputs ( runParams . inputs ) ;
670
674
}
671
675
if ( runParams . outputs !== undefined ) {
672
- runParams . outputs = this . processOutputs ( runParams . outputs ) ;
676
+ runParams . outputs = await this . processOutputs ( runParams . outputs ) ;
673
677
}
674
678
return runParams ;
675
679
}
@@ -980,7 +984,7 @@ export class Client implements LangSmithTracingClientInterface {
980
984
const session_name = run . project_name ;
981
985
delete run . project_name ;
982
986
983
- const runCreate : RunCreate = this . prepareRunCreateOrUpdateInputs ( {
987
+ const runCreate : RunCreate = await this . prepareRunCreateOrUpdateInputs ( {
984
988
session_name,
985
989
...run ,
986
990
start_time : run . start_time ?? Date . now ( ) ,
@@ -1026,14 +1030,16 @@ export class Client implements LangSmithTracingClientInterface {
1026
1030
if ( runCreates === undefined && runUpdates === undefined ) {
1027
1031
return ;
1028
1032
}
1029
- let preparedCreateParams =
1033
+ let preparedCreateParams = await Promise . all (
1030
1034
runCreates ?. map ( ( create ) =>
1031
1035
this . prepareRunCreateOrUpdateInputs ( create )
1032
- ) ?? [ ] ;
1033
- let preparedUpdateParams =
1036
+ ) ?? [ ]
1037
+ ) ;
1038
+ let preparedUpdateParams = await Promise . all (
1034
1039
runUpdates ?. map ( ( update ) =>
1035
1040
this . prepareRunCreateOrUpdateInputs ( update )
1036
- ) ?? [ ] ;
1041
+ ) ?? [ ]
1042
+ ) ;
1037
1043
1038
1044
if ( preparedCreateParams . length > 0 && preparedUpdateParams . length > 0 ) {
1039
1045
const createById = preparedCreateParams . reduce (
@@ -1125,7 +1131,7 @@ export class Client implements LangSmithTracingClientInterface {
1125
1131
let preparedCreateParams = [ ] ;
1126
1132
1127
1133
for ( const create of runCreates ?? [ ] ) {
1128
- const preparedCreate = this . prepareRunCreateOrUpdateInputs ( create ) ;
1134
+ const preparedCreate = await this . prepareRunCreateOrUpdateInputs ( create ) ;
1129
1135
if (
1130
1136
preparedCreate . id !== undefined &&
1131
1137
preparedCreate . attachments !== undefined
@@ -1137,7 +1143,9 @@ export class Client implements LangSmithTracingClientInterface {
1137
1143
}
1138
1144
let preparedUpdateParams = [ ] ;
1139
1145
for ( const update of runUpdates ?? [ ] ) {
1140
- preparedUpdateParams . push ( this . prepareRunCreateOrUpdateInputs ( update ) ) ;
1146
+ preparedUpdateParams . push (
1147
+ await this . prepareRunCreateOrUpdateInputs ( update )
1148
+ ) ;
1141
1149
}
1142
1150
1143
1151
// require trace_id and dotted_order
@@ -1322,11 +1330,11 @@ export class Client implements LangSmithTracingClientInterface {
1322
1330
public async updateRun ( runId : string , run : RunUpdate ) : Promise < void > {
1323
1331
assertUuid ( runId ) ;
1324
1332
if ( run . inputs ) {
1325
- run . inputs = this . processInputs ( run . inputs ) ;
1333
+ run . inputs = await this . processInputs ( run . inputs ) ;
1326
1334
}
1327
1335
1328
1336
if ( run . outputs ) {
1329
- run . outputs = this . processOutputs ( run . outputs ) ;
1337
+ run . outputs = await this . processOutputs ( run . outputs ) ;
1330
1338
}
1331
1339
// TODO: Untangle types
1332
1340
const data : UpdateRunParams = { ...run , id : runId } ;
0 commit comments