File tree Expand file tree Collapse file tree
packages/agent-auth/src/routes Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -107,7 +107,19 @@ export function batchExecuteCapability(opts: ResolvedAgentAuthOptions) {
107107 id : r . id ?? String ( i ) ,
108108 } ) ) ;
109109
110- const allCapabilities = opts . capabilities ?? [ ] ;
110+ let allCapabilities = opts . capabilities ?? [ ] ;
111+
112+ // If the static list is empty and resolveCapabilities is configured,
113+ // resolve dynamically so batch execute works with dynamic capabilities.
114+ if ( allCapabilities . length === 0 && opts . resolveCapabilities ) {
115+ allCapabilities = await opts . resolveCapabilities ( {
116+ capabilities : allCapabilities ,
117+ agentSession : agentSession ?? null ,
118+ hostSession : null ,
119+ query : null ,
120+ } ) ;
121+ }
122+
111123 const capDefMap = new Map < string , Capability > ( ) ;
112124 for ( const cap of allCapabilities ) {
113125 capDefMap . set ( cap . name , cap ) ;
Original file line number Diff line number Diff line change @@ -59,8 +59,21 @@ export function executeCapability(opts: ResolvedAgentAuthOptions) {
5959
6060 const { capability : capabilityName , arguments : args } = ctx . body ;
6161
62- const allCapabilities = opts . capabilities ?? [ ] ;
63- const capabilityDef = allCapabilities . find ( ( c ) => c . name === capabilityName ) ;
62+ let allCapabilities = opts . capabilities ?? [ ] ;
63+
64+ // If the static list doesn't contain the capability and
65+ // resolveCapabilities is configured, resolve dynamically.
66+ let capabilityDef = allCapabilities . find ( ( c ) => c . name === capabilityName ) ;
67+ if ( ! capabilityDef && opts . resolveCapabilities ) {
68+ const resolved = await opts . resolveCapabilities ( {
69+ capabilities : allCapabilities ,
70+ agentSession : agentSession ?? null ,
71+ hostSession : null ,
72+ query : null ,
73+ } ) ;
74+ allCapabilities = resolved ;
75+ capabilityDef = resolved . find ( ( c ) => c . name === capabilityName ) ;
76+ }
6477 if ( ! capabilityDef ) {
6578 throw agentError (
6679 "NOT_FOUND" ,
You can’t perform that action at this time.
0 commit comments