7
7
MessageType ,
8
8
BaseMessageChunk ,
9
9
BaseMessageFields ,
10
+ isBaseMessageChunk ,
10
11
} from "./base.js" ;
11
12
import {
12
13
ChatMessage ,
@@ -56,16 +57,16 @@ const _isMessageType = (msg: BaseMessage, types: MessageTypeOrClass[]) => {
56
57
// eslint-disable-next-line @typescript-eslint/no-explicit-any
57
58
const instantiatedMsgClass = new ( t as any ) ( { } ) ;
58
59
if (
59
- ! ( "_getType " in instantiatedMsgClass ) ||
60
- typeof instantiatedMsgClass . _getType !== "function"
60
+ ! ( "getType " in instantiatedMsgClass ) ||
61
+ typeof instantiatedMsgClass . getType !== "function"
61
62
) {
62
63
throw new Error ( "Invalid type provided." ) ;
63
64
}
64
- return instantiatedMsgClass . _getType ( ) ;
65
+ return instantiatedMsgClass . getType ( ) ;
65
66
} )
66
67
) ,
67
68
] ;
68
- const msgType = msg . _getType ( ) ;
69
+ const msgType = msg . getType ( ) ;
69
70
return typesAsStrings . some ( ( t ) => t === msgType ) ;
70
71
} ;
71
72
@@ -279,8 +280,8 @@ function _mergeMessageRuns(messages: BaseMessage[]): BaseMessage[] {
279
280
if ( ! last ) {
280
281
merged . push ( curr ) ;
281
282
} else if (
282
- curr . _getType ( ) === "tool" ||
283
- ! ( curr . _getType ( ) === last . _getType ( ) )
283
+ curr . getType ( ) === "tool" ||
284
+ ! ( curr . getType ( ) === last . getType ( ) )
284
285
) {
285
286
merged . push ( last , curr ) ;
286
287
} else {
@@ -767,7 +768,7 @@ async function _firstMaxTokens(
767
768
( [ k ] ) => k !== "type" && ! k . startsWith ( "lc_" )
768
769
)
769
770
) as BaseMessageFields ;
770
- const updatedMessage = _switchTypeToMessage ( excluded . _getType ( ) , {
771
+ const updatedMessage = _switchTypeToMessage ( excluded . getType ( ) , {
771
772
...fields ,
772
773
content : partialContent ,
773
774
} ) ;
@@ -862,7 +863,18 @@ async function _lastMaxTokens(
862
863
} = options ;
863
864
864
865
// Create a copy of messages to avoid mutation
865
- let messagesCopy = [ ...messages ] ;
866
+ let messagesCopy = messages . map ( ( message ) => {
867
+ const fields = Object . fromEntries (
868
+ Object . entries ( message ) . filter (
869
+ ( [ k ] ) => k !== "type" && ! k . startsWith ( "lc_" )
870
+ )
871
+ ) as BaseMessageFields ;
872
+ return _switchTypeToMessage (
873
+ message . getType ( ) ,
874
+ fields ,
875
+ isBaseMessageChunk ( message )
876
+ ) ;
877
+ } ) ;
866
878
867
879
if ( endOn ) {
868
880
const endOnArr = Array . isArray ( endOn ) ? endOn : [ endOn ] ;
@@ -875,7 +887,7 @@ async function _lastMaxTokens(
875
887
}
876
888
877
889
const swappedSystem =
878
- includeSystem && messagesCopy [ 0 ] ?. _getType ( ) === "system" ;
890
+ includeSystem && messagesCopy [ 0 ] ?. getType ( ) === "system" ;
879
891
let reversed_ = swappedSystem
880
892
? messagesCopy . slice ( 0 , 1 ) . concat ( messagesCopy . slice ( 1 ) . reverse ( ) )
881
893
: messagesCopy . reverse ( ) ;
@@ -943,6 +955,11 @@ function _switchTypeToMessage(
943
955
fields : BaseMessageFields ,
944
956
returnChunk : true
945
957
) : BaseMessageChunk ;
958
+ function _switchTypeToMessage (
959
+ messageType : MessageType ,
960
+ fields : BaseMessageFields ,
961
+ returnChunk ?: boolean
962
+ ) : BaseMessageChunk | BaseMessage ;
946
963
function _switchTypeToMessage (
947
964
messageType : MessageType ,
948
965
fields : BaseMessageFields ,
@@ -1058,7 +1075,7 @@ function _switchTypeToMessage(
1058
1075
}
1059
1076
1060
1077
function _chunkToMsg ( chunk : BaseMessageChunk ) : BaseMessage {
1061
- const chunkType = chunk . _getType ( ) ;
1078
+ const chunkType = chunk . getType ( ) ;
1062
1079
let msg : BaseMessage | undefined ;
1063
1080
const fields = Object . fromEntries (
1064
1081
Object . entries ( chunk ) . filter (
0 commit comments