File tree Expand file tree Collapse file tree 2 files changed +10
-3
lines changed
packages/runtime/src/skill-manager Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Original file line number Diff line number Diff line change 1+ ---
2+ " @perstack/runtime " : patch
3+ ---
4+
5+ Clean up initialized skill managers when delegate expert is not found
Original file line number Diff line number Diff line change @@ -66,15 +66,17 @@ export async function getSkillManagers(
6666 return manager
6767 } )
6868 await initSkillManagersWithCleanup ( interactiveSkillManagers , allManagers )
69- const delegateSkillManagers = expert . delegates . map ( ( delegateExpertName ) => {
69+ const delegateSkillManagers : DelegateSkillManager [ ] = [ ]
70+ for ( const delegateExpertName of expert . delegates ) {
7071 const delegate = experts [ delegateExpertName ]
7172 if ( ! delegate ) {
73+ await Promise . all ( allManagers . map ( ( m ) => m . close ( ) . catch ( ( ) => { } ) ) )
7274 throw new Error ( `Delegate expert "${ delegateExpertName } " not found in experts` )
7375 }
7476 const manager = new DelegateSkillManager ( delegate , runId , eventListener )
7577 allManagers . push ( manager )
76- return manager
77- } )
78+ delegateSkillManagers . push ( manager )
79+ }
7880 await initSkillManagersWithCleanup ( delegateSkillManagers , allManagers )
7981 const skillManagers : Record < string , BaseSkillManager > = { }
8082 for ( const manager of allManagers ) {
You can’t perform that action at this time.
0 commit comments