@memberjunction/ng-dashboards 5.3.0 → 5.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/dist/AI/components/agents/agent-configuration.component.js.map +1 -1
  2. package/dist/AI/components/agents/agent-editor.component.js.map +1 -1
  3. package/dist/AI/components/agents/agent-filter-panel.component.js.map +1 -1
  4. package/dist/AI/components/charts/performance-heatmap.component.js.map +1 -1
  5. package/dist/AI/components/charts/time-series-chart.component.js.map +1 -1
  6. package/dist/AI/components/execution-monitoring.component.js.map +1 -1
  7. package/dist/AI/components/models/model-management.component.js.map +1 -1
  8. package/dist/AI/components/prompts/model-prompt-priority-matrix.component.js.map +1 -1
  9. package/dist/AI/components/prompts/prompt-filter-panel.component.js.map +1 -1
  10. package/dist/AI/components/prompts/prompt-management.component.js.map +1 -1
  11. package/dist/AI/components/prompts/prompt-version-control.component.js.map +1 -1
  12. package/dist/AI/components/system/system-config-filter-panel.component.js.map +1 -1
  13. package/dist/AI/components/system/system-configuration.component.js.map +1 -1
  14. package/dist/AI/components/widgets/kpi-card.component.js.map +1 -1
  15. package/dist/AI/components/widgets/live-execution-widget.component.js.map +1 -1
  16. package/dist/AI/index.js.map +1 -1
  17. package/dist/AI/services/ai-instrumentation.service.js.map +1 -1
  18. package/dist/APIKeys/api-applications-panel.component.js +2 -2
  19. package/dist/APIKeys/api-applications-panel.component.js.map +1 -1
  20. package/dist/APIKeys/api-key-create-dialog.component.js +2 -2
  21. package/dist/APIKeys/api-key-create-dialog.component.js.map +1 -1
  22. package/dist/APIKeys/api-key-edit-panel.component.js +2 -2
  23. package/dist/APIKeys/api-key-edit-panel.component.js.map +1 -1
  24. package/dist/APIKeys/api-key-list.component.js +2 -2
  25. package/dist/APIKeys/api-key-list.component.js.map +1 -1
  26. package/dist/APIKeys/api-keys-resource.component.js +2 -2
  27. package/dist/APIKeys/api-keys-resource.component.js.map +1 -1
  28. package/dist/APIKeys/api-scopes-panel.component.js +2 -2
  29. package/dist/APIKeys/api-scopes-panel.component.js.map +1 -1
  30. package/dist/APIKeys/api-usage-panel.component.js +2 -2
  31. package/dist/APIKeys/api-usage-panel.component.js.map +1 -1
  32. package/dist/APIKeys/index.js.map +1 -1
  33. package/dist/Actions/components/actions-list-view.component.js.map +1 -1
  34. package/dist/Actions/components/actions-overview.component.js.map +1 -1
  35. package/dist/Actions/components/categories-list-view.component.js.map +1 -1
  36. package/dist/Actions/components/code-management.component.js.map +1 -1
  37. package/dist/Actions/components/entity-integration.component.js.map +1 -1
  38. package/dist/Actions/components/execution-monitoring.component.js.map +1 -1
  39. package/dist/Actions/components/executions-list-view.component.js.map +1 -1
  40. package/dist/Actions/components/explorer/action-breadcrumb.component.js.map +1 -1
  41. package/dist/Actions/components/explorer/action-card.component.js.map +1 -1
  42. package/dist/Actions/components/explorer/action-explorer.component.js.map +1 -1
  43. package/dist/Actions/components/explorer/action-list-item.component.js.map +1 -1
  44. package/dist/Actions/components/explorer/action-toolbar.component.js.map +1 -1
  45. package/dist/Actions/components/explorer/action-tree-panel.component.js.map +1 -1
  46. package/dist/Actions/components/explorer/index.js.map +1 -1
  47. package/dist/Actions/components/explorer/new-action-panel.component.js.map +1 -1
  48. package/dist/Actions/components/explorer/new-category-panel.component.js.map +1 -1
  49. package/dist/Actions/components/scheduled-actions.component.js.map +1 -1
  50. package/dist/Actions/components/security-permissions.component.js.map +1 -1
  51. package/dist/Actions/index.js.map +1 -1
  52. package/dist/Actions/services/action-explorer-state.service.js.map +1 -1
  53. package/dist/Communication/communication-dashboard.component.js.map +1 -1
  54. package/dist/Communication/communication-logs-resource.component.js.map +1 -1
  55. package/dist/Communication/communication-monitor-resource.component.js.map +1 -1
  56. package/dist/Communication/communication-providers-resource.component.js.map +1 -1
  57. package/dist/Communication/communication-runs-resource.component.js.map +1 -1
  58. package/dist/Communication/communication-templates-resource.component.js.map +1 -1
  59. package/dist/ComponentStudio/component-studio-dashboard.component.js.map +1 -1
  60. package/dist/ComponentStudio/components/ai-assistant/ai-assistant-panel.component.js.map +1 -1
  61. package/dist/ComponentStudio/components/artifact-load-dialog.component.js.map +1 -1
  62. package/dist/ComponentStudio/components/artifact-selection-dialog.component.js.map +1 -1
  63. package/dist/ComponentStudio/components/browser/component-browser.component.js.map +1 -1
  64. package/dist/ComponentStudio/components/editors/code-editor-panel.component.js.map +1 -1
  65. package/dist/ComponentStudio/components/editors/data-requirements-editor.component.js.map +1 -1
  66. package/dist/ComponentStudio/components/editors/requirements-editor.component.js.map +1 -1
  67. package/dist/ComponentStudio/components/editors/spec-editor.component.js.map +1 -1
  68. package/dist/ComponentStudio/components/new-component-dialog/new-component-dialog.component.js.map +1 -1
  69. package/dist/ComponentStudio/components/save-version-dialog/save-version-dialog.component.js.map +1 -1
  70. package/dist/ComponentStudio/components/text-import-dialog.component.js.map +1 -1
  71. package/dist/ComponentStudio/components/workspace/component-preview.component.js.map +1 -1
  72. package/dist/ComponentStudio/components/workspace/editor-tabs.component.js.map +1 -1
  73. package/dist/ComponentStudio/index.js.map +1 -1
  74. package/dist/ComponentStudio/services/component-studio-state.service.js.map +1 -1
  75. package/dist/ComponentStudio/services/component-version.service.js.map +1 -1
  76. package/dist/Credentials/components/credentials-audit-resource.component.js.map +1 -1
  77. package/dist/Credentials/components/credentials-categories-resource.component.js.map +1 -1
  78. package/dist/Credentials/components/credentials-list-resource.component.js.map +1 -1
  79. package/dist/Credentials/components/credentials-overview-resource.component.js.map +1 -1
  80. package/dist/Credentials/components/credentials-types-resource.component.js.map +1 -1
  81. package/dist/Credentials/credentials-dashboard.component.js.map +1 -1
  82. package/dist/Credentials/index.js.map +1 -1
  83. package/dist/Credentials/pipes/group-by.pipe.js.map +1 -1
  84. package/dist/DashboardBrowser/dashboard-browser-resource.component.js.map +1 -1
  85. package/dist/DashboardBrowser/dashboard-share-dialog.component.js.map +1 -1
  86. package/dist/DataExplorer/components/filter-dialog/filter-dialog.component.js.map +1 -1
  87. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts +25 -3
  88. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.d.ts.map +1 -1
  89. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js +158 -34
  90. package/dist/DataExplorer/components/navigation-panel/navigation-panel.component.js.map +1 -1
  91. package/dist/DataExplorer/components/view-selector/view-selector.component.js.map +1 -1
  92. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts +57 -23
  93. package/dist/DataExplorer/data-explorer-dashboard.component.d.ts.map +1 -1
  94. package/dist/DataExplorer/data-explorer-dashboard.component.js +600 -445
  95. package/dist/DataExplorer/data-explorer-dashboard.component.js.map +1 -1
  96. package/dist/DataExplorer/data-explorer-resource.component.js.map +1 -1
  97. package/dist/DataExplorer/index.js.map +1 -1
  98. package/dist/DataExplorer/models/explorer-state.interface.d.ts +25 -0
  99. package/dist/DataExplorer/models/explorer-state.interface.d.ts.map +1 -1
  100. package/dist/DataExplorer/models/explorer-state.interface.js +6 -1
  101. package/dist/DataExplorer/models/explorer-state.interface.js.map +1 -1
  102. package/dist/DataExplorer/services/explorer-state.service.d.ts +21 -3
  103. package/dist/DataExplorer/services/explorer-state.service.d.ts.map +1 -1
  104. package/dist/DataExplorer/services/explorer-state.service.js +70 -36
  105. package/dist/DataExplorer/services/explorer-state.service.js.map +1 -1
  106. package/dist/EntityAdmin/entity-admin-dashboard.component.js +2 -2
  107. package/dist/EntityAdmin/entity-admin-dashboard.component.js.map +1 -1
  108. package/dist/Home/home-application.js.map +1 -1
  109. package/dist/Home/home-dashboard.component.d.ts +20 -5
  110. package/dist/Home/home-dashboard.component.d.ts.map +1 -1
  111. package/dist/Home/home-dashboard.component.js +128 -79
  112. package/dist/Home/home-dashboard.component.js.map +1 -1
  113. package/dist/Lists/components/lists-browse-resource.component.js.map +1 -1
  114. package/dist/Lists/components/lists-categories-resource.component.js.map +1 -1
  115. package/dist/Lists/components/lists-my-lists-resource.component.js.map +1 -1
  116. package/dist/Lists/components/lists-operations-resource.component.js.map +1 -1
  117. package/dist/Lists/components/venn-diagram/venn-diagram.component.js.map +1 -1
  118. package/dist/Lists/index.js.map +1 -1
  119. package/dist/Lists/services/list-set-operations.service.js.map +1 -1
  120. package/dist/MCP/components/mcp-connection-dialog.component.js.map +1 -1
  121. package/dist/MCP/components/mcp-log-detail-panel.component.js.map +1 -1
  122. package/dist/MCP/components/mcp-server-dialog.component.js.map +1 -1
  123. package/dist/MCP/components/mcp-test-tool-dialog.component.js.map +1 -1
  124. package/dist/MCP/index.js.map +1 -1
  125. package/dist/MCP/mcp-dashboard.component.js.map +1 -1
  126. package/dist/MCP/mcp-filter-panel.component.js.map +1 -1
  127. package/dist/MCP/mcp-resource.component.js.map +1 -1
  128. package/dist/MCP/mcp.module.js.map +1 -1
  129. package/dist/MCP/services/mcp-tools.service.js.map +1 -1
  130. package/dist/QueryBrowser/query-browser-resource.component.js.map +1 -1
  131. package/dist/Scheduling/components/index.js.map +1 -1
  132. package/dist/Scheduling/components/job-slideout.component.js.map +1 -1
  133. package/dist/Scheduling/components/scheduling-activity-resource.component.js.map +1 -1
  134. package/dist/Scheduling/components/scheduling-activity.component.js.map +1 -1
  135. package/dist/Scheduling/components/scheduling-jobs-resource.component.js.map +1 -1
  136. package/dist/Scheduling/components/scheduling-jobs.component.js.map +1 -1
  137. package/dist/Scheduling/components/scheduling-overview-resource.component.js.map +1 -1
  138. package/dist/Scheduling/components/scheduling-overview.component.js.map +1 -1
  139. package/dist/Scheduling/scheduling-dashboard.component.js.map +1 -1
  140. package/dist/Scheduling/services/scheduling-instrumentation.service.js.map +1 -1
  141. package/dist/SystemDiagnostics/index.js.map +1 -1
  142. package/dist/SystemDiagnostics/system-diagnostics.component.d.ts.map +1 -1
  143. package/dist/SystemDiagnostics/system-diagnostics.component.js +3 -3
  144. package/dist/SystemDiagnostics/system-diagnostics.component.js.map +1 -1
  145. package/dist/Testing/components/index.js.map +1 -1
  146. package/dist/Testing/components/testing-analytics-resource.component.js.map +1 -1
  147. package/dist/Testing/components/testing-analytics.component.js.map +1 -1
  148. package/dist/Testing/components/testing-dashboard-tab-resource.component.js.map +1 -1
  149. package/dist/Testing/components/testing-dashboard-tab.component.js.map +1 -1
  150. package/dist/Testing/components/testing-explorer-resource.component.js.map +1 -1
  151. package/dist/Testing/components/testing-explorer.component.js.map +1 -1
  152. package/dist/Testing/components/testing-review-resource.component.js.map +1 -1
  153. package/dist/Testing/components/testing-review.component.js.map +1 -1
  154. package/dist/Testing/components/testing-runs-resource.component.js.map +1 -1
  155. package/dist/Testing/components/testing-runs.component.js.map +1 -1
  156. package/dist/Testing/components/widgets/oracle-breakdown-table.component.js.map +1 -1
  157. package/dist/Testing/components/widgets/suite-tree.component.js.map +1 -1
  158. package/dist/Testing/components/widgets/test-run-detail-panel.component.js.map +1 -1
  159. package/dist/Testing/services/testing-instrumentation.service.js.map +1 -1
  160. package/dist/Testing/testing-dashboard.component.js.map +1 -1
  161. package/dist/VersionHistory/components/diff-resource.component.js.map +1 -1
  162. package/dist/VersionHistory/components/graph-resource.component.js.map +1 -1
  163. package/dist/VersionHistory/components/index.js.map +1 -1
  164. package/dist/VersionHistory/components/labels-resource.component.js.map +1 -1
  165. package/dist/VersionHistory/components/restore-resource.component.js.map +1 -1
  166. package/dist/VersionHistory/index.js.map +1 -1
  167. package/dist/__tests__/dashboards.test.js.map +1 -1
  168. package/dist/module.js.map +1 -1
  169. package/dist/public-api.js.map +1 -1
  170. package/dist/shared/pipes/highlight-search.pipe.js.map +1 -1
  171. package/dist/shared/pipes/index.js.map +1 -1
  172. package/dist/shared/shared-pipes.module.js.map +1 -1
  173. package/package.json +38 -38
