Skip to content

Commit 02655ed

Browse files
Add comprehensive debugging for metadata service availability in Vercel
Agent-Logs-Url: https://github.com/objectstack-ai/framework/sessions/2a32a84f-102b-4c02-a1bd-c250e426407b Co-authored-by: xuyushun441-sys <255036401+xuyushun441-sys@users.noreply.github.com>
1 parent 916d4c0 commit 02655ed

3 files changed

Lines changed: 51 additions & 3 deletions

File tree

packages/metadata/src/plugin.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@ export class MetadataPlugin implements Plugin {
4646

4747
// Register Metadata Manager as the primary metadata service provider.
4848
ctx.registerService('metadata', this.manager);
49+
console.log('[MetadataPlugin] Registered metadata service, has getRegisteredTypes:', typeof this.manager.getRegisteredTypes);
4950

5051
// Register metadata system objects via the manifest service (if available).
5152
// MetadataPlugin may init before ObjectQLPlugin, so wrap in try/catch.

packages/runtime/src/http-dispatcher.ts

Lines changed: 43 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -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();

packages/services/service-ai/src/plugin.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,9 @@ export class AIServicePlugin implements Plugin {
250250
let metadataService: IMetadataService | undefined;
251251
try {
252252
metadataService = ctx.getService<IMetadataService>('metadata');
253-
} catch {
253+
console.log('[AI Plugin] Retrieved metadata service:', !!metadataService, 'has getRegisteredTypes:', typeof (metadataService as any)?.getRegisteredTypes);
254+
} catch (e: any) {
255+
console.log('[AI] Metadata service not available:', e.message);
254256
ctx.logger.debug('[AI] Metadata service not available');
255257
}
256258

@@ -287,8 +289,10 @@ export class AIServicePlugin implements Plugin {
287289

288290
if (!agentExists) {
289291
await metadataService.register('agent', DATA_CHAT_AGENT.name, DATA_CHAT_AGENT);
292+
console.log('[AI] Registered data_chat agent to metadataService');
290293
ctx.logger.info('[AI] data_chat agent registered');
291294
} else {
295+
console.log('[AI] data_chat agent already exists, skipping');
292296
ctx.logger.debug('[AI] data_chat agent already exists, skipping auto-registration');
293297
}
294298
} catch (err) {
@@ -329,8 +333,10 @@ export class AIServicePlugin implements Plugin {
329333

330334
if (!agentExists) {
331335
await metadataService.register('agent', METADATA_ASSISTANT_AGENT.name, METADATA_ASSISTANT_AGENT);
336+
console.log('[AI] Registered metadata_assistant agent to metadataService');
332337
ctx.logger.info('[AI] metadata_assistant agent registered');
333338
} else {
339+
console.log('[AI] metadata_assistant agent already exists, skipping');
334340
ctx.logger.debug('[AI] metadata_assistant agent already exists, skipping auto-registration');
335341
}
336342
} catch (err) {

0 commit comments

Comments
 (0)