11import type {
22 AgentConfig ,
33 BaseEvent ,
4+ Message ,
45 RunAgentInput ,
56 RunFinishedEvent ,
67 RunStartedEvent ,
@@ -34,6 +35,7 @@ import {
3435
3536export interface MastraAgentConfig extends AgentConfig {
3637 agent : LocalMastraAgent | RemoteMastraAgent ;
38+ messagesMapper ?: ( messages : Message [ ] ) => Message [ ] ;
3739 resourceId ?: string ;
3840 runtimeContext ?: RuntimeContext ;
3941}
@@ -51,12 +53,14 @@ export class MastraAgent extends AbstractAgent {
5153 agent : LocalMastraAgent | RemoteMastraAgent ;
5254 resourceId ?: string ;
5355 runtimeContext ?: RuntimeContext ;
56+ messagesMapper ?: ( messages : Message [ ] ) => Message [ ] ;
5457
55- constructor ( { agent, resourceId, runtimeContext, ...rest } : MastraAgentConfig ) {
58+ constructor ( { agent, resourceId, runtimeContext, messagesMapper , ...rest } : MastraAgentConfig ) {
5659 super ( rest ) ;
5760 this . agent = agent ;
5861 this . resourceId = resourceId ;
5962 this . runtimeContext = runtimeContext ?? new RuntimeContext ( ) ;
63+ this . messagesMapper = messagesMapper ;
6064 }
6165
6266 protected run ( input : RunAgentInput ) : Observable < BaseEvent > {
@@ -249,7 +253,7 @@ export class MastraAgent extends AbstractAgent {
249253 { } as Record < string , any > ,
250254 ) ;
251255 const resourceId = this . resourceId ?? threadId ;
252- const convertedMessages = convertAGUIMessagesToMastra ( messages ) ;
256+ const convertedMessages = convertAGUIMessagesToMastra ( this . messagesMapper ? this . messagesMapper ( messages ) : messages ) ;
253257 this . runtimeContext ?. set ( 'ag-ui' , { context : inputContext } ) ;
254258 const runtimeContext = this . runtimeContext ;
255259
0 commit comments