UNPKG

@swoft/platform-contracts

Version:

DDD-compliant dependency injection contracts for Swoft platform - Defines clean architecture boundaries

122 lines (113 loc) 2.81 kB
import { NavigationHints } from './NavigationHints'; /** * Standard health check response structure for all MCP servers * Eliminates duplication while allowing domain-specific customization */ export interface StandardHealthResponse { status: 'ok' | 'error' | 'degraded'; service: string; version?: string; timestamp: string; checks: Record<string, any>; metrics?: Record<string, any>; } /** * Health check response with navigation hints */ export interface HealthCheckWithNavigation { content: StandardHealthResponse; _navigation: NavigationHints; } /** * Domain-specific health details */ export interface DomainHealthDetails { [key: string]: any; } /** * Utility functions for creating standard health responses */ export class HealthCheckUtils { /** * Create standard health response structure */ static createResponse( serviceName: string, version: string, domainChecks: Record<string, any>, domainDetails: DomainHealthDetails = {}, metrics?: Record<string, any> ): StandardHealthResponse { return { status: 'ok', service: serviceName, version, timestamp: new Date().toISOString(), checks: { connectivity: { status: 'connected', responseTime: '12ms' }, ...domainChecks, ...domainDetails, }, metrics, }; } /** * Create error response */ static createErrorResponse(serviceName: string, error: any): StandardHealthResponse { return { status: 'error', service: serviceName, timestamp: new Date().toISOString(), checks: { connectivity: { status: 'failed', error: error.message || String(error) }, }, }; } /** * Standard metrics collection */ static collectStandardMetrics(): Record<string, any> { return { uptime: process.uptime(), memory: process.memoryUsage(), timestamp: new Date().toISOString(), }; } } /** * Navigation hint patterns for health checks */ export class HealthNavigationPatterns { /** * Common cross-MCP health navigation hints */ static getSystemHealthHints(): Array<{ toolName: string; description: string; relevanceContext: string; }> { return [ { toolName: 'health_check', description: 'Check system-wide health status', relevanceContext: 'if this service shows issues', }, ]; } /** * Service recovery navigation hints */ static getRecoveryHints(serviceName: string): Array<{ toolName: string; description: string }> { return [ { toolName: 'service_control', description: `Restart ${serviceName} if needed`, }, { toolName: 'logs', description: `View ${serviceName} logs for diagnostics`, }, ]; } }