@@ -10,32 +10,42 @@ interface MediaProviderEnv {
1010 HYPERDRIVE : Hyperdrive ;
1111}
1212
13- interface MediaProviderInput {
13+ interface GoogleToolProviderInput {
1414 userId : string ;
1515}
1616
17- export interface MediaCredentials {
18- googleMediaApiKey ?: string | undefined ;
17+ export type GoogleToolApiKeyResolver = ( ) => Promise < string | undefined > ;
18+
19+ export function createGoogleToolApiKeyResolver (
20+ env : MediaProviderEnv ,
21+ input : GoogleToolProviderInput ,
22+ logger : ReturnType < typeof createLogger > ,
23+ ) : GoogleToolApiKeyResolver {
24+ let resolution : Promise < string | undefined > | undefined ;
25+ return ( ) => {
26+ resolution ??= resolveGoogleToolApiKey ( env , input , logger ) ;
27+ return resolution ;
28+ } ;
1929}
2030
21- export async function resolveMediaCredentials (
31+ async function resolveGoogleToolApiKey (
2232 env : MediaProviderEnv ,
23- input : MediaProviderInput ,
33+ input : GoogleToolProviderInput ,
2434 logger : ReturnType < typeof createLogger > ,
25- ) : Promise < MediaCredentials > {
35+ ) : Promise < string | undefined > {
2636 return withUserDb (
2737 env ,
2838 toUserId ( input . userId ) ,
2939 async ( { transaction } ) => {
3040 const googleMediaApiKey = await transaction ( ( db ) => getProviderKey ( db , "google" ) ) ;
31- logger . info ( "byok_media_provider_key_checked " , { google : Boolean ( googleMediaApiKey ) } ) ;
32- return googleMediaApiKey ? { googleMediaApiKey } : { } ;
41+ logger . info ( "byok_google_tool_key_checked " , { configured : Boolean ( googleMediaApiKey ) } ) ;
42+ return googleMediaApiKey ?? undefined ;
3343 } ,
3444 ( dbHandle ) =>
3545 closeDatabaseBestEffort ( {
3646 dbHandle,
3747 logger,
38- operation : "resolve_media_credentials " ,
48+ operation : "resolve_google_tool_key " ,
3949 } ) ,
4050 ) ;
4151}
0 commit comments