*/ public static array $listens = [ AdminPanelBooting::class => 'onAdminPanel', ConsoleBooting::class => 'onConsole', McpToolsRegistering::class => 'onMcpTools', ]; /** * Register any application services. */ public function register(): void { $this->app->singleton(ToolRegistry::class); $this->app->singleton(ToolAnalyticsService::class); $this->app->singleton(McpQuotaService::class); $this->app->singleton(ToolDependencyService::class); $this->app->singleton(AuditLogService::class); $this->app->singleton(ToolVersionService::class); } /** * Bootstrap any application services. */ public function boot(): void { $this->loadMigrationsFrom(__DIR__.'/Migrations'); // Register event listener for tool execution analytics Event::listen(ToolExecuted::class, RecordToolExecution::class); } // ------------------------------------------------------------------------- // Event-driven handlers // ------------------------------------------------------------------------- public function onAdminPanel(AdminPanelBooting $event): void { $event->views($this->moduleName, __DIR__.'/View/Blade'); if (file_exists(__DIR__.'/Routes/admin.php')) { $event->routes(fn () => require __DIR__.'/Routes/admin.php'); } $event->livewire('mcp.admin.api-key-manager', View\Modal\Admin\ApiKeyManager::class); $event->livewire('mcp.admin.playground', View\Modal\Admin\Playground::class); $event->livewire('mcp.admin.mcp-playground', View\Modal\Admin\McpPlayground::class); $event->livewire('mcp.admin.request-log', View\Modal\Admin\RequestLog::class); $event->livewire('mcp.admin.tool-analytics-dashboard', View\Modal\Admin\ToolAnalyticsDashboard::class); $event->livewire('mcp.admin.tool-analytics-detail', View\Modal\Admin\ToolAnalyticsDetail::class); $event->livewire('mcp.admin.quota-usage', View\Modal\Admin\QuotaUsage::class); $event->livewire('mcp.admin.audit-log-viewer', View\Modal\Admin\AuditLogViewer::class); $event->livewire('mcp.admin.tool-version-manager', View\Modal\Admin\ToolVersionManager::class); } public function onConsole(ConsoleBooting $event): void { $event->command(Console\Commands\McpAgentServerCommand::class); $event->command(Console\Commands\PruneMetricsCommand::class); $event->command(Console\Commands\VerifyAuditLogCommand::class); } public function onMcpTools(McpToolsRegistering $event): void { // MCP tool handlers will be registered here once extracted // from the monolithic McpAgentServerCommand } }