@@ -348,11 +348,12 @@ function credentialProviderMismatch(): ResolveCredentialTokenResult {
348348
349349function validateToolCredentialBinding (
350350 resolved : ResolvedCredential | null ,
351- toolId ?: string
351+ toolId : string | undefined ,
352+ toolMetadata : ReturnType < typeof getToolMetadata >
352353) : ResolveCredentialTokenResult | null {
353354 if ( ! resolved || ! toolId ) return null
354355
355- const oauth = getToolMetadata ( toolId ) ?. oauth
356+ const oauth = toolMetadata ?. oauth
356357 const isServiceAccount = resolved . credentialType === 'service_account'
357358 if (
358359 oauth ?. credentialKind === 'service-account'
@@ -387,8 +388,9 @@ export async function resolveCredentialAccessToken(
387388) : Promise < ResolveCredentialTokenResult > {
388389 const { requestId, credentialId, toolId, auditRequest } = input
389390
391+ const toolMetadata = toolId ? getToolMetadata ( toolId ) : undefined
390392 const resolved = credentialId ? await resolveOAuthAccountId ( credentialId ) : null
391- const bindingError = validateToolCredentialBinding ( resolved , toolId )
393+ const bindingError = validateToolCredentialBinding ( resolved , toolId , toolMetadata )
392394 if ( bindingError ) return bindingError
393395
394396 if ( resolved ?. credentialType !== 'managed_oauth' || ! resolved . credentialId ) {
@@ -441,7 +443,6 @@ export async function resolveCredentialAccessToken(
441443 }
442444 }
443445
444- const toolMetadata = getToolMetadata ( toolId )
445446 if ( ! toolMetadata ?. oauth ?. required ) {
446447 logger . error ( `[${ requestId } ] Tool is not configured for managed OAuth` , { toolId } )
447448 return {
0 commit comments