@@ -342,8 +342,49 @@ export class HttpDispatcher {
342342 // GET /metadata/types
343343 if ( parts [ 0 ] === 'types' ) {
344344 // PRIORITY 1: Try MetadataService directly (includes both typeRegistry with agent/tool AND runtime-registered types)
345- const metadataService = await this . getService ( CoreServiceName . enum . metadata ) ;
346- console . log ( '[HttpDispatcher] MetadataService retrieved:' , ! ! metadataService , 'has getRegisteredTypes:' , typeof ( metadataService as any ) ?. getRegisteredTypes ) ;
345+ console . log ( '[HttpDispatcher] Attempting to resolve MetadataService...' ) ;
346+ console . log ( '[HttpDispatcher] Available kernel methods:' , {
347+ hasGetServiceAsync : typeof this . kernel . getServiceAsync === 'function' ,
348+ hasGetService : typeof this . kernel . getService === 'function' ,
349+ hasContext : ! ! this . kernel . context ,
350+ hasContextGetService : typeof this . kernel . context ?. getService === 'function' ,
351+ } ) ;
352+
353+ // Try all service resolution paths with detailed logging
354+ let metadataService : any = null ;
355+
356+ // Path 1: kernel.getServiceAsync
357+ if ( typeof this . kernel . getServiceAsync === 'function' ) {
358+ try {
359+ metadataService = await this . kernel . getServiceAsync ( 'metadata' ) ;
360+ console . log ( '[HttpDispatcher] kernel.getServiceAsync("metadata") returned:' , ! ! metadataService ) ;
361+ } catch ( e : any ) {
362+ console . log ( '[HttpDispatcher] kernel.getServiceAsync("metadata") failed:' , e . message ) ;
363+ }
364+ }
365+
366+ // Path 2: kernel.getService (if not found via async)
367+ if ( ! metadataService && typeof this . kernel . getService === 'function' ) {
368+ try {
369+ metadataService = await this . kernel . getService ( 'metadata' ) ;
370+ console . log ( '[HttpDispatcher] kernel.getService("metadata") returned:' , ! ! metadataService ) ;
371+ } catch ( e : any ) {
372+ console . log ( '[HttpDispatcher] kernel.getService("metadata") failed:' , e . message ) ;
373+ }
374+ }
375+
376+ // Path 3: kernel.context.getService (if not found)
377+ if ( ! metadataService && this . kernel . context ?. getService ) {
378+ try {
379+ metadataService = await this . kernel . context . getService ( 'metadata' ) ;
380+ console . log ( '[HttpDispatcher] kernel.context.getService("metadata") returned:' , ! ! metadataService ) ;
381+ } catch ( e : any ) {
382+ console . log ( '[HttpDispatcher] kernel.context.getService("metadata") failed:' , e . message ) ;
383+ }
384+ }
385+
386+ console . log ( '[HttpDispatcher] Final metadataService:' , ! ! metadataService , 'has getRegisteredTypes:' , typeof ( metadataService as any ) ?. getRegisteredTypes ) ;
387+
347388 if ( metadataService && typeof ( metadataService as any ) . getRegisteredTypes === 'function' ) {
348389 try {
349390 const types = await ( metadataService as any ) . getRegisteredTypes ( ) ;
0 commit comments