@@ -142,6 +142,7 @@ export class AgentRuntime implements IAgentRuntime {
142
142
services : Map < ServiceType , Service > = new Map ( ) ;
143
143
memoryManagers : Map < string , IMemoryManager > = new Map ( ) ;
144
144
cacheManager : ICacheManager ;
145
+ clients : Record < string , any > ;
145
146
146
147
registerMemoryManager ( manager : IMemoryManager ) : void {
147
148
if ( ! manager . tableName ) {
@@ -405,6 +406,25 @@ export class AgentRuntime implements IAgentRuntime {
405
406
}
406
407
}
407
408
409
+ async stop ( ) {
410
+ elizaLogger . debug ( 'runtime::stop - character' , this . character )
411
+ // stop services, they don't have a stop function
412
+ // just initialize
413
+
414
+ // plugins
415
+ // have actions, providers, evaluators (no start/stop)
416
+ // services (just initialized), clients
417
+
418
+ // client have a start
419
+ for ( const cStr in this . clients ) {
420
+ const c = this . clients [ cStr ]
421
+ elizaLogger . log ( 'runtime::stop - requesting' , cStr , 'client stop for' , this . character . name )
422
+ c . stop ( )
423
+ }
424
+ // we don't need to unregister with directClient
425
+ // don't need to worry about knowledge
426
+ }
427
+
408
428
/**
409
429
* Processes character knowledge by creating document memories and fragment memories.
410
430
* This function takes an array of knowledge items, creates a document memory for each item if it doesn't exist,
0 commit comments