@@ -1 +1 @@
1
- {"version":3,"file":"mcp-dashboard.component.js","sourceRoot":"","sources":["../../src/MCP/mcp-dashboard.component.ts","../../src/MCP/mcp-dashboard.component.html"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mcp-dashboard.component.js","sourceRoot":"","sources":["../../src/MCP/mcp-dashboard.component.ts","../../src/MCP/mcp-dashboard.component.html"],"names":[],"mappings":"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","sourcesContent":["/**\n * @fileoverview MCP (Model Context Protocol) Management Dashboard\n *\n * Provides a comprehensive admin interface for managing MCP servers,\n * connections, tools, and viewing execution logs.\n *\n * Uses left sidebar navigation with query string deep linking via NavigationService.\n *\n * @module MCP Dashboard\n */\n\nimport { Component, OnDestroy, ChangeDetectorRef, AfterViewInit, OnInit } from '@angular/core';\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\nimport { Subject, BehaviorSubject, Subscription } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged, filter } from 'rxjs/operators';\nimport { RunView, Metadata, CompositeKey } from '@memberjunction/core';\nimport { BaseDashboard, NavigationService } from '@memberjunction/ng-shared';\nimport {\n ResourceData,\n MJMCPServerEntity,\n MJMCPServerConnectionEntity,\n MJMCPServerToolEntity,\n MJMCPToolExecutionLogEntity,\n MCPEngine,\n UserInfoEngine,\n MJOAuthAuthorizationStateEntity,\n MJOAuthClientRegistrationEntity,\n MJOAuthTokenEntity\n} from '@memberjunction/core-entities';\nimport { RegisterClass } from '@memberjunction/global';\nimport { MCPToolsService, MCPSyncState, MCPSyncResult } from './services/mcp-tools.service';\n\n/**\n * User preferences for the MCP Dashboard\n */\ninterface MCPDashboardUserPreferences {\n toolsViewMode: ToolsViewMode;\n toolsSortBy: ToolsSortBy;\n toolsSortAscending: boolean;\n logsSortColumn: 'status' | 'server' | 'tool' | 'connection' | 'started' | 'duration' | 'error';\n logsSortAscending: boolean;\n searchTerm: string;\n serverStatus: string;\n connectionStatus: string;\n toolStatus: string;\n logStatus: string;\n filterPanelVisible: boolean;\n}\n\n/**\n * Interface for MCP Server data\n */\nexport interface MCPServerData {\n ID: string;\n Name: string;\n Description: string | null;\n TransportType: string;\n ServerURL: string | null;\n Command: string | null;\n DefaultAuthType: string;\n Status: string;\n RateLimitPerMinute: number | null;\n RateLimitPerHour: number | null;\n LastSyncAt: Date | null;\n ConnectionCount?: number;\n ToolCount?: number;\n // OAuth configuration fields\n OAuthIssuerURL?: string | null;\n OAuthScopes?: string | null;\n OAuthMetadataCacheTTLMinutes?: number | null;\n OAuthClientID?: string | null;\n OAuthClientSecretEncrypted?: string | null;\n OAuthRequirePKCE?: boolean;\n}\n\n/**\n * Interface for MCP Connection data\n */\nexport interface MCPConnectionData {\n ID: string;\n MCPServerID: string;\n ServerName?: string;\n Name: string;\n Description: string | null;\n Status: string;\n CompanyID: string | null;\n AutoSyncTools: boolean;\n LogToolCalls: boolean;\n LastConnectedAt: Date | null;\n LastErrorMessage: string | null;\n}\n\n/**\n * Interface for MCP Tool data\n */\nexport interface MCPToolData {\n ID: string;\n MCPServerID: string;\n ServerName?: string;\n ToolName: string;\n ToolTitle: string | null;\n ToolDescription: string | null;\n InputSchema: string;\n Status: string;\n DiscoveredAt: Date;\n LastSeenAt: Date;\n}\n\n/**\n * Interface for server group (tools grouped by server)\n */\nexport interface MCPServerGroup {\n server: MCPServerData;\n tools: MCPToolData[];\n expanded: boolean;\n}\n\n/**\n * Tools view mode\n */\nexport type ToolsViewMode = 'card' | 'list';\n\n/**\n * Tools sort options\n */\nexport type ToolsSortBy = 'name' | 'server' | 'discovered' | 'lastSeen';\n\n/**\n * Interface for MCP Execution Log data\n */\nexport interface MCPExecutionLogData {\n ID: string;\n ConnectionID: string;\n ConnectionName?: string;\n ToolID: string | null;\n ToolName: string;\n Status: string;\n StartedAt: Date;\n CompletedAt: Date | null;\n DurationMs: number | null;\n UserID: string;\n UserName?: string;\n ErrorMessage: string | null;\n InputArgs?: string | null;\n Result?: string | null;\n ServerName?: string;\n}\n\n/**\n * Dashboard filter options\n */\nexport interface MCPDashboardFilters {\n searchTerm: string;\n serverStatus: string;\n connectionStatus: string;\n toolStatus: string;\n logStatus: string;\n}\n\n/**\n * Dashboard statistics\n */\nexport interface MCPDashboardStats {\n totalServers: number;\n activeServers: number;\n totalConnections: number;\n activeConnections: number;\n totalTools: number;\n activeTools: number;\n recentExecutions: number;\n failedExecutions: number;\n}\n\n/**\n * Active tab type\n */\nexport type MCPDashboardTab = 'servers' | 'connections' | 'tools' | 'logs';\n\n/**\n * MCP Management Dashboard Component\n *\n * Provides a tab-based interface for managing:\n * - MCP Servers\n * - MCP Connections\n * - MCP Tools\n * - Execution Logs\n */\n@RegisterClass(BaseDashboard, 'MCPDashboard')\n@Component({\n standalone: false,\n selector: 'mj-mcp-dashboard',\n templateUrl: './mcp-dashboard.component.html',\n styleUrls: ['./mcp-dashboard.component.css']\n})\nexport class MCPDashboardComponent extends BaseDashboard implements OnInit, AfterViewInit, OnDestroy {\n\n // ========================================\n // State\n // ========================================\n\n // Settings persistence\n private readonly USER_SETTINGS_KEY = 'MCP.Dashboard.UserPreferences';\n private settingsPersistSubject = new Subject<void>();\n private settingsLoaded = false;\n\n private metadata = new Metadata();\n\n public servers: MCPServerData[] = [];\n public connections: MCPConnectionData[] = [];\n public tools: MCPToolData[] = [];\n public executionLogs: MCPExecutionLogData[] = [];\n\n public filteredServers: MCPServerData[] = [];\n public filteredConnections: MCPConnectionData[] = [];\n public filteredTools: MCPToolData[] = [];\n public filteredLogs: MCPExecutionLogData[] = [];\n\n public stats: MCPDashboardStats = {\n totalServers: 0,\n activeServers: 0,\n totalConnections: 0,\n activeConnections: 0,\n totalTools: 0,\n activeTools: 0,\n recentExecutions: 0,\n failedExecutions: 0\n };\n\n public ActiveTab: MCPDashboardTab = 'servers';\n public IsLoading = false;\n public ErrorMessage: string | null = null;\n\n public filters$ = new BehaviorSubject<MCPDashboardFilters>({\n searchTerm: '',\n serverStatus: 'all',\n connectionStatus: 'all',\n toolStatus: 'all',\n logStatus: 'all'\n });\n\n // Dialog state\n public ShowServerDialog = false;\n public ShowConnectionDialog = false;\n public ShowTestToolDialog = false;\n public EditingServer: MCPServerData | null = null;\n public EditingConnection: MCPConnectionData | null = null;\n\n // Test tool dialog pre-selection\n public TestToolServerID: string | null = null;\n public TestToolConnectionID: string | null = null;\n public TestToolID: string | null = null;\n\n // Log detail panel state\n public ShowLogDetailPanel = false;\n public SelectedLog: MCPExecutionLogData | null = null;\n\n // Expandable server/connection cards\n public ExpandedServerID: string | null = null;\n public ExpandedConnectionID: string | null = null;\n\n // Logs sorting state\n public LogsSortColumn: 'status' | 'server' | 'tool' | 'connection' | 'started' | 'duration' | 'error' = 'started';\n public LogsSortAscending = false; // Default to descending (most recent first)\n\n // Tools tab state\n public ToolsViewMode: ToolsViewMode = 'card';\n public ToolsSortBy: ToolsSortBy = 'server';\n public ToolsSortAscending = true;\n public ServerGroups: MCPServerGroup[] = [];\n public ExpandedToolId: string | null = null;\n\n // Navigation state\n private skipUrlUpdate = true;\n private lastNavigatedUrl: string = '';\n\n // Sync state\n public SyncStates = new Map<string, MCPSyncState>();\n private syncSubscriptions = new Map<string, Subscription>();\n\n // Filter panel state\n public FilterPanelVisible = true;\n\n // ========================================\n // Lifecycle\n // ========================================\n\n private destroy$ = new Subject<void>();\n\n constructor(\n private cdr: ChangeDetectorRef,\n private router: Router,\n private route: ActivatedRoute,\n private navigationService: NavigationService,\n private mcpToolsService: MCPToolsService\n ) {\n super();\n\n // Set up debounced settings persistence\n this.settingsPersistSubject.pipe(\n debounceTime(500),\n takeUntil(this.destroy$)\n ).subscribe(() => {\n this.persistUserPreferences();\n });\n }\n\n override async ngOnInit(): Promise<void> {\n await super.ngOnInit();\n\n // Check for OAuth completion redirect\n this.checkOAuthCompletion();\n\n // Load saved user preferences first\n this.loadUserPreferences();\n\n // Parse initial URL state\n this.parseAndApplyUrlState();\n\n // Apply configuration params if passed via NavigationService\n this.applyConfigurationParams();\n\n // Enable URL updates after initialization\n this.skipUrlUpdate = false;\n\n // Subscribe to router events to handle browser back/forward\n this.subscribeToRouterEvents();\n }\n\n /**\n * Parses the current URL query string and applies the tab state\n */\n private parseAndApplyUrlState(): void {\n const urlState = this.parseUrlState();\n if (urlState?.tab) {\n this.ActiveTab = urlState.tab;\n }\n this.lastNavigatedUrl = this.router.url;\n }\n\n /**\n * Parses URL query string to extract navigation state\n */\n private parseUrlState(): { tab?: MCPDashboardTab } | null {\n const url = this.router.url;\n const queryIndex = url.indexOf('?');\n if (queryIndex === -1) return null;\n\n const queryString = url.substring(queryIndex + 1);\n const params = new URLSearchParams(queryString);\n const tab = params.get('tab') as MCPDashboardTab | null;\n\n if (tab && this.isValidTab(tab)) {\n return { tab };\n }\n return null;\n }\n\n /**\n * Validates that a tab value is a valid MCPDashboardTab\n */\n private isValidTab(tab: string): tab is MCPDashboardTab {\n return ['servers', 'connections', 'tools', 'logs'].includes(tab);\n }\n\n /**\n * Applies configuration params passed via NavigationService\n */\n private applyConfigurationParams(): void {\n const config = this.Data?.Configuration;\n if (config?.tab && this.isValidTab(config.tab as string)) {\n this.ActiveTab = config.tab as MCPDashboardTab;\n }\n }\n\n /**\n * Subscribes to router NavigationEnd events to handle browser back/forward\n */\n private subscribeToRouterEvents(): void {\n this.router.events\n .pipe(\n filter((event): event is NavigationEnd => event instanceof NavigationEnd),\n takeUntil(this.destroy$)\n )\n .subscribe(event => {\n const currentUrl = event.urlAfterRedirects || event.url;\n if (currentUrl !== this.lastNavigatedUrl) {\n this.onExternalNavigation(currentUrl);\n }\n });\n }\n\n // ========================================\n // User Settings Persistence\n // ========================================\n\n /**\n * Load saved user preferences from the UserInfoEngine\n */\n private loadUserPreferences(): void {\n try {\n const savedPrefs = UserInfoEngine.Instance.GetSetting(this.USER_SETTINGS_KEY);\n if (savedPrefs) {\n const prefs = JSON.parse(savedPrefs) as MCPDashboardUserPreferences;\n this.applyUserPreferencesFromStorage(prefs);\n }\n } catch (error) {\n console.warn('[MCPDashboard] Failed to load user preferences:', error);\n } finally {\n this.settingsLoaded = true;\n }\n }\n\n /**\n * Apply loaded preferences to component state\n */\n private applyUserPreferencesFromStorage(prefs: MCPDashboardUserPreferences): void {\n if (prefs.toolsViewMode) {\n this.ToolsViewMode = prefs.toolsViewMode;\n }\n if (prefs.toolsSortBy) {\n this.ToolsSortBy = prefs.toolsSortBy;\n }\n if (prefs.toolsSortAscending !== undefined) {\n this.ToolsSortAscending = prefs.toolsSortAscending;\n }\n if (prefs.logsSortColumn) {\n this.LogsSortColumn = prefs.logsSortColumn;\n }\n if (prefs.logsSortAscending !== undefined) {\n this.LogsSortAscending = prefs.logsSortAscending;\n }\n // Apply filter preferences\n const currentFilters = this.filters$.value;\n this.filters$.next({\n ...currentFilters,\n searchTerm: prefs.searchTerm || '',\n serverStatus: prefs.serverStatus || 'all',\n connectionStatus: prefs.connectionStatus || 'all',\n toolStatus: prefs.toolStatus || 'all',\n logStatus: prefs.logStatus || 'all'\n });\n // Apply filter panel visibility\n if (prefs.filterPanelVisible !== undefined) {\n this.FilterPanelVisible = prefs.filterPanelVisible;\n }\n }\n\n /**\n * Get current preferences as an object for saving\n */\n private getCurrentPreferences(): MCPDashboardUserPreferences {\n const currentFilters = this.filters$.value;\n return {\n toolsViewMode: this.ToolsViewMode,\n toolsSortBy: this.ToolsSortBy,\n toolsSortAscending: this.ToolsSortAscending,\n logsSortColumn: this.LogsSortColumn,\n logsSortAscending: this.LogsSortAscending,\n searchTerm: currentFilters.searchTerm,\n serverStatus: currentFilters.serverStatus,\n connectionStatus: currentFilters.connectionStatus,\n toolStatus: currentFilters.toolStatus,\n logStatus: currentFilters.logStatus,\n filterPanelVisible: this.FilterPanelVisible\n };\n }\n\n /**\n * Persist user preferences to storage (debounced)\n */\n private saveUserPreferencesDebounced(): void {\n if (!this.settingsLoaded) return; // Don't save during initial load\n this.settingsPersistSubject.next();\n }\n\n /**\n * Actually persist user preferences to the UserInfoEngine\n */\n private async persistUserPreferences(): Promise<void> {\n try {\n const prefs = this.getCurrentPreferences();\n await UserInfoEngine.Instance.SetSetting(this.USER_SETTINGS_KEY, JSON.stringify(prefs));\n } catch (error) {\n console.warn('[MCPDashboard] Failed to persist user preferences:', error);\n }\n }\n\n /**\n * Handles external navigation (browser back/forward)\n */\n private onExternalNavigation(url: string): void {\n this.lastNavigatedUrl = url;\n const queryIndex = url.indexOf('?');\n if (queryIndex === -1) return;\n\n const queryString = url.substring(queryIndex + 1);\n const params = new URLSearchParams(queryString);\n const tab = params.get('tab') as MCPDashboardTab | null;\n\n if (tab && this.isValidTab(tab) && tab !== this.ActiveTab) {\n this.skipUrlUpdate = true;\n this.ActiveTab = tab;\n this.cdr.detectChanges();\n this.skipUrlUpdate = false;\n }\n }\n\n /**\n * Updates URL query string to reflect current state using NavigationService\n */\n private updateUrl(): void {\n if (this.skipUrlUpdate) return;\n\n const queryParams: Record<string, string | null> = {\n tab: this.ActiveTab\n };\n\n this.navigationService.UpdateActiveTabQueryParams(queryParams);\n this.lastNavigatedUrl = this.router.url;\n }\n\n // Required by BaseResourceComponent\n async GetResourceDisplayName(data: ResourceData): Promise<string> {\n return 'MCP Management';\n }\n\n // Required by BaseDashboard\n protected initDashboard(): void {\n this.setupFilterSubscription();\n }\n\n // Required by BaseDashboard\n protected loadData(): void {\n this.loadAllData();\n }\n\n ngAfterViewInit(): void {\n this.cdr.detectChanges();\n }\n\n override ngOnDestroy(): void {\n super.ngOnDestroy();\n this.destroy$.next();\n this.destroy$.complete();\n // Cleanup sync subscriptions\n this.syncSubscriptions.forEach(sub => sub.unsubscribe());\n this.syncSubscriptions.clear();\n }\n\n // ========================================\n // Data Loading\n // ========================================\n\n /**\n * Loads all dashboard data using MCPEngine for cached entities\n * and RunView for execution logs (historical data loaded on-demand)\n * @param forceRefresh - If true, forces MCPEngine to reload from database (use after sync operations)\n */\n public async loadAllData(forceRefresh: boolean = false): Promise<void> {\n this.IsLoading = true;\n this.ErrorMessage = null;\n this.cdr.detectChanges();\n\n try {\n // Initialize MCPEngine and load execution logs in parallel\n // forceRefresh=true is needed after sync operations since backend changes\n // won't trigger local BaseEntity events\n const rv = new RunView();\n const [, logsResult] = await Promise.all([\n MCPEngine.Instance.Config(forceRefresh),\n rv.RunView<MJMCPToolExecutionLogEntity>({\n EntityName: 'MJ: MCP Tool Execution Logs',\n ExtraFilter: `StartedAt >= DATEADD(day, -7, GETUTCDATE())`,\n OrderBy: 'StartedAt DESC',\n MaxRows: 100,\n ResultType: 'simple'\n })\n ]);\n\n // Get cached data from MCPEngine and convert to interface types\n this.servers = MCPEngine.Instance.Servers.map(s => ({\n ID: s.ID,\n Name: s.Name,\n Description: s.Description,\n TransportType: s.TransportType,\n ServerURL: s.ServerURL,\n Command: s.Command,\n DefaultAuthType: s.DefaultAuthType,\n Status: s.Status,\n RateLimitPerMinute: s.RateLimitPerMinute,\n RateLimitPerHour: s.RateLimitPerHour,\n LastSyncAt: s.LastSyncAt,\n // OAuth configuration fields\n OAuthIssuerURL: s.OAuthIssuerURL,\n OAuthScopes: s.OAuthScopes,\n OAuthMetadataCacheTTLMinutes: s.OAuthMetadataCacheTTLMinutes,\n OAuthClientID: s.OAuthClientID,\n OAuthClientSecretEncrypted: s.OAuthClientSecretEncrypted,\n OAuthRequirePKCE: s.OAuthRequirePKCE\n }));\n\n this.connections = MCPEngine.Instance.Connections.map(c => ({\n ID: c.ID,\n MCPServerID: c.MCPServerID,\n Name: c.Name,\n Description: c.Description,\n Status: c.Status,\n CompanyID: c.CompanyID,\n AutoSyncTools: c.AutoSyncTools,\n LogToolCalls: c.LogToolCalls,\n LastConnectedAt: c.LastConnectedAt,\n LastErrorMessage: c.LastErrorMessage\n }));\n\n this.tools = MCPEngine.Instance.Tools.map(t => ({\n ID: t.ID,\n MCPServerID: t.MCPServerID,\n ToolName: t.ToolName,\n ToolTitle: t.ToolTitle,\n ToolDescription: t.ToolDescription,\n InputSchema: t.InputSchema,\n Status: t.Status,\n DiscoveredAt: t.DiscoveredAt,\n LastSeenAt: t.LastSeenAt\n }));\n\n if (logsResult.Success) {\n // Map database column names to UI interface property names\n this.executionLogs = (logsResult.Results || []).map(log => this.mapLogFromDatabase(log));\n }\n\n // Enrich data with counts and names\n this.enrichServerData();\n this.enrichConnectionData();\n this.enrichToolData();\n this.enrichLogData();\n\n // Calculate stats\n this.calculateStats();\n\n // Apply filters\n this.applyFilters();\n\n } catch (error) {\n this.ErrorMessage = `Failed to load data: ${error instanceof Error ? error.message : String(error)}`;\n } finally {\n this.IsLoading = false;\n this.cdr.detectChanges();\n }\n }\n\n private enrichServerData(): void {\n for (const server of this.servers) {\n server.ConnectionCount = this.connections.filter(c => c.MCPServerID === server.ID).length;\n server.ToolCount = this.tools.filter(t => t.MCPServerID === server.ID).length;\n }\n }\n\n private enrichConnectionData(): void {\n for (const conn of this.connections) {\n const server = this.servers.find(s => s.ID === conn.MCPServerID);\n conn.ServerName = server?.Name ?? 'Unknown';\n }\n }\n\n private enrichToolData(): void {\n for (const tool of this.tools) {\n const server = this.servers.find(s => s.ID === tool.MCPServerID);\n tool.ServerName = server?.Name ?? 'Unknown';\n }\n }\n\n private enrichLogData(): void {\n for (const log of this.executionLogs) {\n const conn = this.connections.find(c => c.ID === log.ConnectionID);\n log.ConnectionName = conn?.Name ?? log.ConnectionName ?? 'Unknown';\n // Add server name via connection\n if (conn) {\n const server = this.servers.find(s => s.ID === conn.MCPServerID);\n log.ServerName = server?.Name ?? 'Unknown';\n } else {\n log.ServerName = log.ServerName ?? 'Unknown';\n }\n }\n // Sort logs by StartedAt descending (most recent first)\n this.executionLogs.sort((a, b) => {\n const dateA = new Date(a.StartedAt).getTime();\n const dateB = new Date(b.StartedAt).getTime();\n return dateB - dateA;\n });\n }\n\n /**\n * Maps database log entity to UI interface format\n * Handles column name differences between DB schema and UI interface\n */\n private mapLogFromDatabase(dbLog: MJMCPToolExecutionLogEntity): MCPExecutionLogData {\n // Determine status from Success boolean\n let status: string;\n if (dbLog.Success === true) {\n status = 'Success';\n } else if (dbLog.Success === false) {\n status = 'Error';\n } else {\n // null means still running\n status = 'Running';\n }\n\n return {\n ID: dbLog.ID,\n ConnectionID: dbLog.MCPServerConnectionID,\n ToolID: dbLog.MCPServerToolID,\n ToolName: dbLog.ToolName || 'Unknown',\n Status: status,\n StartedAt: dbLog.StartedAt,\n CompletedAt: dbLog.EndedAt,\n DurationMs: dbLog.DurationMs,\n UserID: dbLog.UserID,\n UserName: dbLog.User,\n ErrorMessage: dbLog.ErrorMessage,\n InputArgs: dbLog.InputParameters,\n Result: dbLog.OutputContent,\n ConnectionName: dbLog.MCPServerConnection,\n ServerName: undefined // Will be enriched later\n };\n }\n\n private calculateStats(): void {\n this.stats = {\n totalServers: this.servers.length,\n activeServers: this.servers.filter(s => s.Status === 'Active').length,\n totalConnections: this.connections.length,\n activeConnections: this.connections.filter(c => c.Status === 'Active').length,\n totalTools: this.tools.length,\n activeTools: this.tools.filter(t => t.Status === 'Active').length,\n recentExecutions: this.executionLogs.length,\n failedExecutions: this.executionLogs.filter(l => l.Status === 'Error').length\n };\n }\n\n // ========================================\n // Filtering\n // ========================================\n\n private setupFilterSubscription(): void {\n this.filters$\n .pipe(\n debounceTime(300),\n distinctUntilChanged((a, b) => JSON.stringify(a) === JSON.stringify(b)),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.applyFilters();\n this.cdr.detectChanges();\n });\n }\n\n public applyFilters(): void {\n const filters = this.filters$.value;\n const search = filters.searchTerm.toLowerCase();\n\n // Filter servers\n this.filteredServers = this.servers.filter(s => {\n const matchesSearch = !search ||\n s.Name.toLowerCase().includes(search) ||\n (s.Description?.toLowerCase().includes(search) ?? false);\n const matchesStatus = filters.serverStatus === 'all' || s.Status === filters.serverStatus;\n return matchesSearch && matchesStatus;\n });\n\n // Filter connections\n this.filteredConnections = this.connections.filter(c => {\n const matchesSearch = !search ||\n c.Name.toLowerCase().includes(search) ||\n (c.ServerName?.toLowerCase().includes(search) ?? false);\n const matchesStatus = filters.connectionStatus === 'all' || c.Status === filters.connectionStatus;\n return matchesSearch && matchesStatus;\n });\n\n // Filter tools\n this.filteredTools = this.tools.filter(t => {\n const matchesSearch = !search ||\n t.ToolName.toLowerCase().includes(search) ||\n (t.ToolTitle?.toLowerCase().includes(search) ?? false) ||\n (t.ToolDescription?.toLowerCase().includes(search) ?? false);\n const matchesStatus = filters.toolStatus === 'all' || t.Status === filters.toolStatus;\n return matchesSearch && matchesStatus;\n });\n\n // Build server groups for the tools tab\n this.buildServerGroups();\n\n // Filter logs\n this.filteredLogs = this.executionLogs.filter(l => {\n const matchesSearch = !search ||\n l.ToolName.toLowerCase().includes(search) ||\n (l.ConnectionName?.toLowerCase().includes(search) ?? false) ||\n (l.ServerName?.toLowerCase().includes(search) ?? false);\n const matchesStatus = filters.logStatus === 'all' || l.Status === filters.logStatus;\n return matchesSearch && matchesStatus;\n });\n\n // Apply current sort\n this.sortFilteredLogs();\n }\n\n public onSearchChange(term: string): void {\n const current = this.filters$.value;\n this.filters$.next({ ...current, searchTerm: term });\n this.saveUserPreferencesDebounced();\n }\n\n public onStatusFilterChange(filterType: string, value: string): void {\n const current = this.filters$.value;\n switch (filterType) {\n case 'server':\n this.filters$.next({ ...current, serverStatus: value });\n break;\n case 'connection':\n this.filters$.next({ ...current, connectionStatus: value });\n break;\n case 'tool':\n this.filters$.next({ ...current, toolStatus: value });\n break;\n case 'log':\n this.filters$.next({ ...current, logStatus: value });\n break;\n }\n this.saveUserPreferencesDebounced();\n }\n\n // ========================================\n // Filter Panel\n // ========================================\n\n /**\n * Toggle filter panel visibility\n */\n public toggleFilterPanel(): void {\n this.FilterPanelVisible = !this.FilterPanelVisible;\n this.saveUserPreferencesDebounced();\n this.cdr.detectChanges();\n }\n\n /**\n * Handle filter changes from the filter panel component\n */\n public onFiltersChange(filters: MCPDashboardFilters): void {\n this.filters$.next(filters);\n this.saveUserPreferencesDebounced();\n }\n\n /**\n * Get the current filtered count based on active tab\n */\n public get CurrentFilteredCount(): number {\n switch (this.ActiveTab) {\n case 'servers':\n return this.filteredServers.length;\n case 'connections':\n return this.filteredConnections.length;\n case 'tools':\n return this.filteredTools.length;\n case 'logs':\n return this.filteredLogs.length;\n default:\n return 0;\n }\n }\n\n /**\n * Get the total count based on active tab\n */\n public get CurrentTotalCount(): number {\n switch (this.ActiveTab) {\n case 'servers':\n return this.servers.length;\n case 'connections':\n return this.connections.length;\n case 'tools':\n return this.tools.length;\n case 'logs':\n return this.executionLogs.length;\n default:\n return 0;\n }\n }\n\n /**\n * Get current filters value (non-observable)\n */\n public get CurrentFilters(): MCPDashboardFilters {\n return this.filters$.value;\n }\n\n // ========================================\n // Tab Navigation\n // ========================================\n\n /**\n * Sets the active tab and updates URL for deep linking\n */\n public setActiveTab(tab: MCPDashboardTab): void {\n if (this.ActiveTab === tab) return;\n\n this.ActiveTab = tab;\n this.updateUrl();\n this.cdr.detectChanges();\n }\n\n // ========================================\n // Server Operations\n // ========================================\n\n public createServer(): void {\n this.EditingServer = null;\n this.ShowServerDialog = true;\n this.cdr.detectChanges();\n }\n\n public editServer(server: MCPServerData): void {\n this.EditingServer = server;\n this.ShowServerDialog = true;\n this.cdr.detectChanges();\n }\n\n public async deleteServer(server: MCPServerData): Promise<void> {\n // Check for related connections first\n const relatedConnections = this.connections.filter((c: MCPConnectionData) => c.MCPServerID === server.ID);\n const relatedTools = this.tools.filter((t: MCPToolData) => t.MCPServerID === server.ID);\n\n if (relatedConnections.length > 0 || relatedTools.length > 0) {\n const parts: string[] = [];\n if (relatedConnections.length > 0) {\n parts.push(`${relatedConnections.length} connection(s)`);\n }\n if (relatedTools.length > 0) {\n parts.push(`${relatedTools.length} tool(s)`);\n }\n\n if (!confirm(\n `Server \"${server.Name}\" has ${parts.join(' and ')}.\\n\\n` +\n `All related records will be deleted. Are you sure you want to proceed?`\n )) {\n return;\n }\n\n // Delete related connections first (which will cascade to connection tools/permissions)\n for (const conn of relatedConnections) {\n try {\n await this.deleteConnectionInternal(conn.ID);\n } catch (error) {\n this.ErrorMessage = `Failed to delete related connection \"${conn.Name}\": ${error instanceof Error ? error.message : String(error)}`;\n this.cdr.detectChanges();\n return;\n }\n }\n\n // Delete related tools\n for (const tool of relatedTools) {\n try {\n await this.deleteToolInternal(tool.ID);\n } catch (error) {\n this.ErrorMessage = `Failed to delete related tool \"${tool.ToolName}\": ${error instanceof Error ? error.message : String(error)}`;\n this.cdr.detectChanges();\n return;\n }\n }\n } else {\n if (!confirm(`Are you sure you want to delete server \"${server.Name}\"?`)) {\n return;\n }\n }\n\n try {\n const md = new Metadata();\n const entity = await md.GetEntityObject<MJMCPServerEntity>('MJ: MCP Servers');\n const loaded = await entity.Load(server.ID);\n if (!loaded) {\n this.ErrorMessage = `Server not found: ${server.Name}`;\n this.cdr.detectChanges();\n return;\n }\n\n const deleted = await entity.Delete();\n if (!deleted) {\n const errorMsg = entity.LatestResult?.Message || entity.LatestResult?.CompleteMessage || 'Unknown error';\n this.ErrorMessage = `Failed to delete server: ${errorMsg}`;\n this.cdr.detectChanges();\n return;\n }\n\n await this.loadAllData();\n } catch (error) {\n this.ErrorMessage = `Failed to delete server: ${error instanceof Error ? error.message : String(error)}`;\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Internal helper to delete a tool by ID without confirmation\n */\n private async deleteToolInternal(toolId: string): Promise<void> {\n const md = new Metadata();\n const entity = await md.GetEntityObject<MJMCPServerToolEntity>('MJ: MCP Server Tools');\n const loaded = await entity.Load(toolId);\n if (!loaded) {\n throw new Error(`Tool not found`);\n }\n const deleted = await entity.Delete();\n if (!deleted) {\n const errorMsg = entity.LatestResult?.Message || entity.LatestResult?.CompleteMessage || 'Delete failed';\n throw new Error(errorMsg);\n }\n }\n\n /**\n * Internal helper to delete a connection by ID without confirmation.\n * Handles deletion of all related records that don't have ON DELETE CASCADE:\n * - MCP Tool Execution Logs\n * - OAuth Authorization States\n * - OAuth Client Registrations\n * - OAuth Tokens\n */\n private async deleteConnectionInternal(connectionId: string): Promise<void> {\n console.log(`[MCPDashboard] deleteConnectionInternal called for connectionId: ${connectionId}`);\n const rv = new RunView();\n const md = new Metadata();\n\n // Delete execution logs for this connection\n console.log('[MCPDashboard] Deleting execution logs...');\n const logsResult = await rv.RunView<{ ID: string }>({\n EntityName: 'MJ: MCP Tool Execution Logs',\n ExtraFilter: `MCPServerConnectionID='${connectionId}'`,\n Fields: ['ID'],\n ResultType: 'simple'\n });\n if (logsResult.Success && logsResult.Results) {\n console.log(`[MCPDashboard] Found ${logsResult.Results.length} execution logs to delete`);\n for (const log of logsResult.Results) {\n console.log(`[MCPDashboard] Loading execution log ${log.ID}...`);\n const logEntity = await md.GetEntityObject<MJMCPToolExecutionLogEntity>('MJ: MCP Tool Execution Logs');\n const loaded = await logEntity.Load(log.ID);\n console.log(`[MCPDashboard] Load result for execution log ${log.ID}: ${loaded}`);\n if (loaded) {\n const deleted = await logEntity.Delete();\n if (!deleted) {\n console.error(`[MCPDashboard] Failed to delete execution log ${log.ID}:`, logEntity.LatestResult);\n throw new Error(`Failed to delete execution log: ${logEntity.LatestResult?.Message || 'Unknown error'}`);\n }\n console.log(`[MCPDashboard] Deleted execution log ${log.ID}`);\n } else {\n console.warn(`[MCPDashboard] Could not load execution log ${log.ID} - may have been already deleted`);\n }\n }\n }\n\n // Delete OAuth Authorization States for this connection\n console.log('[MCPDashboard] Deleting OAuth Authorization States...');\n const authStatesResult = await rv.RunView<{ ID: string }>({\n EntityName: 'MJ: O Auth Authorization States',\n ExtraFilter: `MCPServerConnectionID='${connectionId}'`,\n Fields: ['ID'],\n ResultType: 'simple'\n });\n if (authStatesResult.Success && authStatesResult.Results) {\n console.log(`[MCPDashboard] Found ${authStatesResult.Results.length} OAuth Authorization States to delete`);\n for (const state of authStatesResult.Results) {\n console.log(`[MCPDashboard] Loading OAuth Authorization State ${state.ID}...`);\n const stateEntity = await md.GetEntityObject<MJOAuthAuthorizationStateEntity>('MJ: O Auth Authorization States');\n const loaded = await stateEntity.Load(state.ID);\n console.log(`[MCPDashboard] Load result for OAuth Authorization State ${state.ID}: ${loaded}`);\n if (loaded) {\n const deleted = await stateEntity.Delete();\n if (!deleted) {\n console.error(`[MCPDashboard] Failed to delete OAuth Authorization State ${state.ID}:`, stateEntity.LatestResult);\n throw new Error(`Failed to delete OAuth Authorization State: ${stateEntity.LatestResult?.Message || 'Unknown error'}`);\n }\n console.log(`[MCPDashboard] Deleted OAuth Authorization State ${state.ID}`);\n } else {\n console.warn(`[MCPDashboard] Could not load OAuth Authorization State ${state.ID} - may have been already deleted`);\n }\n }\n }\n\n // Delete OAuth Client Registrations for this connection\n console.log('[MCPDashboard] Deleting OAuth Client Registrations...');\n const clientRegsResult = await rv.RunView<{ ID: string }>({\n EntityName: 'MJ: O Auth Client Registrations',\n ExtraFilter: `MCPServerConnectionID='${connectionId}'`,\n Fields: ['ID'],\n ResultType: 'simple'\n });\n if (clientRegsResult.Success && clientRegsResult.Results) {\n console.log(`[MCPDashboard] Found ${clientRegsResult.Results.length} OAuth Client Registrations to delete`);\n for (const reg of clientRegsResult.Results) {\n console.log(`[MCPDashboard] Loading OAuth Client Registration ${reg.ID}...`);\n const regEntity = await md.GetEntityObject<MJOAuthClientRegistrationEntity>('MJ: O Auth Client Registrations');\n const loaded = await regEntity.Load(reg.ID);\n console.log(`[MCPDashboard] Load result for OAuth Client Registration ${reg.ID}: ${loaded}`);\n if (loaded) {\n const deleted = await regEntity.Delete();\n if (!deleted) {\n console.error(`[MCPDashboard] Failed to delete OAuth Client Registration ${reg.ID}:`, regEntity.LatestResult);\n throw new Error(`Failed to delete OAuth Client Registration: ${regEntity.LatestResult?.Message || 'Unknown error'}`);\n }\n console.log(`[MCPDashboard] Deleted OAuth Client Registration ${reg.ID}`);\n } else {\n console.warn(`[MCPDashboard] Could not load OAuth Client Registration ${reg.ID} - may have been already deleted`);\n }\n }\n }\n\n // Delete OAuth Tokens for this connection\n console.log('[MCPDashboard] Deleting OAuth Tokens...');\n const tokensResult = await rv.RunView<{ ID: string }>({\n EntityName: 'MJ: O Auth Tokens',\n ExtraFilter: `MCPServerConnectionID='${connectionId}'`,\n Fields: ['ID'],\n ResultType: 'simple'\n });\n if (tokensResult.Success && tokensResult.Results) {\n console.log(`[MCPDashboard] Found ${tokensResult.Results.length} OAuth Tokens to delete`);\n for (const token of tokensResult.Results) {\n console.log(`[MCPDashboard] Loading OAuth Token ${token.ID}...`);\n const tokenEntity = await md.GetEntityObject<MJOAuthTokenEntity>('MJ: O Auth Tokens');\n const loaded = await tokenEntity.Load(token.ID);\n console.log(`[MCPDashboard] Load result for OAuth Token ${token.ID}: ${loaded}`);\n if (loaded) {\n const deleted = await tokenEntity.Delete();\n if (!deleted) {\n console.error(`[MCPDashboard] Failed to delete OAuth Token ${token.ID}:`, tokenEntity.LatestResult);\n throw new Error(`Failed to delete OAuth Token: ${tokenEntity.LatestResult?.Message || 'Unknown error'}`);\n }\n console.log(`[MCPDashboard] Deleted OAuth Token ${token.ID}`);\n } else {\n console.warn(`[MCPDashboard] Could not load OAuth Token ${token.ID} - may have been already deleted`);\n }\n }\n }\n\n // Now delete the connection itself\n console.log('[MCPDashboard] All related records deleted. Now deleting the connection itself...');\n const entity = await md.GetEntityObject<MJMCPServerConnectionEntity>('MJ: MCP Server Connections');\n const loaded = await entity.Load(connectionId);\n if (!loaded) {\n throw new Error(`Connection not found`);\n }\n const deleted = await entity.Delete();\n if (!deleted) {\n const errorMsg = entity.LatestResult?.Message || entity.LatestResult?.CompleteMessage || 'Delete failed';\n throw new Error(errorMsg);\n }\n }\n\n public async onServerDialogClose(result: { saved: boolean }): Promise<void> {\n this.ShowServerDialog = false;\n this.EditingServer = null;\n if (result.saved) {\n await this.loadAllData();\n }\n this.cdr.detectChanges();\n }\n\n // ========================================\n // Connection Operations\n // ========================================\n\n public createConnection(): void {\n this.EditingConnection = null;\n this.ShowConnectionDialog = true;\n this.cdr.detectChanges();\n }\n\n public editConnection(connection: MCPConnectionData): void {\n this.EditingConnection = connection;\n this.ShowConnectionDialog = true;\n this.cdr.detectChanges();\n }\n\n public async deleteConnection(connection: MCPConnectionData): Promise<void> {\n // Check for related execution logs\n const relatedLogs = this.executionLogs.filter(l => l.ConnectionID === connection.ID);\n\n if (relatedLogs.length > 0) {\n if (!confirm(\n `Connection \"${connection.Name}\" has ${relatedLogs.length} execution log(s).\\n\\n` +\n `All related logs will be deleted. Are you sure you want to proceed?`\n )) {\n return;\n }\n } else {\n if (!confirm(`Are you sure you want to delete connection \"${connection.Name}\"?`)) {\n return;\n }\n }\n\n try {\n // Use the internal method which handles deleting related records\n await this.deleteConnectionInternal(connection.ID);\n await this.loadAllData();\n } catch (error) {\n this.ErrorMessage = `Failed to delete connection: ${error instanceof Error ? error.message : String(error)}`;\n this.cdr.detectChanges();\n }\n }\n\n public async onConnectionDialogClose(result: { saved: boolean }): Promise<void> {\n this.ShowConnectionDialog = false;\n this.EditingConnection = null;\n if (result.saved) {\n await this.loadAllData();\n }\n this.cdr.detectChanges();\n }\n\n // ========================================\n // Tool Operations\n // ========================================\n\n /**\n * Toggle tool card expansion for details view\n */\n public toggleToolExpand(tool: MCPToolData): void {\n if (this.ExpandedToolId === tool.ID) {\n this.ExpandedToolId = null;\n } else {\n this.ExpandedToolId = tool.ID;\n }\n this.cdr.detectChanges();\n }\n\n /**\n * Check if a tool card is expanded\n */\n public isToolExpanded(tool: MCPToolData): boolean {\n return this.ExpandedToolId === tool.ID;\n }\n\n /**\n * Set tools view mode (card or list)\n */\n public setToolsViewMode(mode: ToolsViewMode): void {\n this.ToolsViewMode = mode;\n this.cdr.detectChanges();\n this.saveUserPreferencesDebounced();\n }\n\n /**\n * Set tools sort option\n */\n public setToolsSort(sortBy: ToolsSortBy): void {\n if (this.ToolsSortBy === sortBy) {\n // Toggle ascending/descending\n this.ToolsSortAscending = !this.ToolsSortAscending;\n } else {\n this.ToolsSortBy = sortBy;\n this.ToolsSortAscending = true;\n }\n this.buildServerGroups();\n this.cdr.detectChanges();\n this.saveUserPreferencesDebounced();\n }\n\n /**\n * Toggle server group expansion\n */\n public toggleServerGroup(group: MCPServerGroup): void {\n group.expanded = !group.expanded;\n this.cdr.detectChanges();\n }\n\n /**\n * Build server groups from tools data\n */\n private buildServerGroups(): void {\n // Group tools by server\n const serverMap = new Map<string, MCPToolData[]>();\n\n for (const tool of this.filteredTools) {\n const serverId = tool.MCPServerID;\n if (!serverMap.has(serverId)) {\n serverMap.set(serverId, []);\n }\n serverMap.get(serverId)!.push(tool);\n }\n\n // Build server groups\n this.ServerGroups = [];\n for (const server of this.servers) {\n const tools = serverMap.get(server.ID) || [];\n if (tools.length > 0) {\n // Sort tools within group\n this.sortTools(tools);\n\n this.ServerGroups.push({\n server,\n tools,\n expanded: true // Start expanded\n });\n }\n }\n\n // Sort server groups by tool count or name\n this.ServerGroups.sort((a, b) => {\n if (this.ToolsSortBy === 'server') {\n const nameCompare = a.server.Name.localeCompare(b.server.Name);\n return this.ToolsSortAscending ? nameCompare : -nameCompare;\n }\n // Sort by tool count (descending by default)\n const countCompare = b.tools.length - a.tools.length;\n return this.ToolsSortAscending ? -countCompare : countCompare;\n });\n }\n\n /**\n * Sort tools array in place\n */\n private sortTools(tools: MCPToolData[]): void {\n tools.sort((a, b) => {\n let compare = 0;\n switch (this.ToolsSortBy) {\n case 'name':\n compare = (a.ToolTitle || a.ToolName).localeCompare(b.ToolTitle || b.ToolName);\n break;\n case 'discovered':\n compare = new Date(a.DiscoveredAt).getTime() - new Date(b.DiscoveredAt).getTime();\n break;\n case 'lastSeen':\n compare = new Date(a.LastSeenAt).getTime() - new Date(b.LastSeenAt).getTime();\n break;\n default:\n compare = (a.ToolTitle || a.ToolName).localeCompare(b.ToolTitle || b.ToolName);\n }\n return this.ToolsSortAscending ? compare : -compare;\n });\n }\n\n /**\n * Get total tool count across all groups\n */\n public get TotalToolCount(): number {\n return this.ServerGroups.reduce((sum, group) => sum + group.tools.length, 0);\n }\n\n /**\n * Open Test Tool dialog\n */\n public openTestToolDialog(tool?: MCPToolData, connection?: MCPConnectionData): void {\n if (tool) {\n this.TestToolServerID = tool.MCPServerID;\n this.TestToolID = tool.ID;\n } else {\n this.TestToolServerID = null;\n this.TestToolID = null;\n }\n\n if (connection) {\n this.TestToolConnectionID = connection.ID;\n if (!this.TestToolServerID) {\n this.TestToolServerID = connection.MCPServerID;\n }\n } else {\n this.TestToolConnectionID = null;\n }\n\n this.ShowTestToolDialog = true;\n this.cdr.detectChanges();\n }\n\n /**\n * Close Test Tool dialog\n */\n public onTestToolDialogClose(): void {\n this.ShowTestToolDialog = false;\n this.TestToolServerID = null;\n this.TestToolConnectionID = null;\n this.TestToolID = null;\n this.cdr.detectChanges();\n }\n\n /**\n * Parse and return input schema as formatted JSON\n */\n public getFormattedInputSchema(tool: MCPToolData): string {\n if (!tool.InputSchema) return 'No input schema';\n try {\n const schema = JSON.parse(tool.InputSchema);\n return JSON.stringify(schema, null, 2);\n } catch {\n return tool.InputSchema;\n }\n }\n\n /**\n * Get parameter count from input schema\n */\n public getParamCount(tool: MCPToolData): number {\n if (!tool.InputSchema) return 0;\n try {\n const schema = JSON.parse(tool.InputSchema);\n return Object.keys(schema.properties || {}).length;\n } catch {\n return 0;\n }\n }\n\n /**\n * Get required parameter count from input schema\n */\n public getRequiredParamCount(tool: MCPToolData): number {\n if (!tool.InputSchema) return 0;\n try {\n const schema = JSON.parse(tool.InputSchema);\n return (schema.required || []).length;\n } catch {\n return 0;\n }\n }\n\n // ========================================\n // Sync Operations\n // ========================================\n\n /**\n * Syncs tools for a specific connection\n */\n public async syncConnectionTools(connection: MCPConnectionData): Promise<void> {\n const connectionId = connection.ID;\n\n // Subscribe to sync state updates for this connection\n if (!this.syncSubscriptions.has(connectionId)) {\n const sub = this.mcpToolsService.getSyncState(connectionId)\n .pipe(takeUntil(this.destroy$))\n .subscribe(state => {\n this.SyncStates.set(connectionId, state);\n this.cdr.detectChanges();\n });\n this.syncSubscriptions.set(connectionId, sub);\n }\n\n try {\n const result: MCPSyncResult = await this.mcpToolsService.syncTools(connectionId);\n\n if (result.Success) {\n // Force refresh to show updated tools - backend changes don't trigger local events\n await this.loadAllData(true);\n } else if (result.RequiresOAuth || result.RequiresReauthorization) {\n // OAuth authorization is required - initiate fresh OAuth flow with frontend callback\n // Note: We ignore result.AuthorizationUrl because it was built with the server's callback URL\n // We need to initiate a fresh flow that uses the frontend callback URL\n console.log(`[MCPDashboard] OAuth ${result.RequiresReauthorization ? 're-' : ''}authorization required, initiating frontend OAuth flow...`);\n await this.initiateOAuthFlow(connectionId);\n } else {\n this.ErrorMessage = `Sync failed: ${result.ErrorMessage}`;\n }\n } catch (error) {\n this.ErrorMessage = `Sync error: ${error instanceof Error ? error.message : String(error)}`;\n }\n\n this.cdr.detectChanges();\n }\n\n /**\n * Gets the sync state for a connection\n */\n public getSyncState(connectionId: string): MCPSyncState | undefined {\n return this.SyncStates.get(connectionId);\n }\n\n /**\n * Checks if a connection is currently syncing\n */\n public isSyncing(connectionId: string): boolean {\n return this.mcpToolsService.isSyncing(connectionId);\n }\n\n /**\n * Gets sync progress message for a connection\n */\n public getSyncProgressMessage(connectionId: string): string {\n const state = this.SyncStates.get(connectionId);\n if (!state?.progress) return '';\n return state.progress.message;\n }\n\n // ========================================\n // OAuth Operations\n // ========================================\n\n /**\n * Checks for OAuth completion by looking for query params set by the OAuth callback\n */\n private checkOAuthCompletion(): void {\n const params = this.route.snapshot.queryParams;\n\n if (params['oauth'] === 'success') {\n // OAuth completed successfully\n const connectionId = params['connectionId'];\n console.log(`[MCPDashboard] OAuth authorization completed for connection: ${connectionId}`);\n\n // Show success notification\n this.showSuccessNotification('OAuth authorization completed successfully');\n\n // Clear the query params without triggering a full navigation\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: {},\n queryParamsHandling: 'merge',\n replaceUrl: true\n });\n\n // Refresh data to pick up new OAuth state\n this.loadAllData(true);\n } else if (params['oauth'] === 'error') {\n // OAuth failed\n const errorCode = params['error'] || 'unknown_error';\n const errorMessage = params['error_description'] || 'Authorization failed';\n console.error(`[MCPDashboard] OAuth authorization failed: ${errorCode} - ${errorMessage}`);\n\n // Show error message\n this.ErrorMessage = `OAuth authorization failed: ${errorMessage}`;\n\n // Clear the query params\n this.router.navigate([], {\n relativeTo: this.route,\n queryParams: {},\n queryParamsHandling: 'merge',\n replaceUrl: true\n });\n }\n }\n\n /**\n * Shows a success notification (temporary)\n */\n private showSuccessNotification(message: string): void {\n // For now, use a simple console log and clear any error message\n console.log(`[MCPDashboard] Success: ${message}`);\n this.ErrorMessage = null;\n // TODO: Implement proper toast/notification system\n }\n\n /**\n * Initiates OAuth authorization flow for a connection.\n * Stores the current URL and redirects directly to the OAuth provider.\n * Always uses the frontend callback URL so the OAuth redirect comes back to MJExplorer.\n *\n * @param connectionId - The MCP connection ID requiring OAuth\n */\n public async initiateOAuthFlow(connectionId: string): Promise<void> {\n // Store current URL for return after OAuth completion\n // Store both full URL and path-only version for cross-origin scenarios\n const currentUrl = window.location.href;\n const currentPath = window.location.pathname + window.location.search;\n\n // Store in both localStorage and sessionStorage for redundancy\n localStorage.setItem('oauth_return_url', currentUrl);\n localStorage.setItem('oauth_return_path', currentPath);\n sessionStorage.setItem('oauth_return_url', currentUrl);\n sessionStorage.setItem('oauth_return_path', currentPath);\n\n console.log('[MCPDashboard] Stored OAuth return URL:', currentUrl);\n console.log('[MCPDashboard] Stored OAuth return path:', currentPath);\n\n // Initiate OAuth via GraphQL to get the URL with frontend callback\n const result = await this.initiateMCPOAuth(connectionId);\n if (result.Success && result.AuthorizationUrl) {\n console.log('[MCPDashboard] Redirecting to OAuth provider:', result.AuthorizationUrl);\n window.location.href = result.AuthorizationUrl;\n } else {\n this.ErrorMessage = result.ErrorMessage || 'Failed to initiate OAuth authorization';\n this.cdr.detectChanges();\n }\n }\n\n /**\n * Calls the InitiateMCPOAuth mutation with frontend callback URL\n */\n private async initiateMCPOAuth(connectionId: string): Promise<{\n Success: boolean;\n AuthorizationUrl?: string;\n ErrorMessage?: string;\n }> {\n try {\n const { GraphQLDataProvider, gql } = await import('@memberjunction/graphql-dataprovider');\n\n const mutation = gql`\n mutation InitiateMCPOAuth($input: InitiateMCPOAuthInput!) {\n InitiateMCPOAuth(input: $input) {\n Success\n ErrorMessage\n AuthorizationUrl\n StateParameter\n }\n }\n `;\n\n // Use the frontend callback URL so we handle the OAuth redirect\n const frontendCallbackUrl = `${window.location.origin}/oauth/callback`;\n\n const result = await GraphQLDataProvider.Instance.ExecuteGQL(mutation, {\n input: {\n ConnectionID: connectionId,\n FrontendCallbackUrl: frontendCallbackUrl\n }\n });\n\n return result?.InitiateMCPOAuth || { Success: false, ErrorMessage: 'No result returned' };\n } catch (error) {\n const message = error instanceof Error ? error.message : String(error);\n return { Success: false, ErrorMessage: message };\n }\n }\n\n // ========================================\n // Utility Methods\n // ========================================\n\n public getStatusClass(status: string): string {\n switch (status) {\n case 'Active':\n return 'status-active';\n case 'Inactive':\n return 'status-inactive';\n case 'Error':\n return 'status-error';\n case 'Deprecated':\n return 'status-deprecated';\n default:\n return 'status-unknown';\n }\n }\n\n public getTransportIcon(transportType: string): string {\n switch (transportType) {\n case 'StreamableHTTP':\n case 'SSE':\n return 'fa-solid fa-globe';\n case 'Stdio':\n return 'fa-solid fa-terminal';\n case 'WebSocket':\n return 'fa-solid fa-plug';\n default:\n return 'fa-solid fa-question';\n }\n }\n\n public formatDate(date: Date | string | null): string {\n if (!date) return 'Never';\n const d = typeof date === 'string' ? new Date(date) : date;\n return d.toLocaleString();\n }\n\n public formatDuration(ms: number | null): string {\n if (ms === null) return '-';\n if (ms < 1000) return `${ms}ms`;\n return `${(ms / 1000).toFixed(2)}s`;\n }\n\n // ========================================\n // Logs Sorting\n // ========================================\n\n /**\n * Handles click on a sortable column header\n */\n public onLogSortColumn(column: typeof this.LogsSortColumn): void {\n if (this.LogsSortColumn === column) {\n // Toggle sort direction\n this.LogsSortAscending = !this.LogsSortAscending;\n } else {\n // New column, default to descending for dates/duration, ascending for text\n this.LogsSortColumn = column;\n this.LogsSortAscending = column !== 'started' && column !== 'duration';\n }\n this.sortFilteredLogs();\n this.cdr.detectChanges();\n this.saveUserPreferencesDebounced();\n }\n\n /**\n * Sorts the filtered logs based on current sort settings\n */\n private sortFilteredLogs(): void {\n const direction = this.LogsSortAscending ? 1 : -1;\n\n this.filteredLogs.sort((a, b) => {\n let valA: string | number | Date | null;\n let valB: string | number | Date | null;\n\n switch (this.LogsSortColumn) {\n case 'status':\n valA = a.Status || '';\n valB = b.Status || '';\n break;\n case 'server':\n valA = a.ServerName || '';\n valB = b.ServerName || '';\n break;\n case 'tool':\n valA = a.ToolName || '';\n valB = b.ToolName || '';\n break;\n case 'connection':\n valA = a.ConnectionName || '';\n valB = b.ConnectionName || '';\n break;\n case 'started':\n valA = a.StartedAt ? new Date(a.StartedAt).getTime() : 0;\n valB = b.StartedAt ? new Date(b.StartedAt).getTime() : 0;\n break;\n case 'duration':\n valA = a.DurationMs ?? -1;\n valB = b.DurationMs ?? -1;\n break;\n case 'error':\n valA = a.ErrorMessage || '';\n valB = b.ErrorMessage || '';\n break;\n default:\n return 0;\n }\n\n if (typeof valA === 'string' && typeof valB === 'string') {\n return valA.localeCompare(valB) * direction;\n }\n if (valA < valB) return -1 * direction;\n if (valA > valB) return 1 * direction;\n return 0;\n });\n }\n\n /**\n * Gets the sort indicator class for a column header\n */\n public getLogSortClass(column: typeof this.LogsSortColumn): string {\n if (this.LogsSortColumn !== column) return '';\n return this.LogsSortAscending ? 'sorted-asc' : 'sorted-desc';\n }\n\n // ========================================\n // Log Detail Panel\n // ========================================\n\n /**\n * Handles click on a log row to show detail panel\n */\n public async onLogClick(log: MCPExecutionLogData): Promise<void> {\n // Load full log details if needed (InputArgs, Result)\n if (!log.InputArgs && !log.Result) {\n try {\n const rv = new RunView();\n const result = await rv.RunView<MJMCPToolExecutionLogEntity>({\n EntityName: 'MJ: MCP Tool Execution Logs',\n ExtraFilter: `ID='${log.ID}'`,\n ResultType: 'simple'\n });\n if (result.Success && result.Results.length > 0) {\n const fullLog = this.mapLogFromDatabase(result.Results[0]);\n // Merge full log data (preserving already enriched fields)\n log.InputArgs = fullLog.InputArgs;\n log.Result = fullLog.Result;\n log.ErrorMessage = fullLog.ErrorMessage || log.ErrorMessage;\n }\n } catch (error) {\n console.warn('[MCPDashboard] Failed to load full log details:', error);\n }\n }\n\n // Enrich with server name\n const connection = this.connections.find(c => c.ID === log.ConnectionID);\n if (connection) {\n log.ServerName = connection.ServerName;\n }\n\n this.SelectedLog = log;\n this.ShowLogDetailPanel = true;\n this.cdr.detectChanges();\n }\n\n /**\n * Closes the log detail panel\n */\n public onLogDetailClose(): void {\n this.ShowLogDetailPanel = false;\n this.SelectedLog = null;\n this.cdr.detectChanges();\n }\n\n /**\n * Handles run again from log detail panel\n */\n public onRunAgainFromLog(event: { toolId: string; connectionId: string }): void {\n this.ShowLogDetailPanel = false;\n this.SelectedLog = null;\n\n // Open test tool dialog with pre-selected tool and connection\n const tool = this.tools.find(t => t.ID === event.toolId);\n const connection = this.connections.find(c => c.ID === event.connectionId);\n\n if (tool) {\n this.TestToolServerID = tool.MCPServerID;\n this.TestToolID = tool.ID;\n }\n if (connection) {\n this.TestToolConnectionID = connection.ID;\n }\n\n this.ShowTestToolDialog = true;\n this.cdr.detectChanges();\n }\n\n // ========================================\n // Expandable Server/Connection Cards\n // ========================================\n\n /**\n * Toggles server card expansion\n */\n public toggleServerExpand(server: MCPServerData): void {\n if (this.ExpandedServerID === server.ID) {\n this.ExpandedServerID = null;\n } else {\n this.ExpandedServerID = server.ID;\n // Collapse any expanded connection\n this.ExpandedConnectionID = null;\n }\n this.cdr.detectChanges();\n }\n\n /**\n * Toggles connection card expansion\n */\n public toggleConnectionExpand(conn: MCPConnectionData): void {\n if (this.ExpandedConnectionID === conn.ID) {\n this.ExpandedConnectionID = null;\n } else {\n this.ExpandedConnectionID = conn.ID;\n // Collapse any expanded server\n this.ExpandedServerID = null;\n }\n this.cdr.detectChanges();\n }\n\n /**\n * Checks if a server card is expanded\n */\n public isServerExpanded(server: MCPServerData): boolean {\n return this.ExpandedServerID === server.ID;\n }\n\n /**\n * Checks if a connection card is expanded\n */\n public isConnectionExpanded(conn: MCPConnectionData): boolean {\n return this.ExpandedConnectionID === conn.ID;\n }\n\n /**\n * Gets tools for a specific server\n */\n public getToolsForServer(serverId: string): MCPToolData[] {\n return this.tools.filter(t => t.MCPServerID === serverId);\n }\n\n /**\n * Gets tools for a specific connection (via its server)\n */\n public getToolsForConnection(connectionId: string): MCPToolData[] {\n const connection = this.connections.find(c => c.ID === connectionId);\n if (!connection) return [];\n return this.tools.filter(t => t.MCPServerID === connection.MCPServerID);\n }\n\n /**\n * Opens test tool dialog with a specific tool from expanded card\n */\n public runToolFromCard(tool: MCPToolData, connection?: MCPConnectionData): void {\n this.TestToolServerID = tool.MCPServerID;\n this.TestToolID = tool.ID;\n this.TestToolConnectionID = connection?.ID ?? null;\n this.ShowTestToolDialog = true;\n this.cdr.detectChanges();\n }\n}\n","<div class=\"mcp-dashboard\">\n <!-- Header -->\n <div class=\"dashboard-header\">\n <div class=\"header-info\">\n <h2 class=\"dashboard-title\">\n <i class=\"fa-solid fa-plug-circle-bolt\"></i>\n MCP Dashboard\n </h2>\n <button\n type=\"button\"\n class=\"filter-toggle-btn\"\n (click)=\"toggleFilterPanel()\"\n title=\"Toggle Filters\">\n <i class=\"fa-solid fa-filter\"></i>\n @if (FilterPanelVisible) {\n Hide Filters\n } @else {\n Show Filters\n }\n </button>\n <span class=\"item-count\">{{ CurrentFilteredCount }} of {{ CurrentTotalCount }} items</span>\n </div>\n\n <div class=\"header-controls\">\n <!-- Tab Navigation -->\n <div class=\"tab-nav\">\n <button\n type=\"button\"\n class=\"tab-btn\"\n [class.active]=\"ActiveTab === 'servers'\"\n (click)=\"setActiveTab('servers')\">\n <i class=\"fa-solid fa-server\"></i>\n <span class=\"tab-label\">Servers</span>\n <span class=\"tab-badge\">{{ servers.length }}</span>\n </button>\n <button\n type=\"button\"\n class=\"tab-btn\"\n [class.active]=\"ActiveTab === 'connections'\"\n (click)=\"setActiveTab('connections')\">\n <i class=\"fa-solid fa-link\"></i>\n <span class=\"tab-label\">Connections</span>\n <span class=\"tab-badge\">{{ connections.length }}</span>\n </button>\n <button\n type=\"button\"\n class=\"tab-btn\"\n [class.active]=\"ActiveTab === 'tools'\"\n (click)=\"setActiveTab('tools')\">\n <i class=\"fa-solid fa-wrench\"></i>\n <span class=\"tab-label\">Tools</span>\n <span class=\"tab-badge\">{{ tools.length }}</span>\n </button>\n <button\n type=\"button\"\n class=\"tab-btn\"\n [class.active]=\"ActiveTab === 'logs'\"\n (click)=\"setActiveTab('logs')\">\n <i class=\"fa-solid fa-list-check\"></i>\n <span class=\"tab-label\">Logs</span>\n <span class=\"tab-badge\" [class.has-errors]=\"stats.failedExecutions > 0\">{{ executionLogs.length }}</span>\n </button>\n </div>\n\n <!-- Action Buttons based on tab -->\n @switch (ActiveTab) {\n @case ('servers') {\n <button kendoButton themeColor=\"primary\" (click)=\"createServer()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Server\n </button>\n }\n @case ('connections') {\n <button kendoButton themeColor=\"primary\" (click)=\"createConnection()\">\n <i class=\"fa-solid fa-plus\"></i>\n Add Connection\n </button>\n }\n @case ('tools') {\n <!-- View Mode Toggle -->\n <div class=\"view-toggle\">\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"ToolsViewMode === 'card'\"\n (click)=\"setToolsViewMode('card')\"\n title=\"Card View\">\n <i class=\"fa-solid fa-grip\"></i>\n </button>\n <button\n type=\"button\"\n class=\"view-btn\"\n [class.active]=\"ToolsViewMode === 'list'\"\n (click)=\"setToolsViewMode('list')\"\n title=\"List View\">\n <i class=\"fa-solid fa-list\"></i>\n </button>\n </div>\n <button kendoButton themeColor=\"primary\" (click)=\"openTestToolDialog()\">\n <i class=\"fa-solid fa-play\"></i>\n Test Tool\n </button>\n }\n @case ('logs') {\n <button kendoButton fillMode=\"flat\" (click)=\"loadAllData()\" [disabled]=\"IsLoading\" title=\"Refresh\">\n <i class=\"fa-solid fa-sync\" [class.fa-spin]=\"IsLoading\"></i>\n Refresh\n </button>\n }\n }\n </div>\n </div>\n\n <!-- Main Content with Filter Panel -->\n <div class=\"main-content\">\n <!-- Filter Panel (Left) -->\n <div class=\"filter-panel-container\" [class.hidden]=\"!FilterPanelVisible\">\n <mj-mcp-filter-panel\n [filters]=\"CurrentFilters\"\n [activeTab]=\"ActiveTab\"\n [totalCount]=\"CurrentTotalCount\"\n [filteredCount]=\"CurrentFilteredCount\"\n (filtersChange)=\"onFiltersChange($event)\"\n (closePanel)=\"toggleFilterPanel()\">\n </mj-mcp-filter-panel>\n <!-- Resize Handle -->\n <div class=\"resize-handle\"></div>\n </div>\n\n <!-- Content Area -->\n <div class=\"content-area\">\n <!-- Error Message -->\n @if (ErrorMessage) {\n <div class=\"error-banner\">\n <i class=\"fa-solid fa-exclamation-triangle\"></i>\n {{ ErrorMessage }}\n <button class=\"close-btn\" (click)=\"ErrorMessage = null\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n }\n\n <!-- Content Body -->\n <div class=\"content-body\">\n @if (IsLoading) {\n <mj-loading text=\"Loading MCP data...\"></mj-loading>\n } @else {\n @switch (ActiveTab) {\n <!-- Servers Tab -->\n @case ('servers') {\n <div class=\"data-grid servers-grid\">\n @if (filteredServers.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-server\"></i>\n <p>No MCP servers configured</p>\n <button kendoButton themeColor=\"primary\" (click)=\"createServer()\">\n Add Your First Server\n </button>\n </div>\n } @else {\n @for (server of filteredServers; track server.ID) {\n <div class=\"data-card\" [class.expanded]=\"isServerExpanded(server)\">\n <div class=\"card-header clickable\" (click)=\"toggleServerExpand(server)\">\n <div class=\"card-title\">\n <i class=\"fa-solid fa-chevron-right expand-arrow\" [class.rotated]=\"isServerExpanded(server)\"></i>\n <i [class]=\"getTransportIcon(server.TransportType)\"></i>\n <span class=\"name\" [innerHTML]=\"server.Name | highlightSearch:(filters$ | async)?.searchTerm\"></span>\n <span class=\"status-badge\" [ngClass]=\"getStatusClass(server.Status)\">\n {{ server.Status }}\n </span>\n </div>\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <button kendoButton fillMode=\"flat\" (click)=\"editServer(server)\" title=\"Edit\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"deleteServer(server)\" title=\"Delete\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n <div class=\"card-body\">\n @if (server.Description) {\n <p class=\"description\" [innerHTML]=\"server.Description | highlightSearch:(filters$ | async)?.searchTerm\"></p>\n }\n <div class=\"details-grid\">\n <div class=\"detail\">\n <span class=\"label\">Transport</span>\n <span class=\"value\">{{ server.TransportType }}</span>\n </div>\n <div class=\"detail\">\n <span class=\"label\">Auth</span>\n <span class=\"value\">{{ server.DefaultAuthType }}</span>\n </div>\n <div class=\"detail\">\n <span class=\"label\">Connections</span>\n <span class=\"value\">{{ server.ConnectionCount }}</span>\n </div>\n <div class=\"detail\">\n <span class=\"label\">Tools</span>\n <span class=\"value\">{{ server.ToolCount }}</span>\n </div>\n @if (server.ServerURL) {\n <div class=\"detail full-width\">\n <span class=\"label\">URL</span>\n <span class=\"value url\">{{ server.ServerURL }}</span>\n </div>\n }\n @if (server.Command) {\n <div class=\"detail full-width\">\n <span class=\"label\">Command</span>\n <span class=\"value command\">{{ server.Command }}</span>\n </div>\n }\n <div class=\"detail\">\n <span class=\"label\">Last Sync</span>\n <span class=\"value\">{{ formatDate(server.LastSyncAt) }}</span>\n </div>\n </div>\n </div>\n <!-- Expanded Tools Section -->\n @if (isServerExpanded(server)) {\n <div class=\"expanded-tools-section\">\n <div class=\"tools-section-header\">\n <i class=\"fa-solid fa-wrench\"></i>\n <span>Available Tools ({{ getToolsForServer(server.ID).length }})</span>\n </div>\n @if (getToolsForServer(server.ID).length === 0) {\n <div class=\"no-tools-message\">\n <i class=\"fa-solid fa-info-circle\"></i>\n No tools discovered yet. Sync a connection to discover tools.\n </div>\n } @else {\n <div class=\"tools-mini-list\">\n @for (tool of getToolsForServer(server.ID); track tool.ID) {\n <div class=\"tool-mini-card\">\n <div class=\"tool-mini-info\">\n <span class=\"tool-mini-name\">{{ tool.ToolTitle || tool.ToolName }}</span>\n <span class=\"tool-mini-params\">\n <i class=\"fa-solid fa-sliders\"></i>\n {{ getParamCount(tool) }} params\n </span>\n </div>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"runToolFromCard(tool); $event.stopPropagation()\"\n title=\"Test this tool\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n }\n\n <!-- Connections Tab -->\n @case ('connections') {\n <div class=\"data-grid connections-grid\">\n @if (filteredConnections.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-link\"></i>\n <p>No connections configured</p>\n <button kendoButton themeColor=\"primary\" (click)=\"createConnection()\">\n Add Your First Connection\n </button>\n </div>\n } @else {\n @for (conn of filteredConnections; track conn.ID) {\n <div class=\"data-card\" [class.expanded]=\"isConnectionExpanded(conn)\">\n <div class=\"card-header clickable\" (click)=\"toggleConnectionExpand(conn)\">\n <div class=\"card-title\">\n <i class=\"fa-solid fa-chevron-right expand-arrow\" [class.rotated]=\"isConnectionExpanded(conn)\"></i>\n <i class=\"fa-solid fa-link\"></i>\n <span class=\"name\" [innerHTML]=\"conn.Name | highlightSearch:(filters$ | async)?.searchTerm\"></span>\n <span class=\"status-badge\" [ngClass]=\"getStatusClass(conn.Status)\">\n {{ conn.Status }}\n </span>\n </div>\n <div class=\"card-actions\" (click)=\"$event.stopPropagation()\">\n <button kendoButton\n fillMode=\"flat\"\n (click)=\"syncConnectionTools(conn)\"\n [disabled]=\"isSyncing(conn.ID)\"\n title=\"Sync Tools\">\n @if (isSyncing(conn.ID)) {\n <i class=\"fa-solid fa-sync fa-spin\"></i>\n } @else {\n <i class=\"fa-solid fa-sync\"></i>\n }\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"editConnection(conn)\" title=\"Edit\">\n <i class=\"fa-solid fa-pen\"></i>\n </button>\n <button kendoButton fillMode=\"flat\" (click)=\"deleteConnection(conn)\" title=\"Delete\">\n <i class=\"fa-solid fa-trash\"></i>\n </button>\n </div>\n </div>\n <!-- Sync Progress Banner -->\n @if (isSyncing(conn.ID)) {\n <div class=\"sync-progress-banner\">\n <i class=\"fa-solid fa-circle-notch fa-spin\"></i>\n <span class=\"sync-message\">{{ getSyncProgressMessage(conn.ID) || 'Syncing...' }}</span>\n </div>\n }\n <!-- Sync Result Banner -->\n @if (getSyncState(conn.ID)?.lastResult && !isSyncing(conn.ID)) {\n <div class=\"sync-result-banner\"\n [class.success]=\"getSyncState(conn.ID)?.lastResult?.Success\"\n [class.error]=\"!getSyncState(conn.ID)?.lastResult?.Success\">\n @if (getSyncState(conn.ID)?.lastResult?.Success) {\n <i class=\"fa-solid fa-check-circle\"></i>\n <span>Synced: {{ getSyncState(conn.ID)?.lastResult?.Added }} added,\n {{ getSyncState(conn.ID)?.lastResult?.Updated }} updated,\n {{ getSyncState(conn.ID)?.lastResult?.Deprecated }} deprecated\n </span>\n } @else {\n <i class=\"fa-solid fa-exclamation-circle\"></i>\n <span>{{ getSyncState(conn.ID)?.lastResult?.ErrorMessage }}</span>\n }\n </div>\n }\n <div class=\"card-body\">\n @if (conn.Description) {\n <p class=\"description\" [innerHTML]=\"conn.Description | highlightSearch:(filters$ | async)?.searchTerm\"></p>\n }\n <div class=\"details-grid\">\n <div class=\"detail\">\n <span class=\"label\">Server</span>\n <span class=\"value\">{{ conn.ServerName }}</span>\n </div>\n <div class=\"detail\">\n <span class=\"label\">Auto Sync</span>\n <span class=\"value\">{{ conn.AutoSyncTools ? 'Yes' : 'No' }}</span>\n </div>\n <div class=\"detail\">\n <span class=\"label\">Logging</span>\n <span class=\"value\">{{ conn.LogToolCalls ? 'Enabled' : 'Disabled' }}</span>\n </div>\n <div class=\"detail\">\n <span class=\"label\">Last Connected</span>\n <span class=\"value\">{{ formatDate(conn.LastConnectedAt) }}</span>\n </div>\n @if (conn.LastErrorMessage) {\n <div class=\"detail full-width error\">\n <span class=\"label\">Last Error</span>\n <span class=\"value\">{{ conn.LastErrorMessage }}</span>\n </div>\n }\n </div>\n </div>\n <!-- Expanded Tools Section -->\n @if (isConnectionExpanded(conn)) {\n <div class=\"expanded-tools-section\">\n <div class=\"tools-section-header\">\n <i class=\"fa-solid fa-wrench\"></i>\n <span>Available Tools ({{ getToolsForConnection(conn.ID).length }})</span>\n </div>\n @if (getToolsForConnection(conn.ID).length === 0) {\n <div class=\"no-tools-message\">\n <i class=\"fa-solid fa-info-circle\"></i>\n No tools discovered yet. Click the sync button to discover tools.\n </div>\n } @else {\n <div class=\"tools-mini-list\">\n @for (tool of getToolsForConnection(conn.ID); track tool.ID) {\n <div class=\"tool-mini-card\">\n <div class=\"tool-mini-info\">\n <span class=\"tool-mini-name\">{{ tool.ToolTitle || tool.ToolName }}</span>\n <span class=\"tool-mini-params\">\n <i class=\"fa-solid fa-sliders\"></i>\n {{ getParamCount(tool) }} params\n </span>\n </div>\n <button kendoButton\n fillMode=\"flat\"\n size=\"small\"\n (click)=\"runToolFromCard(tool, conn); $event.stopPropagation()\"\n title=\"Test this tool with this connection\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n }\n </div>\n }\n\n <!-- Tools Tab -->\n @case ('tools') {\n @if (ServerGroups.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-wrench\"></i>\n <p>No tools discovered yet</p>\n <span class=\"hint\">Tools are discovered when connections sync with MCP servers</span>\n </div>\n } @else {\n <div class=\"tools-container\">\n <!-- Server Groups -->\n @for (group of ServerGroups; track group.server.ID) {\n <div class=\"server-group\" [class.collapsed]=\"!group.expanded\">\n <!-- Server Group Header -->\n <div class=\"server-group-header\" (click)=\"toggleServerGroup(group)\">\n <div class=\"server-info\">\n <i class=\"fa-solid fa-chevron-right expand-icon\" [class.expanded]=\"group.expanded\"></i>\n <i [class]=\"getTransportIcon(group.server.TransportType)\"></i>\n <span class=\"server-name\">{{ group.server.Name }}</span>\n <span class=\"tool-count\">{{ group.tools.length }} tools</span>\n <span class=\"status-badge small\" [ngClass]=\"getStatusClass(group.server.Status)\">\n {{ group.server.Status }}\n </span>\n </div>\n <div class=\"server-actions\" (click)=\"$event.stopPropagation()\">\n <button kendoButton fillMode=\"flat\" (click)=\"openTestToolDialog(undefined, undefined)\" title=\"Test a tool\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n </div>\n </div>\n\n <!-- Tools Content -->\n @if (group.expanded) {\n <!-- Card View -->\n @if (ToolsViewMode === 'card') {\n <div class=\"tools-grid\">\n @for (tool of group.tools; track tool.ID) {\n <div class=\"tool-card\" [class.expanded]=\"isToolExpanded(tool)\">\n <div class=\"tool-card-header\" (click)=\"toggleToolExpand(tool)\">\n <div class=\"tool-title\">\n <i class=\"fa-solid fa-wrench\"></i>\n <span class=\"name\" [innerHTML]=\"(tool.ToolTitle || tool.ToolName) | highlightSearch:(filters$ | async)?.searchTerm\"></span>\n </div>\n <div class=\"tool-meta\">\n <span class=\"param-badge\" title=\"Parameters\">\n <i class=\"fa-solid fa-sliders\"></i>\n {{ getParamCount(tool) }}\n </span>\n <span class=\"status-badge small\" [ngClass]=\"getStatusClass(tool.Status)\">\n {{ tool.Status }}\n </span>\n </div>\n </div>\n @if (tool.ToolDescription) {\n <p class=\"tool-description\" [innerHTML]=\"tool.ToolDescription | highlightSearch:(filters$ | async)?.searchTerm\"></p>\n }\n <div class=\"tool-card-actions\">\n <button kendoButton fillMode=\"flat\" size=\"small\" (click)=\"openTestToolDialog(tool)\" title=\"Test this tool\">\n <i class=\"fa-solid fa-play\"></i>\n Test\n </button>\n <button kendoButton fillMode=\"flat\" size=\"small\" (click)=\"toggleToolExpand(tool)\" title=\"View details\">\n <i class=\"fa-solid\" [class.fa-chevron-down]=\"!isToolExpanded(tool)\" [class.fa-chevron-up]=\"isToolExpanded(tool)\"></i>\n {{ isToolExpanded(tool) ? 'Less' : 'More' }}\n </button>\n </div>\n <!-- Expanded Details -->\n @if (isToolExpanded(tool)) {\n <div class=\"tool-details\">\n <div class=\"detail-row\">\n <span class=\"detail-label\">Tool Name:</span>\n <span class=\"detail-value mono\">{{ tool.ToolName }}</span>\n </div>\n <div class=\"detail-row\">\n <span class=\"detail-label\">Parameters:</span>\n <span class=\"detail-value\">\n {{ getParamCount(tool) }} total, {{ getRequiredParamCount(tool) }} required\n </span>\n </div>\n <div class=\"detail-row\">\n <span class=\"detail-label\">Discovered:</span>\n <span class=\"detail-value\">{{ formatDate(tool.DiscoveredAt) }}</span>\n </div>\n <div class=\"detail-row\">\n <span class=\"detail-label\">Last Seen:</span>\n <span class=\"detail-value\">{{ formatDate(tool.LastSeenAt) }}</span>\n </div>\n @if (tool.InputSchema) {\n <div class=\"detail-row full\">\n <span class=\"detail-label\">Input Schema:</span>\n <pre class=\"schema-preview\">{{ getFormattedInputSchema(tool) }}</pre>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n } @else {\n <!-- List View -->\n <div class=\"tools-list\">\n <table>\n <thead>\n <tr>\n <th>Tool</th>\n <th>Description</th>\n <th>Params</th>\n <th>Status</th>\n <th>Last Seen</th>\n <th>Actions</th>\n </tr>\n </thead>\n <tbody>\n @for (tool of group.tools; track tool.ID) {\n <tr [class.expanded]=\"isToolExpanded(tool)\">\n <td class=\"tool-name-cell\">\n <i class=\"fa-solid fa-wrench\"></i>\n <div class=\"tool-name-info\">\n <span class=\"tool-title\" [innerHTML]=\"(tool.ToolTitle || tool.ToolName) | highlightSearch:(filters$ | async)?.searchTerm\"></span>\n @if (tool.ToolTitle) {\n <span class=\"tool-code\">{{ tool.ToolName }}</span>\n }\n </div>\n </td>\n <td class=\"description-cell\" [innerHTML]=\"(tool.ToolDescription || '-') | highlightSearch:(filters$ | async)?.searchTerm\">\n </td>\n <td>\n <span class=\"param-count\">{{ getParamCount(tool) }}</span>\n </td>\n <td>\n <span class=\"status-badge small\" [ngClass]=\"getStatusClass(tool.Status)\">\n {{ tool.Status }}\n </span>\n </td>\n <td>{{ formatDate(tool.LastSeenAt) }}</td>\n <td class=\"actions-cell\">\n <button kendoButton fillMode=\"flat\" size=\"small\" (click)=\"openTestToolDialog(tool)\" title=\"Test\">\n <i class=\"fa-solid fa-play\"></i>\n </button>\n <button kendoButton fillMode=\"flat\" size=\"small\" (click)=\"toggleToolExpand(tool)\" title=\"Details\">\n <i class=\"fa-solid\" [class.fa-chevron-down]=\"!isToolExpanded(tool)\" [class.fa-chevron-up]=\"isToolExpanded(tool)\"></i>\n </button>\n </td>\n </tr>\n @if (isToolExpanded(tool)) {\n <tr class=\"detail-row-expanded\">\n <td colspan=\"6\">\n <div class=\"inline-details\">\n <div class=\"detail-section\">\n <span class=\"detail-label\">Tool Name:</span>\n <span class=\"detail-value mono\">{{ tool.ToolName }}</span>\n </div>\n <div class=\"detail-section\">\n <span class=\"detail-label\">Discovered:</span>\n <span class=\"detail-value\">{{ formatDate(tool.DiscoveredAt) }}</span>\n </div>\n <div class=\"detail-section\">\n <span class=\"detail-label\">Required Params:</span>\n <span class=\"detail-value\">{{ getRequiredParamCount(tool) }}</span>\n </div>\n @if (tool.InputSchema) {\n <div class=\"detail-section full\">\n <span class=\"detail-label\">Input Schema:</span>\n <pre class=\"schema-preview\">{{ getFormattedInputSchema(tool) }}</pre>\n </div>\n }\n </div>\n </td>\n </tr>\n }\n }\n </tbody>\n </table>\n </div>\n }\n }\n </div>\n }\n </div>\n }\n }\n\n <!-- Logs Tab -->\n @case ('logs') {\n <div class=\"data-table\">\n @if (filteredLogs.length === 0) {\n <div class=\"empty-state\">\n <i class=\"fa-solid fa-list-check\"></i>\n <p>No recent execution logs</p>\n <span class=\"hint\">Logs appear when tools are executed via MCP connections</span>\n </div>\n } @else {\n <table>\n <thead>\n <tr>\n <th class=\"sortable\" [ngClass]=\"getLogSortClass('status')\" (click)=\"onLogSortColumn('status')\">\n Status\n <i class=\"sort-icon fa-solid\" [class.fa-sort-up]=\"LogsSortColumn === 'status' && LogsSortAscending\" [class.fa-sort-down]=\"LogsSortColumn === 'status' && !LogsSortAscending\" [class.fa-sort]=\"LogsSortColumn !== 'status'\"></i>\n </th>\n <th class=\"sortable\" [ngClass]=\"getLogSortClass('server')\" (click)=\"onLogSortColumn('server')\">\n Server\n <i class=\"sort-icon fa-solid\" [class.fa-sort-up]=\"LogsSortColumn === 'server' && LogsSortAscending\" [class.fa-sort-down]=\"LogsSortColumn === 'server' && !LogsSortAscending\" [class.fa-sort]=\"LogsSortColumn !== 'server'\"></i>\n </th>\n <th class=\"sortable\" [ngClass]=\"getLogSortClass('tool')\" (click)=\"onLogSortColumn('tool')\">\n Tool\n <i class=\"sort-icon fa-solid\" [class.fa-sort-up]=\"LogsSortColumn === 'tool' && LogsSortAscending\" [class.fa-sort-down]=\"LogsSortColumn === 'tool' && !LogsSortAscending\" [class.fa-sort]=\"LogsSortColumn !== 'tool'\"></i>\n </th>\n <th class=\"sortable\" [ngClass]=\"getLogSortClass('connection')\" (click)=\"onLogSortColumn('connection')\">\n Connection\n <i class=\"sort-icon fa-solid\" [class.fa-sort-up]=\"LogsSortColumn === 'connection' && LogsSortAscending\" [class.fa-sort-down]=\"LogsSortColumn === 'connection' && !LogsSortAscending\" [class.fa-sort]=\"LogsSortColumn !== 'connection'\"></i>\n </th>\n <th class=\"sortable\" [ngClass]=\"getLogSortClass('started')\" (click)=\"onLogSortColumn('started')\">\n Started\n <i class=\"sort-icon fa-solid\" [class.fa-sort-up]=\"LogsSortColumn === 'started' && LogsSortAscending\" [class.fa-sort-down]=\"LogsSortColumn === 'started' && !LogsSortAscending\" [class.fa-sort]=\"LogsSortColumn !== 'started'\"></i>\n </th>\n <th class=\"sortable\" [ngClass]=\"getLogSortClass('duration')\" (click)=\"onLogSortColumn('duration')\">\n Duration\n <i class=\"sort-icon fa-solid\" [class.fa-sort-up]=\"LogsSortColumn === 'duration' && LogsSortAscending\" [class.fa-sort-down]=\"LogsSortColumn === 'duration' && !LogsSortAscending\" [class.fa-sort]=\"LogsSortColumn !== 'duration'\"></i>\n </th>\n <th class=\"sortable\" [ngClass]=\"getLogSortClass('error')\" (click)=\"onLogSortColumn('error')\">\n Error\n <i class=\"sort-icon fa-solid\" [class.fa-sort-up]=\"LogsSortColumn === 'error' && LogsSortAscending\" [class.fa-sort-down]=\"LogsSortColumn === 'error' && !LogsSortAscending\" [class.fa-sort]=\"LogsSortColumn !== 'error'\"></i>\n </th>\n <th></th>\n </tr>\n </thead>\n <tbody>\n @for (log of filteredLogs; track log.ID) {\n <tr [class.error-row]=\"log.Status === 'Error'\"\n class=\"clickable-row\"\n (click)=\"onLogClick(log)\"\n title=\"Click for details\">\n <td>\n <span class=\"status-badge\" [ngClass]=\"getStatusClass(log.Status)\">\n @switch (log.Status) {\n @case ('Success') {\n <i class=\"fa-solid fa-check-circle\"></i>\n }\n @case ('Error') {\n <i class=\"fa-solid fa-times-circle\"></i>\n }\n @case ('Running') {\n <i class=\"fa-solid fa-spinner fa-spin\"></i>\n }\n @default {\n <i class=\"fa-solid fa-question-circle\"></i>\n }\n }\n {{ log.Status || 'Unknown' }}\n </span>\n </td>\n <td class=\"server-name\">{{ log.ServerName }}</td>\n <td class=\"tool-name\">{{ log.ToolName }}</td>\n <td>{{ log.ConnectionName }}</td>\n <td>{{ formatDate(log.StartedAt) }}</td>\n <td>{{ formatDuration(log.DurationMs) }}</td>\n <td class=\"error-message\" [title]=\"log.ErrorMessage || ''\">\n {{ log.ErrorMessage || '-' }}\n </td>\n <td class=\"action-cell\">\n <i class=\"fa-solid fa-chevron-right\"></i>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n </div>\n }\n }\n }\n </div>\n </div>\n </div>\n</div>\n\n<!-- Server Dialog -->\n@if (ShowServerDialog) {\n <mj-mcp-server-dialog\n [server]=\"EditingServer\"\n [visible]=\"ShowServerDialog\"\n (close)=\"onServerDialogClose($event)\">\n </mj-mcp-server-dialog>\n}\n\n<!-- Connection Dialog -->\n@if (ShowConnectionDialog) {\n <mj-mcp-connection-dialog\n [connection]=\"EditingConnection\"\n [servers]=\"servers\"\n [visible]=\"ShowConnectionDialog\"\n (close)=\"onConnectionDialogClose($event)\">\n </mj-mcp-connection-dialog>\n}\n\n<!-- Test Tool Dialog -->\n@if (ShowTestToolDialog) {\n <mj-mcp-test-tool-dialog\n [Visible]=\"ShowTestToolDialog\"\n [Servers]=\"servers\"\n [Connections]=\"connections\"\n [Tools]=\"tools\"\n [SelectedServerID]=\"TestToolServerID\"\n [SelectedConnectionID]=\"TestToolConnectionID\"\n [SelectedToolID]=\"TestToolID\"\n (Close)=\"onTestToolDialogClose()\">\n </mj-mcp-test-tool-dialog>\n}\n\n<!-- Log Detail Panel -->\n@if (ShowLogDetailPanel && SelectedLog) {\n <mj-mcp-log-detail-panel\n [Visible]=\"ShowLogDetailPanel\"\n [Log]=\"SelectedLog\"\n (Close)=\"onLogDetailClose()\"\n (RunAgain)=\"onRunAgainFromLog($event)\">\n </mj-mcp-log-detail-panel>\n}\n"]}