@swoft/platform-contracts
Version:
DDD-compliant dependency injection contracts for Swoft platform - Defines clean architecture boundaries
1 lines • 46.2 kB
Source Map (JSON)
{"version":3,"sources":["../src/infrastructure/index.ts","../src/domain/index.ts","../src/application/index.ts","../src/shared/MCPSemanticStartupEnforcer.ts","../src/shared/HealthCheck.ts","../src/shared/index.ts","../src/ContractRegistry.ts"],"sourcesContent":["/**\n * Infrastructure Layer Contracts\n *\n * Defines dependency injection symbols for infrastructure concerns.\n * These are the \"adapters\" in hexagonal architecture - external dependencies\n * that implement ports defined by inner layers.\n */\n\n// ============================================\n// DATABASE & PERSISTENCE CONTRACTS\n// ============================================\n\n/**\n * MongoDB Infrastructure Contracts\n * Used by all packages that need MongoDB access\n */\nexport const INFRASTRUCTURE_CONTRACTS = {\n // Core MongoDB infrastructure\n MONGO_CLIENT: Symbol('Infrastructure.MongoDB.Client'),\n DATABASE_NAME: Symbol('Infrastructure.MongoDB.DatabaseName'),\n MONGO_CONNECTION_STRING: Symbol('Infrastructure.MongoDB.ConnectionString'),\n\n // Storage infrastructure\n CAS_STORAGE_PORT: Symbol('Infrastructure.Storage.CasStoragePort'),\n DISK_REGISTRY_PORT: Symbol('Infrastructure.Storage.DiskRegistryPort'),\n DISK_ADAPTER_RESOLVER: Symbol('Infrastructure.Storage.DiskAdapterResolver'),\n\n // External service infrastructure\n S3_CLIENT: Symbol('Infrastructure.AWS.S3Client'),\n SECRET_MANAGER: Symbol('Infrastructure.AWS.SecretsManager'),\n} as const;\n\n// Type-safe access to infrastructure contracts\nexport type InfrastructureContract =\n (typeof INFRASTRUCTURE_CONTRACTS)[keyof typeof INFRASTRUCTURE_CONTRACTS];\n","/**\n * Domain Layer Contracts\n *\n * Defines dependency injection symbols for domain concerns.\n * These are the \"ports\" in hexagonal architecture - interfaces defined\n * by the domain that infrastructure adapters must implement.\n */\n\n// ============================================\n// REPOSITORY CONTRACTS (Domain → Infrastructure)\n// ============================================\n\n/**\n * Repository contracts for domain entities\n * These are ports that infrastructure adapters implement\n */\nexport const DOMAIN_CONTRACTS = {\n // Core domain repositories\n SCHEMA_REPOSITORY: Symbol('Domain.Repository.SchemaRepository'),\n BUSINESS_ACTION_REPOSITORY: Symbol('Domain.Repository.BusinessActionRepository'),\n\n // Knowledge domain repositories\n DOCUMENTATION_REPOSITORY: Symbol('Domain.Repository.DocumentationRepository'),\n\n // Runtime domain repositories\n ATOMIC_TASK_REPOSITORY: Symbol('Domain.Repository.AtomicTaskRepository'),\n\n // Collaboration domain repositories\n HANDOFF_REPOSITORY: Symbol('Domain.Repository.HandoffRepository'),\n MESSAGE_REPOSITORY: Symbol('Domain.Repository.MessageRepository'),\n} as const;\n\n// ============================================\n// DOMAIN SERVICE CONTRACTS\n// ============================================\n\n/**\n * Domain service contracts for complex business logic\n * Services that orchestrate multiple entities/value objects\n */\nexport const DOMAIN_SERVICE_CONTRACTS = {\n // Knowledge domain services\n CONTENT_DISCOVERY_SERVICE: Symbol('Domain.Service.ContentDiscoveryService'),\n RELATIONSHIP_DISCOVERY_SERVICE: Symbol('Domain.Service.RelationshipDiscoveryService'),\n\n // Runtime domain services\n TASK_ORCHESTRATION_SERVICE: Symbol('Domain.Service.TaskOrchestrationService'),\n\n // Core domain services\n BUSINESS_ACTION_ORCHESTRATOR: Symbol('Domain.Service.BusinessActionOrchestrator'),\n} as const;\n\n// Type-safe access to domain contracts\nexport type DomainContract = (typeof DOMAIN_CONTRACTS)[keyof typeof DOMAIN_CONTRACTS];\nexport type DomainServiceContract =\n (typeof DOMAIN_SERVICE_CONTRACTS)[keyof typeof DOMAIN_SERVICE_CONTRACTS];\n","/**\n * Application Layer Contracts\n *\n * Defines dependency injection symbols for application concerns.\n * These orchestrate domain logic and coordinate between bounded contexts.\n */\n\n// ============================================\n// APPLICATION SERVICE CONTRACTS\n// ============================================\n\n/**\n * Application services that orchestrate domain logic\n * These coordinate multiple domain services and repositories\n */\nexport const APPLICATION_CONTRACTS = {\n // Core application services\n CAS_SERVICE: Symbol('Application.Service.CasService'),\n CONTRACT_DISCOVERY_SERVICE: Symbol('Application.Service.ContractDiscoveryService'),\n SCHEMA_APPLICATION_SERVICE: Symbol('Application.Service.SchemaApplicationService'),\n\n // Knowledge application services\n DOCUMENTATION_APPLICATION_SERVICE: Symbol('Application.Service.DocumentationApplicationService'),\n\n // Runtime application services\n SERVICE_MANAGER: Symbol('Application.Service.ServiceManager'),\n SERVICE_REGISTRY: Symbol('Application.Service.ServiceRegistry'),\n TASK_ORCHESTRATOR: Symbol('Application.Service.TaskOrchestrator'),\n\n // Development application services\n SEEDER_MANAGER: Symbol('Application.Service.SeederManager'),\n VALIDATION_SERVICE: Symbol('Application.Service.ValidationService'),\n} as const;\n\n// ============================================\n// COMMAND & QUERY BUS CONTRACTS\n// ============================================\n\n/**\n * CQRS infrastructure contracts\n * Command and Query buses for cross-bounded-context communication\n */\nexport const CQRS_CONTRACTS = {\n // Command processing\n COMMAND_BUS: Symbol('Application.CQRS.CommandBus'),\n COMMAND_HANDLER_REGISTRY: Symbol('Application.CQRS.CommandHandlerRegistry'),\n\n // Query processing\n QUERY_BUS: Symbol('Application.CQRS.QueryBus'),\n QUERY_HANDLER_REGISTRY: Symbol('Application.CQRS.QueryHandlerRegistry'),\n\n // Event processing\n EVENT_BUS: Symbol('Application.CQRS.EventBus'),\n EVENT_HANDLER_REGISTRY: Symbol('Application.CQRS.EventHandlerRegistry'),\n} as const;\n\n// ============================================\n// USE CASE CONTRACTS\n// ============================================\n\n/**\n * Use case contracts for specific business operations\n * These represent specific user intentions/stories\n */\nexport const USE_CASE_CONTRACTS = {\n // Service management use cases\n START_SERVICE_USE_CASE: Symbol('Application.UseCase.StartService'),\n STOP_SERVICE_USE_CASE: Symbol('Application.UseCase.StopService'),\n LIST_SERVICES_USE_CASE: Symbol('Application.UseCase.ListServices'),\n\n // Documentation use cases\n CREATE_DOCUMENTATION_USE_CASE: Symbol('Application.UseCase.CreateDocumentation'),\n UPDATE_DOCUMENTATION_USE_CASE: Symbol('Application.UseCase.UpdateDocumentation'),\n PUBLISH_DOCUMENTATION_USE_CASE: Symbol('Application.UseCase.PublishDocumentation'),\n} as const;\n\n// Type-safe access to application contracts\nexport type ApplicationContract =\n (typeof APPLICATION_CONTRACTS)[keyof typeof APPLICATION_CONTRACTS];\nexport type CQRSContract = (typeof CQRS_CONTRACTS)[keyof typeof CQRS_CONTRACTS];\nexport type UseCaseContract = (typeof USE_CASE_CONTRACTS)[keyof typeof USE_CASE_CONTRACTS];\n","/**\n * MCP Semantic Startup Enforcer\n *\n * MANDATORY startup protocol for all MCP servers to ensure they load and understand\n * their domain's semantic navigation before accepting any requests.\n *\n * This enforces the AGENT-STARTUP-PROTOCOL.md requirements with specific focus on\n * semantic navigation to prevent agents from \"taking shortcuts\" and missing context.\n *\n * @author Technical Coordinator & Derick\n * @since 2025-08-02\n */\n\nimport { IDomainSemantics, IEntityRelationship, IWorkflowDefinition } from './SemanticNavigation';\nimport { readFile } from 'fs/promises';\nimport { join } from 'path';\n\n/**\n * Startup validation result\n */\nexport interface SemanticStartupResult {\n success: boolean;\n domainId: string;\n entityRelationships: number;\n workflows: number;\n customSemantics: number;\n errors: string[];\n warnings: string[];\n}\n\n/**\n * Domain boundary information from DOMAIN-BOUNDARY-MAP.md\n */\ninterface DomainBoundary {\n domainId: string;\n domainRef: string; // e.g., DOM-001\n packageName: string;\n services: string[];\n boundedContexts: string[];\n publishedLanguage: string[];\n database?: string;\n}\n\n/**\n * Enforces semantic navigation loading at MCP server startup\n */\nexport class MCPSemanticStartupEnforcer {\n private domainId: string;\n private packageName: string;\n private semantics?: IDomainSemantics;\n private domainBoundary?: DomainBoundary;\n private startupResult: SemanticStartupResult;\n\n constructor(domainId: string, packageName: string) {\n this.domainId = domainId;\n this.packageName = packageName;\n this.startupResult = {\n success: false,\n domainId,\n entityRelationships: 0,\n workflows: 0,\n customSemantics: 0,\n errors: [],\n warnings: [],\n };\n }\n\n /**\n * Execute mandatory startup sequence\n * Throws on critical errors, preventing server startup\n */\n async enforceStartup(): Promise<SemanticStartupResult> {\n console.log('');\n console.log('🚀 ========================================');\n console.log('🚀 MCP Semantic Startup Protocol v1.0');\n console.log(`🚀 Domain: ${this.domainId}`);\n console.log(`🚀 Package: ${this.packageName}`);\n console.log('🚀 ========================================');\n console.log('');\n\n try {\n // Step 1: Load Domain Boundary Map (from AGENT-STARTUP-PROTOCOL.md)\n console.log('📍 Step 1: Loading Domain Boundary Map...');\n await this.loadDomainBoundaryMap();\n\n // Step 2: Load Domain Semantic Navigation\n console.log('📍 Step 2: Loading Semantic Navigation...');\n await this.loadSemanticNavigation();\n\n // Step 3: Validate Semantic Understanding\n console.log('📍 Step 3: Validating Semantic Understanding...');\n await this.validateSemanticUnderstanding();\n\n // Step 4: Display Semantic Summary\n console.log('📍 Step 4: Semantic Navigation Summary...');\n this.displaySemanticSummary();\n\n this.startupResult.success = true;\n\n console.log('');\n console.log('✅ ========================================');\n console.log('✅ Semantic startup complete!');\n console.log('✅ Ready to provide context-aware navigation');\n console.log('✅ ========================================');\n console.log('');\n } catch (error: any) {\n this.startupResult.errors.push(error.message);\n console.error('');\n console.error('❌ ========================================');\n console.error('❌ FATAL: Semantic startup failed!');\n console.error(`❌ Error: ${error.message}`);\n console.error('❌ Server CANNOT start without semantic context');\n console.error('❌ ========================================');\n console.error('');\n throw error;\n }\n\n return this.startupResult;\n }\n\n /**\n * Load and parse Domain Boundary Map\n */\n private async loadDomainBoundaryMap(): Promise<void> {\n const workspace = process.env.SWOFT_TEAM_WORKSPACE || process.cwd();\n const mapPath = join(workspace, 'docs/architecture/DOMAIN-BOUNDARY-MAP.md');\n\n try {\n const content = await readFile(mapPath, 'utf-8');\n\n // Parse the domain boundary map to find our domain\n const domainInfo = this.parseDomainBoundaryMap(content);\n\n if (!domainInfo) {\n throw new Error(\n `Domain '${this.domainId}' not found in Domain Boundary Map. ` +\n `Expected format: DOM-XXX (e.g., DOM-001) or domain name (e.g., 'party-manager'). ` +\n `Check docs/architecture/DOMAIN-BOUNDARY-MAP.md for valid domains.`\n );\n }\n\n this.domainBoundary = domainInfo;\n console.log(` ✅ Found domain ${domainInfo.domainRef}: ${domainInfo.domainId}`);\n console.log(` ✅ Bounded contexts: ${domainInfo.boundedContexts.length}`);\n console.log(` ✅ Published language terms: ${domainInfo.publishedLanguage.length}`);\n } catch (error: any) {\n throw new Error(`Failed to load Domain Boundary Map: ${error.message}`);\n }\n }\n\n /**\n * Parse domain boundary map markdown to extract domain info\n */\n private parseDomainBoundaryMap(content: string): DomainBoundary | null {\n // Simple parser for the markdown structure\n // In production, this would be more robust\n console.log(` 🔍 Searching for domain: ${this.domainId}`);\n\n const lines = content.split('\\n');\n let currentDomain: Partial<DomainBoundary> | null = null;\n let foundDomain = false;\n\n for (const line of lines) {\n // Look for domain headers like \"#### DOM-004: Party Manager Domain\"\n const domainMatch = line.match(/^####\\s+(DOM-\\d+):\\s+(.+)\\s+Domain/);\n if (domainMatch) {\n const [, domainRef, domainName] = domainMatch;\n // Check if the domainId matches either the DOM-XXX format or the domain name\n if (\n domainRef === this.domainId ||\n (domainName &&\n domainName.toLowerCase().includes(this.domainId.toLowerCase().replace('-', ' ')))\n ) {\n foundDomain = true;\n currentDomain = {\n domainRef,\n domainId: this.domainId,\n packageName: '',\n services: [],\n boundedContexts: [],\n publishedLanguage: [],\n };\n } else {\n foundDomain = false;\n }\n }\n\n if (foundDomain && currentDomain) {\n // Extract package\n if (line.includes('**Package**:')) {\n const packageMatch = line.match(/`([^`]+)`/);\n if (packageMatch) {\n currentDomain.packageName = packageMatch[1];\n }\n }\n\n // Extract bounded contexts\n if (line.includes('**Bounded Contexts**:')) {\n const contextsMatch = line.match(/contexts?\\s*\\(([^)]+)\\)/);\n if (contextsMatch && contextsMatch[1]) {\n currentDomain.boundedContexts = contextsMatch[1].split(',').map((c) => c.trim());\n }\n }\n\n // Extract published language\n if (line.includes('**Published Language**:')) {\n const termsMatch = line.match(/:\\s*(.+)$/);\n if (termsMatch && termsMatch[1]) {\n currentDomain.publishedLanguage = termsMatch[1].split(',').map((t) => t.trim());\n }\n }\n\n // Extract database\n if (line.includes('**Database**:')) {\n const dbMatch = line.match(/:\\s*(.+)$/);\n if (dbMatch && dbMatch[1]) {\n currentDomain.database = dbMatch[1].trim();\n }\n }\n }\n }\n\n return currentDomain as DomainBoundary | null;\n }\n\n /**\n * Load semantic navigation from domain package\n */\n private async loadSemanticNavigation(): Promise<void> {\n try {\n // Try to dynamically import the semantic navigation\n // In real implementation, this would be more robust with proper error handling\n const semanticExports = await this.tryLoadSemantics();\n\n if (!semanticExports || !semanticExports.domainSemantics) {\n // If dynamic import fails, create a minimal semantic definition\n console.log(' ⚠️ No semantic navigation found, creating minimal definition');\n this.createMinimalSemantics();\n return;\n }\n\n this.semantics = semanticExports.domainSemantics;\n\n // Count what we loaded\n if (this.semantics) {\n this.startupResult.entityRelationships = this.semantics.entityRelationships?.length || 0;\n this.startupResult.workflows = this.semantics.workflows?.length || 0;\n this.startupResult.customSemantics = this.semantics.customSemantics?.length || 0;\n }\n\n console.log(` ✅ Loaded ${this.startupResult.entityRelationships} entity relationships`);\n console.log(` ✅ Loaded ${this.startupResult.workflows} workflows`);\n console.log(` ✅ Loaded ${this.startupResult.customSemantics} custom semantic patterns`);\n } catch (error: any) {\n this.startupResult.warnings.push(`Could not load semantic navigation: ${error.message}`);\n console.log(' ⚠️ Using minimal semantic navigation');\n this.createMinimalSemantics();\n }\n }\n\n /**\n * Try to load semantics from various possible locations\n */\n private async tryLoadSemantics(): Promise<any> {\n // In a real implementation, this would try multiple paths\n // For now, we'll return null to trigger minimal semantics\n return null;\n }\n\n /**\n * Create minimal semantic navigation when none exists\n */\n private createMinimalSemantics(): void {\n this.semantics = {\n domainId: this.domainId as any,\n mcpServerId: `mcp-${this.domainId}` as any,\n entityRelationships: [],\n workflows: [],\n confidence: 0.5,\n lastUpdated: new Date().toISOString(),\n };\n\n this.startupResult.warnings.push(\n 'Using minimal semantic navigation - domain should implement full semantics'\n );\n }\n\n /**\n * Validate the MCP server understands its semantic context\n */\n private async validateSemanticUnderstanding(): Promise<void> {\n const validations = [\n {\n name: 'Domain Identity',\n check: () => this.domainBoundary !== null,\n error: 'Domain not found in Domain Boundary Map',\n },\n {\n name: 'Semantic Navigation',\n check: () => this.semantics !== null,\n error: 'No semantic navigation loaded',\n },\n {\n name: 'Published Language',\n check: () => (this.domainBoundary?.publishedLanguage?.length || 0) > 0,\n error: 'No published language terms defined',\n },\n ];\n\n for (const validation of validations) {\n if (!validation.check()) {\n throw new Error(`Validation failed for ${validation.name}: ${validation.error}`);\n }\n console.log(` ✅ Validated: ${validation.name}`);\n }\n }\n\n /**\n * Display semantic navigation summary\n */\n private displaySemanticSummary(): void {\n console.log('');\n console.log('📊 Semantic Navigation Summary:');\n console.log('================================');\n\n if (this.domainBoundary) {\n console.log(`Domain: ${this.domainBoundary.domainRef} - ${this.domainBoundary.domainId}`);\n console.log(`Package: ${this.domainBoundary.packageName}`);\n console.log(`Database: ${this.domainBoundary.database || 'Not specified'}`);\n console.log('');\n console.log('Published Language Terms:');\n this.domainBoundary.publishedLanguage.forEach((term) => {\n console.log(` - ${term}`);\n });\n }\n\n if (\n this.semantics &&\n this.semantics.entityRelationships &&\n this.semantics.entityRelationships.length > 0\n ) {\n console.log('');\n console.log('Entity Relationships:');\n this.semantics.entityRelationships.slice(0, 3).forEach((rel) => {\n console.log(` - ${rel.sourceEntityType} ${rel.relationshipType} ${rel.targetEntityType}`);\n });\n if (this.semantics.entityRelationships.length > 3) {\n console.log(` ... and ${this.semantics.entityRelationships.length - 3} more`);\n }\n }\n\n if (this.semantics && this.semantics.workflows && this.semantics.workflows.length > 0) {\n console.log('');\n console.log('Available Workflows:');\n this.semantics.workflows.slice(0, 3).forEach((wf) => {\n console.log(` - ${wf.name} (${wf.steps.length} steps)`);\n });\n if (this.semantics.workflows.length > 3) {\n console.log(` ... and ${this.semantics.workflows.length - 3} more`);\n }\n }\n\n console.log('================================');\n }\n\n /**\n * Get loaded semantic navigation for use by MCP server\n */\n getSemantics(): IDomainSemantics | undefined {\n return this.semantics;\n }\n\n /**\n * Get domain boundary information\n */\n getDomainBoundary(): DomainBoundary | undefined {\n return this.domainBoundary;\n }\n}\n\n/**\n * Factory function for easy creation\n */\nexport function createSemanticEnforcer(\n domainId: string,\n packageName: string\n): MCPSemanticStartupEnforcer {\n return new MCPSemanticStartupEnforcer(domainId, packageName);\n}\n","import { NavigationHints } from './NavigationHints';\n\n/**\n * Standard health check response structure for all MCP servers\n * Eliminates duplication while allowing domain-specific customization\n */\nexport interface StandardHealthResponse {\n status: 'ok' | 'error' | 'degraded';\n service: string;\n version?: string;\n timestamp: string;\n checks: Record<string, any>;\n metrics?: Record<string, any>;\n}\n\n/**\n * Health check response with navigation hints\n */\nexport interface HealthCheckWithNavigation {\n content: StandardHealthResponse;\n _navigation: NavigationHints;\n}\n\n/**\n * Domain-specific health details\n */\nexport interface DomainHealthDetails {\n [key: string]: any;\n}\n\n/**\n * Utility functions for creating standard health responses\n */\nexport class HealthCheckUtils {\n /**\n * Create standard health response structure\n */\n static createResponse(\n serviceName: string,\n version: string,\n domainChecks: Record<string, any>,\n domainDetails: DomainHealthDetails = {},\n metrics?: Record<string, any>\n ): StandardHealthResponse {\n return {\n status: 'ok',\n service: serviceName,\n version,\n timestamp: new Date().toISOString(),\n checks: {\n connectivity: { status: 'connected', responseTime: '12ms' },\n ...domainChecks,\n ...domainDetails\n },\n metrics\n };\n }\n\n /**\n * Create error response\n */\n static createErrorResponse(\n serviceName: string,\n error: any\n ): StandardHealthResponse {\n return {\n status: 'error',\n service: serviceName,\n timestamp: new Date().toISOString(),\n checks: {\n connectivity: { status: 'failed', error: error.message || String(error) }\n }\n };\n }\n\n /**\n * Standard metrics collection\n */\n static collectStandardMetrics(): Record<string, any> {\n return {\n uptime: process.uptime(),\n memory: process.memoryUsage(),\n timestamp: new Date().toISOString()\n };\n }\n}\n\n/**\n * Navigation hint patterns for health checks\n */\nexport class HealthNavigationPatterns {\n /**\n * Common cross-MCP health navigation hints\n */\n static getSystemHealthHints(): Array<{toolName: string, description: string, relevanceContext: string}> {\n return [\n {\n toolName: 'health_check',\n description: 'Check system-wide health status',\n relevanceContext: 'if this service shows issues'\n }\n ];\n }\n\n /**\n * Service recovery navigation hints\n */\n static getRecoveryHints(serviceName: string): Array<{toolName: string, description: string}> {\n return [\n {\n toolName: 'service_control',\n description: `Restart ${serviceName} if needed`\n },\n {\n toolName: 'logs',\n description: `View ${serviceName} logs for diagnostics`\n }\n ];\n }\n}","/**\n * Shared Cross-Cutting Contracts\n *\n * Defines dependency injection symbols for cross-cutting concerns\n * that span multiple layers and bounded contexts.\n */\n\n// ============================================\n// NAVIGATION CONTRACTS\n// ============================================\n\n/**\n * Navigation and AI-native discovery contracts\n * Standardizes navigation patterns across MCP servers\n */\nexport const NAVIGATION_CONTRACTS = {\n // Core navigation services\n NAVIGATION_HINTS_PROVIDER: Symbol('Shared.Navigation.NavigationHintsProvider'),\n NAVIGATION_HINTS_BUILDER: Symbol('Shared.Navigation.NavigationHintsBuilder'),\n NAVIGATION_HINTS_FACTORY: Symbol('Shared.Navigation.NavigationHintsFactory'),\n\n // Cross-MCP navigation\n CROSS_MCP_NAVIGATOR: Symbol('Shared.Navigation.CrossMcpNavigator'),\n MCP_TOOL_REGISTRY: Symbol('Shared.Navigation.McpToolRegistry'),\n\n // Context awareness\n WORKFLOW_CONTEXT_PROVIDER: Symbol('Shared.Navigation.WorkflowContextProvider'),\n GIT_CONTEXT_PROVIDER: Symbol('Shared.Navigation.GitContextProvider'),\n\n // Navigation enhancement\n NAVIGATION_PROCESSOR: Symbol('Shared.Navigation.NavigationProcessor'),\n NAVIGATION_FILTER: Symbol('Shared.Navigation.NavigationFilter'),\n\n // Semantic navigation\n SEMANTIC_NAVIGATION_REGISTRY: Symbol('Shared.Navigation.SemanticNavigationRegistry'),\n SEMANTIC_HINTS_FACTORY: Symbol('Shared.Navigation.SemanticHintsFactory'),\n DOMAIN_SEMANTICS_PROVIDER: Symbol('Shared.Navigation.DomainSemanticsProvider'),\n} as const;\n\n// ============================================\n// LOGGING & MONITORING CONTRACTS\n// ============================================\n\n/**\n * Logging and observability contracts\n * Used across all layers for consistent logging\n */\nexport const LOGGING_CONTRACTS = {\n // Core logging\n LOGGER: Symbol('Shared.Logging.Logger'),\n BOUNDED_CONTEXT_LOGGER: Symbol('Shared.Logging.BoundedContextLogger'),\n LAYER_LOGGER: Symbol('Shared.Logging.LayerLogger'),\n\n // Performance monitoring\n PERFORMANCE_MONITOR: Symbol('Shared.Monitoring.PerformanceMonitor'),\n METRICS_COLLECTOR: Symbol('Shared.Monitoring.MetricsCollector'),\n\n // Health checks\n HEALTH_CHECK_SERVICE: Symbol('Shared.Health.HealthCheckService'),\n DISK_HEALTH_MONITOR: Symbol('Shared.Health.DiskHealthMonitor'),\n} as const;\n\n// ============================================\n// SECURITY & AUTHORIZATION CONTRACTS\n// ============================================\n\n/**\n * Security and authorization contracts\n * Cross-cutting security concerns\n */\nexport const SECURITY_CONTRACTS = {\n // Authentication\n AUTHENTICATION_SERVICE: Symbol('Shared.Security.AuthenticationService'),\n TOKEN_VALIDATOR: Symbol('Shared.Security.TokenValidator'),\n\n // Authorization\n AUTHORIZATION_SERVICE: Symbol('Shared.Security.AuthorizationService'),\n PERMISSION_CHECKER: Symbol('Shared.Security.PermissionChecker'),\n\n // Audit\n AUDIT_LOGGER: Symbol('Shared.Security.AuditLogger'),\n SECURITY_EVENT_PUBLISHER: Symbol('Shared.Security.SecurityEventPublisher'),\n} as const;\n\n// ============================================\n// CONFIGURATION CONTRACTS\n// ============================================\n\n/**\n * Configuration and environment contracts\n * Centralized configuration management\n */\nexport const CONFIGURATION_CONTRACTS = {\n // Core configuration\n SERVER_CONFIG: Symbol('Shared.Config.ServerConfig'),\n DATABASE_CONFIG: Symbol('Shared.Config.DatabaseConfig'),\n\n // Environment-specific\n DEVELOPMENT_CONFIG: Symbol('Shared.Config.DevelopmentConfig'),\n PRODUCTION_CONFIG: Symbol('Shared.Config.ProductionConfig'),\n\n // Feature flags\n FEATURE_FLAG_SERVICE: Symbol('Shared.Config.FeatureFlagService'),\n ENVIRONMENT_DETECTOR: Symbol('Shared.Config.EnvironmentDetector'),\n} as const;\n\n// Type-safe access to shared contracts\nexport type NavigationContract = (typeof NAVIGATION_CONTRACTS)[keyof typeof NAVIGATION_CONTRACTS];\nexport type LoggingContract = (typeof LOGGING_CONTRACTS)[keyof typeof LOGGING_CONTRACTS];\nexport type SecurityContract = (typeof SECURITY_CONTRACTS)[keyof typeof SECURITY_CONTRACTS];\nexport type ConfigurationContract =\n (typeof CONFIGURATION_CONTRACTS)[keyof typeof CONFIGURATION_CONTRACTS];\n\n// ============================================\n// NAVIGATION INTERFACES EXPORT\n// ============================================\n\n/**\n * Export all NavigationHints interfaces and types\n * Making them available for cross-cutting use\n */\nexport * from './NavigationHints';\n\n/**\n * Export all SemanticNavigation interfaces and types\n * Semantic domain-aware navigation patterns\n */\nexport * from './SemanticNavigation';\n\n/**\n * Export MCP Semantic Startup Enforcer\n * Mandatory semantic context loading for all MCP servers\n */\nexport * from './MCPSemanticStartupEnforcer';\n\n/**\n * Export Health Check utilities and interfaces\n * Standard health check patterns for all MCP servers\n */\nexport * from './HealthCheck';\n","/**\n * Contract Registry - Single Source of Truth\n *\n * Central registry that aggregates all DI contracts across layers.\n * This provides a single import point for all dependency injection symbols,\n * ensuring consistency and preventing symbol duplication.\n *\n * Usage:\n * ```typescript\n * import { CONTRACTS } from '@swoft/platform-contracts';\n *\n * @inject(CONTRACTS.INFRASTRUCTURE.MONGO_CLIENT)\n * @inject(CONTRACTS.DOMAIN.SCHEMA_REPOSITORY)\n * @inject(CONTRACTS.APPLICATION.CAS_SERVICE)\n * ```\n */\n\nimport { INFRASTRUCTURE_CONTRACTS } from './infrastructure';\nimport { DOMAIN_CONTRACTS, DOMAIN_SERVICE_CONTRACTS } from './domain';\nimport { APPLICATION_CONTRACTS, CQRS_CONTRACTS, USE_CASE_CONTRACTS } from './application';\nimport { LOGGING_CONTRACTS, SECURITY_CONTRACTS, CONFIGURATION_CONTRACTS } from './shared';\n\n// ============================================\n// UNIFIED CONTRACT REGISTRY\n// ============================================\n\n/**\n * The CONTRACTS registry - single source of truth for all DI symbols\n *\n * Organized by architectural layer following DDD principles:\n * - INFRASTRUCTURE: External adapters (databases, APIs, file systems)\n * - DOMAIN: Core business logic ports (repositories, domain services)\n * - APPLICATION: Use cases and application services\n * - SHARED: Cross-cutting concerns (logging, security, config)\n */\nexport const CONTRACTS = {\n // Infrastructure Layer (External dependencies)\n INFRASTRUCTURE: INFRASTRUCTURE_CONTRACTS,\n\n // Domain Layer (Business logic ports)\n DOMAIN: {\n REPOSITORIES: DOMAIN_CONTRACTS,\n SERVICES: DOMAIN_SERVICE_CONTRACTS,\n },\n\n // Application Layer (Use cases and orchestration)\n APPLICATION: {\n SERVICES: APPLICATION_CONTRACTS,\n CQRS: CQRS_CONTRACTS,\n USE_CASES: USE_CASE_CONTRACTS,\n },\n\n // Shared Layer (Cross-cutting concerns)\n SHARED: {\n LOGGING: LOGGING_CONTRACTS,\n SECURITY: SECURITY_CONTRACTS,\n CONFIGURATION: CONFIGURATION_CONTRACTS,\n },\n} as const;\n\n// ============================================\n// LEGACY COMPATIBILITY EXPORTS\n// ============================================\n\n/**\n * Legacy exports for backward compatibility during migration\n * TODO: Remove after all packages are migrated to CONTRACTS registry\n *\n * @deprecated Use CONTRACTS.INFRASTRUCTURE.* instead\n */\nexport const DI_MONGO_CLIENT = CONTRACTS.INFRASTRUCTURE.MONGO_CLIENT;\nexport const DI_DATABASE_NAME = CONTRACTS.INFRASTRUCTURE.DATABASE_NAME;\nexport const DI_MONGO_CONNECTION_STRING = CONTRACTS.INFRASTRUCTURE.MONGO_CONNECTION_STRING;\n\n/**\n * @deprecated Use CONTRACTS.DOMAIN.REPOSITORIES.* instead\n */\nexport const DI_SCHEMA_REPOSITORY = CONTRACTS.DOMAIN.REPOSITORIES.SCHEMA_REPOSITORY;\nexport const DI_DOCUMENTATION_REPOSITORY = CONTRACTS.DOMAIN.REPOSITORIES.DOCUMENTATION_REPOSITORY;\n\n/**\n * @deprecated Use CONTRACTS.APPLICATION.SERVICES.* instead\n */\nexport const DI_CAS_SERVICE = CONTRACTS.APPLICATION.SERVICES.CAS_SERVICE;\nexport const DI_SERVICE_MANAGER = CONTRACTS.APPLICATION.SERVICES.SERVICE_MANAGER;\n\n// ============================================\n// TYPE UTILITIES\n// ============================================\n\n/**\n * Extract all contract symbols as a union type\n * Useful for type-safe container registration\n */\nexport type AllContracts =\n | (typeof CONTRACTS.INFRASTRUCTURE)[keyof typeof CONTRACTS.INFRASTRUCTURE]\n | (typeof CONTRACTS.DOMAIN.REPOSITORIES)[keyof typeof CONTRACTS.DOMAIN.REPOSITORIES]\n | (typeof CONTRACTS.DOMAIN.SERVICES)[keyof typeof CONTRACTS.DOMAIN.SERVICES]\n | (typeof CONTRACTS.APPLICATION.SERVICES)[keyof typeof CONTRACTS.APPLICATION.SERVICES]\n | (typeof CONTRACTS.APPLICATION.CQRS)[keyof typeof CONTRACTS.APPLICATION.CQRS]\n | (typeof CONTRACTS.APPLICATION.USE_CASES)[keyof typeof CONTRACTS.APPLICATION.USE_CASES]\n | (typeof CONTRACTS.SHARED.LOGGING)[keyof typeof CONTRACTS.SHARED.LOGGING]\n | (typeof CONTRACTS.SHARED.SECURITY)[keyof typeof CONTRACTS.SHARED.SECURITY]\n | (typeof CONTRACTS.SHARED.CONFIGURATION)[keyof typeof CONTRACTS.SHARED.CONFIGURATION];\n\n/**\n * Contract metadata for documentation and tooling\n */\nexport const CONTRACT_METADATA = {\n version: '1.0.0',\n totalContracts: Object.keys(CONTRACTS).length,\n layers: ['INFRASTRUCTURE', 'DOMAIN', 'APPLICATION', 'SHARED'] as const,\n description: 'DDD-compliant dependency injection contracts for Swoft platform',\n} as const;\n"],"mappings":"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","names":["INFRASTRUCTURE_CONTRACTS","MONGO_CLIENT","Symbol","DATABASE_NAME","MONGO_CONNECTION_STRING","CAS_STORAGE_PORT","DISK_REGISTRY_PORT","DISK_ADAPTER_RESOLVER","S3_CLIENT","SECRET_MANAGER","DOMAIN_CONTRACTS","SCHEMA_REPOSITORY","Symbol","BUSINESS_ACTION_REPOSITORY","DOCUMENTATION_REPOSITORY","ATOMIC_TASK_REPOSITORY","HANDOFF_REPOSITORY","MESSAGE_REPOSITORY","DOMAIN_SERVICE_CONTRACTS","CONTENT_DISCOVERY_SERVICE","RELATIONSHIP_DISCOVERY_SERVICE","TASK_ORCHESTRATION_SERVICE","BUSINESS_ACTION_ORCHESTRATOR","APPLICATION_CONTRACTS","CAS_SERVICE","Symbol","CONTRACT_DISCOVERY_SERVICE","SCHEMA_APPLICATION_SERVICE","DOCUMENTATION_APPLICATION_SERVICE","SERVICE_MANAGER","SERVICE_REGISTRY","TASK_ORCHESTRATOR","SEEDER_MANAGER","VALIDATION_SERVICE","CQRS_CONTRACTS","COMMAND_BUS","COMMAND_HANDLER_REGISTRY","QUERY_BUS","QUERY_HANDLER_REGISTRY","EVENT_BUS","EVENT_HANDLER_REGISTRY","USE_CASE_CONTRACTS","START_SERVICE_USE_CASE","STOP_SERVICE_USE_CASE","LIST_SERVICES_USE_CASE","CREATE_DOCUMENTATION_USE_CASE","UPDATE_DOCUMENTATION_USE_CASE","PUBLISH_DOCUMENTATION_USE_CASE","readFile","join","MCPSemanticStartupEnforcer","domainId","packageName","semantics","domainBoundary","startupResult","success","entityRelationships","workflows","customSemantics","errors","warnings","enforceStartup","console","log","loadDomainBoundaryMap","loadSemanticNavigation","validateSemanticUnderstanding","displaySemanticSummary","error","push","message","workspace","process","env","SWOFT_TEAM_WORKSPACE","cwd","mapPath","join","content","readFile","domainInfo","parseDomainBoundaryMap","Error","domainRef","boundedContexts","length","publishedLanguage","lines","split","currentDomain","foundDomain","line","domainMatch","match","domainName","toLowerCase","includes","replace","services","packageMatch","contextsMatch","map","c","trim","termsMatch","t","dbMatch","database","semanticExports","tryLoadSemantics","domainSemantics","createMinimalSemantics","mcpServerId","confidence","lastUpdated","Date","toISOString","validations","name","check","validation","forEach","term","slice","rel","sourceEntityType","relationshipType","targetEntityType","wf","steps","getSemantics","getDomainBoundary","createSemanticEnforcer","HealthCheckUtils","createResponse","serviceName","version","domainChecks","domainDetails","metrics","status","service","timestamp","Date","toISOString","checks","connectivity","responseTime","createErrorResponse","error","message","String","collectStandardMetrics","uptime","process","memory","memoryUsage","HealthNavigationPatterns","getSystemHealthHints","toolName","description","relevanceContext","getRecoveryHints","NAVIGATION_CONTRACTS","NAVIGATION_HINTS_PROVIDER","Symbol","NAVIGATION_HINTS_BUILDER","NAVIGATION_HINTS_FACTORY","CROSS_MCP_NAVIGATOR","MCP_TOOL_REGISTRY","WORKFLOW_CONTEXT_PROVIDER","GIT_CONTEXT_PROVIDER","NAVIGATION_PROCESSOR","NAVIGATION_FILTER","SEMANTIC_NAVIGATION_REGISTRY","SEMANTIC_HINTS_FACTORY","DOMAIN_SEMANTICS_PROVIDER","LOGGING_CONTRACTS","LOGGER","BOUNDED_CONTEXT_LOGGER","LAYER_LOGGER","PERFORMANCE_MONITOR","METRICS_COLLECTOR","HEALTH_CHECK_SERVICE","DISK_HEALTH_MONITOR","SECURITY_CONTRACTS","AUTHENTICATION_SERVICE","TOKEN_VALIDATOR","AUTHORIZATION_SERVICE","PERMISSION_CHECKER","AUDIT_LOGGER","SECURITY_EVENT_PUBLISHER","CONFIGURATION_CONTRACTS","SERVER_CONFIG","DATABASE_CONFIG","DEVELOPMENT_CONFIG","PRODUCTION_CONFIG","FEATURE_FLAG_SERVICE","ENVIRONMENT_DETECTOR","CONTRACTS","INFRASTRUCTURE","INFRASTRUCTURE_CONTRACTS","DOMAIN","REPOSITORIES","DOMAIN_CONTRACTS","SERVICES","DOMAIN_SERVICE_CONTRACTS","APPLICATION","APPLICATION_CONTRACTS","CQRS","CQRS_CONTRACTS","USE_CASES","USE_CASE_CONTRACTS","SHARED","LOGGING","LOGGING_CONTRACTS","SECURITY","SECURITY_CONTRACTS","CONFIGURATION","CONFIGURATION_CONTRACTS","DI_MONGO_CLIENT","MONGO_CLIENT","DI_DATABASE_NAME","DATABASE_NAME","DI_MONGO_CONNECTION_STRING","MONGO_CONNECTION_STRING","DI_SCHEMA_REPOSITORY","SCHEMA_REPOSITORY","DI_DOCUMENTATION_REPOSITORY","DOCUMENTATION_REPOSITORY","DI_CAS_SERVICE","CAS_SERVICE","DI_SERVICE_MANAGER","SERVICE_MANAGER","CONTRACT_METADATA","version","totalContracts","Object","keys","length","layers","description"]}