@burdenoff/microfe-vibecontrols 2026.511.1
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.
- package/README.md +91 -0
- package/dist/VibeControlsRoot.d.ts +36 -0
- package/dist/VibeControlsRoot.d.ts.map +1 -0
- package/dist/VibeControlsRoot.js +195 -0
- package/dist/VibeControlsRoot.js.map +1 -0
- package/dist/VibeControlsRoutes.d.ts +2 -0
- package/dist/VibeControlsRoutes.d.ts.map +1 -0
- package/dist/VibeControlsRoutes.js +285 -0
- package/dist/VibeControlsRoutes.js.map +1 -0
- package/dist/_virtual/_rolldown/runtime.js +23 -0
- package/dist/components/actions/ActionCard.d.ts +32 -0
- package/dist/components/actions/ActionCard.d.ts.map +1 -0
- package/dist/components/actions/ActionCard.js +140 -0
- package/dist/components/actions/ActionCard.js.map +1 -0
- package/dist/components/actions/ActionForm.d.ts +39 -0
- package/dist/components/actions/ActionForm.d.ts.map +1 -0
- package/dist/components/actions/ActionForm.js +488 -0
- package/dist/components/actions/ActionForm.js.map +1 -0
- package/dist/components/actions/ActionTypeBadge.d.ts +9 -0
- package/dist/components/actions/ActionTypeBadge.d.ts.map +1 -0
- package/dist/components/actions/ActionTypeBadge.js +77 -0
- package/dist/components/actions/ActionTypeBadge.js.map +1 -0
- package/dist/components/actions/ExecutionHistory.d.ts +23 -0
- package/dist/components/actions/ExecutionHistory.d.ts.map +1 -0
- package/dist/components/actions/ExecutionHistory.js +103 -0
- package/dist/components/actions/ExecutionHistory.js.map +1 -0
- package/dist/components/actions/index.d.ts +6 -0
- package/dist/components/actions/index.d.ts.map +1 -0
- package/dist/components/actions/index.js +4 -0
- package/dist/components/agent-manager/AgentManagerAdminBar.d.ts +13 -0
- package/dist/components/agent-manager/AgentManagerAdminBar.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerAdminBar.js +146 -0
- package/dist/components/agent-manager/AgentManagerAdminBar.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerBulkActions.d.ts +13 -0
- package/dist/components/agent-manager/AgentManagerBulkActions.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerBulkActions.js +74 -0
- package/dist/components/agent-manager/AgentManagerBulkActions.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerCenter.d.ts +8 -0
- package/dist/components/agent-manager/AgentManagerCenter.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerCenter.js +129 -0
- package/dist/components/agent-manager/AgentManagerCenter.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerChatPane.d.ts +9 -0
- package/dist/components/agent-manager/AgentManagerChatPane.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerChatPane.js +121 -0
- package/dist/components/agent-manager/AgentManagerChatPane.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerDetailPanel.d.ts +13 -0
- package/dist/components/agent-manager/AgentManagerDetailPanel.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerDetailPanel.js +73 -0
- package/dist/components/agent-manager/AgentManagerDetailPanel.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerInputArea.d.ts +14 -0
- package/dist/components/agent-manager/AgentManagerInputArea.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerInputArea.js +397 -0
- package/dist/components/agent-manager/AgentManagerInputArea.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerLayout.d.ts +10 -0
- package/dist/components/agent-manager/AgentManagerLayout.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerLayout.js +137 -0
- package/dist/components/agent-manager/AgentManagerLayout.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerMessageItem.d.ts +10 -0
- package/dist/components/agent-manager/AgentManagerMessageItem.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerMessageItem.js +65 -0
- package/dist/components/agent-manager/AgentManagerMessageItem.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerMessageList.d.ts +12 -0
- package/dist/components/agent-manager/AgentManagerMessageList.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerMessageList.js +58 -0
- package/dist/components/agent-manager/AgentManagerMessageList.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerSessionItem.d.ts +12 -0
- package/dist/components/agent-manager/AgentManagerSessionItem.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerSessionItem.js +141 -0
- package/dist/components/agent-manager/AgentManagerSessionItem.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerSessionList.d.ts +16 -0
- package/dist/components/agent-manager/AgentManagerSessionList.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerSessionList.js +180 -0
- package/dist/components/agent-manager/AgentManagerSessionList.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerSidebar.d.ts +14 -0
- package/dist/components/agent-manager/AgentManagerSidebar.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerSidebar.js +204 -0
- package/dist/components/agent-manager/AgentManagerSidebar.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerStreamingIndicator.d.ts +8 -0
- package/dist/components/agent-manager/AgentManagerStreamingIndicator.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerStreamingIndicator.js +53 -0
- package/dist/components/agent-manager/AgentManagerStreamingIndicator.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerTab.d.ts +15 -0
- package/dist/components/agent-manager/AgentManagerTab.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerTab.js +49 -0
- package/dist/components/agent-manager/AgentManagerTab.js.map +1 -0
- package/dist/components/agent-manager/AgentManagerTabBar.d.ts +10 -0
- package/dist/components/agent-manager/AgentManagerTabBar.d.ts.map +1 -0
- package/dist/components/agent-manager/AgentManagerTabBar.js +152 -0
- package/dist/components/agent-manager/AgentManagerTabBar.js.map +1 -0
- package/dist/components/agent-manager/BridleConfigPanel.d.ts +13 -0
- package/dist/components/agent-manager/BridleConfigPanel.d.ts.map +1 -0
- package/dist/components/agent-manager/BridleConfigPanel.js +356 -0
- package/dist/components/agent-manager/BridleConfigPanel.js.map +1 -0
- package/dist/components/agent-manager/PluginInstallModal.d.ts +9 -0
- package/dist/components/agent-manager/PluginInstallModal.d.ts.map +1 -0
- package/dist/components/agent-manager/PluginInstallModal.js +98 -0
- package/dist/components/agent-manager/PluginInstallModal.js.map +1 -0
- package/dist/components/agent-manager/controls/ContextLevelToggle.d.ts +23 -0
- package/dist/components/agent-manager/controls/ContextLevelToggle.d.ts.map +1 -0
- package/dist/components/agent-manager/controls/ContextLevelToggle.js +101 -0
- package/dist/components/agent-manager/controls/ContextLevelToggle.js.map +1 -0
- package/dist/components/agent-manager/controls/FileAttachButton.d.ts +13 -0
- package/dist/components/agent-manager/controls/FileAttachButton.d.ts.map +1 -0
- package/dist/components/agent-manager/controls/FileAttachButton.js +44 -0
- package/dist/components/agent-manager/controls/FileAttachButton.js.map +1 -0
- package/dist/components/agent-manager/controls/McpServerSelector.d.ts +10 -0
- package/dist/components/agent-manager/controls/McpServerSelector.d.ts.map +1 -0
- package/dist/components/agent-manager/controls/McpServerSelector.js +98 -0
- package/dist/components/agent-manager/controls/McpServerSelector.js.map +1 -0
- package/dist/components/agent-manager/controls/ModelSelector.d.ts +10 -0
- package/dist/components/agent-manager/controls/ModelSelector.d.ts.map +1 -0
- package/dist/components/agent-manager/controls/ModelSelector.js +158 -0
- package/dist/components/agent-manager/controls/ModelSelector.js.map +1 -0
- package/dist/components/agent-manager/controls/SdkSelector.d.ts +13 -0
- package/dist/components/agent-manager/controls/SdkSelector.d.ts.map +1 -0
- package/dist/components/agent-manager/controls/SdkSelector.js +210 -0
- package/dist/components/agent-manager/controls/SdkSelector.js.map +1 -0
- package/dist/components/agent-manager/controls/VoiceToggle.d.ts +13 -0
- package/dist/components/agent-manager/controls/VoiceToggle.d.ts.map +1 -0
- package/dist/components/agent-manager/controls/VoiceToggle.js +18 -0
- package/dist/components/agent-manager/controls/VoiceToggle.js.map +1 -0
- package/dist/components/agent-manager/detail/SessionConfigPanel.d.ts +14 -0
- package/dist/components/agent-manager/detail/SessionConfigPanel.d.ts.map +1 -0
- package/dist/components/agent-manager/detail/SessionConfigPanel.js +250 -0
- package/dist/components/agent-manager/detail/SessionConfigPanel.js.map +1 -0
- package/dist/components/agent-manager/detail/SessionLogsPanel.d.ts +13 -0
- package/dist/components/agent-manager/detail/SessionLogsPanel.d.ts.map +1 -0
- package/dist/components/agent-manager/detail/SessionLogsPanel.js +107 -0
- package/dist/components/agent-manager/detail/SessionLogsPanel.js.map +1 -0
- package/dist/components/agent-manager/detail/SessionStatsPanel.d.ts +12 -0
- package/dist/components/agent-manager/detail/SessionStatsPanel.d.ts.map +1 -0
- package/dist/components/agent-manager/detail/SessionStatsPanel.js +68 -0
- package/dist/components/agent-manager/detail/SessionStatsPanel.js.map +1 -0
- package/dist/components/agent-manager/detail/SessionToolsPanel.d.ts +12 -0
- package/dist/components/agent-manager/detail/SessionToolsPanel.d.ts.map +1 -0
- package/dist/components/agent-manager/detail/SessionToolsPanel.js +64 -0
- package/dist/components/agent-manager/detail/SessionToolsPanel.js.map +1 -0
- package/dist/components/agent-manager/dialogs/ExportSessionDialog.d.ts +15 -0
- package/dist/components/agent-manager/dialogs/ExportSessionDialog.d.ts.map +1 -0
- package/dist/components/agent-manager/dialogs/ExportSessionDialog.js +141 -0
- package/dist/components/agent-manager/dialogs/ExportSessionDialog.js.map +1 -0
- package/dist/components/agent-manager/dialogs/NewSessionDialog.d.ts +14 -0
- package/dist/components/agent-manager/dialogs/NewSessionDialog.d.ts.map +1 -0
- package/dist/components/agent-manager/dialogs/NewSessionDialog.js +209 -0
- package/dist/components/agent-manager/dialogs/NewSessionDialog.js.map +1 -0
- package/dist/components/agent-manager/dialogs/RenameSessionDialog.d.ts +15 -0
- package/dist/components/agent-manager/dialogs/RenameSessionDialog.d.ts.map +1 -0
- package/dist/components/agent-manager/dialogs/RenameSessionDialog.js +105 -0
- package/dist/components/agent-manager/dialogs/RenameSessionDialog.js.map +1 -0
- package/dist/components/agent-manager/dialogs/SessionSearchDialog.d.ts +15 -0
- package/dist/components/agent-manager/dialogs/SessionSearchDialog.d.ts.map +1 -0
- package/dist/components/agent-manager/dialogs/SessionSearchDialog.js +162 -0
- package/dist/components/agent-manager/dialogs/SessionSearchDialog.js.map +1 -0
- package/dist/components/agent-manager/index.d.ts +16 -0
- package/dist/components/agent-manager/index.d.ts.map +1 -0
- package/dist/components/agents/AgentCard.d.ts +30 -0
- package/dist/components/agents/AgentCard.d.ts.map +1 -0
- package/dist/components/agents/AgentCard.js +209 -0
- package/dist/components/agents/AgentCard.js.map +1 -0
- package/dist/components/agents/AgentForm.d.ts +29 -0
- package/dist/components/agents/AgentForm.d.ts.map +1 -0
- package/dist/components/agents/AgentForm.js +593 -0
- package/dist/components/agents/AgentForm.js.map +1 -0
- package/dist/components/agents/AgentList.d.ts +19 -0
- package/dist/components/agents/AgentList.d.ts.map +1 -0
- package/dist/components/agents/AgentList.js +333 -0
- package/dist/components/agents/AgentList.js.map +1 -0
- package/dist/components/agents/AgentStatusBadge.d.ts +12 -0
- package/dist/components/agents/AgentStatusBadge.d.ts.map +1 -0
- package/dist/components/agents/AgentStatusBadge.js +43 -0
- package/dist/components/agents/AgentStatusBadge.js.map +1 -0
- package/dist/components/agents/OpenInBrowserEditorButton.d.ts +16 -0
- package/dist/components/agents/OpenInBrowserEditorButton.d.ts.map +1 -0
- package/dist/components/agents/OpenInBrowserEditorButton.js +115 -0
- package/dist/components/agents/OpenInBrowserEditorButton.js.map +1 -0
- package/dist/components/agents/PluginUIPanel.d.ts +38 -0
- package/dist/components/agents/PluginUIPanel.d.ts.map +1 -0
- package/dist/components/agents/PluginUIPanel.js +308 -0
- package/dist/components/agents/PluginUIPanel.js.map +1 -0
- package/dist/components/agents/backup/AgentBackupTab.d.ts +11 -0
- package/dist/components/agents/backup/AgentBackupTab.d.ts.map +1 -0
- package/dist/components/agents/backup/AgentBackupTab.js +407 -0
- package/dist/components/agents/backup/AgentBackupTab.js.map +1 -0
- package/dist/components/agents/index.d.ts +8 -0
- package/dist/components/agents/index.d.ts.map +1 -0
- package/dist/components/agents/index.js +6 -0
- package/dist/components/agents/types.d.ts +72 -0
- package/dist/components/agents/types.d.ts.map +1 -0
- package/dist/components/ai/AIAssistantPanel.d.ts +8 -0
- package/dist/components/ai/AIAssistantPanel.d.ts.map +1 -0
- package/dist/components/ai/AIContextsTab.d.ts +6 -0
- package/dist/components/ai/AIContextsTab.d.ts.map +1 -0
- package/dist/components/ai/AIContextsTab.js +378 -0
- package/dist/components/ai/AIContextsTab.js.map +1 -0
- package/dist/components/ai/AIOverviewTab.d.ts +7 -0
- package/dist/components/ai/AIOverviewTab.d.ts.map +1 -0
- package/dist/components/ai/AIOverviewTab.js +143 -0
- package/dist/components/ai/AIOverviewTab.js.map +1 -0
- package/dist/components/ai/AIPlaygroundTab.d.ts +6 -0
- package/dist/components/ai/AIPlaygroundTab.d.ts.map +1 -0
- package/dist/components/ai/AIPlaygroundTab.js +222 -0
- package/dist/components/ai/AIPlaygroundTab.js.map +1 -0
- package/dist/components/ai/AIPromptsTab.d.ts +6 -0
- package/dist/components/ai/AIPromptsTab.d.ts.map +1 -0
- package/dist/components/ai/AIPromptsTab.js +251 -0
- package/dist/components/ai/AIPromptsTab.js.map +1 -0
- package/dist/components/ai/AISessionsTab.d.ts +7 -0
- package/dist/components/ai/AISessionsTab.d.ts.map +1 -0
- package/dist/components/ai/AISessionsTab.js +245 -0
- package/dist/components/ai/AISessionsTab.js.map +1 -0
- package/dist/components/ai/AIStatsTab.d.ts +6 -0
- package/dist/components/ai/AIStatsTab.d.ts.map +1 -0
- package/dist/components/ai/AIStatsTab.js +182 -0
- package/dist/components/ai/AIStatsTab.js.map +1 -0
- package/dist/components/ai/AITasksTab.d.ts +5 -0
- package/dist/components/ai/AITasksTab.d.ts.map +1 -0
- package/dist/components/ai/AITasksTab.js +549 -0
- package/dist/components/ai/AITasksTab.js.map +1 -0
- package/dist/components/ai/AITemplatesTab.d.ts +6 -0
- package/dist/components/ai/AITemplatesTab.d.ts.map +1 -0
- package/dist/components/ai/AITemplatesTab.js +472 -0
- package/dist/components/ai/AITemplatesTab.js.map +1 -0
- package/dist/components/ai/ClaudeCredentialsCard.d.ts +6 -0
- package/dist/components/ai/ClaudeCredentialsCard.d.ts.map +1 -0
- package/dist/components/ai/ClaudeCredentialsCard.js +133 -0
- package/dist/components/ai/ClaudeCredentialsCard.js.map +1 -0
- package/dist/components/ai/PluginHarnessPicker.d.ts +31 -0
- package/dist/components/ai/PluginHarnessPicker.d.ts.map +1 -0
- package/dist/components/ai/PluginHarnessPicker.js +136 -0
- package/dist/components/ai/PluginHarnessPicker.js.map +1 -0
- package/dist/components/analytics/AnalyticsBreakdownChart.d.ts +12 -0
- package/dist/components/analytics/AnalyticsBreakdownChart.d.ts.map +1 -0
- package/dist/components/analytics/AnalyticsBreakdownChart.js +73 -0
- package/dist/components/analytics/AnalyticsBreakdownChart.js.map +1 -0
- package/dist/components/analytics/AnalyticsBreakdownTable.d.ts +13 -0
- package/dist/components/analytics/AnalyticsBreakdownTable.d.ts.map +1 -0
- package/dist/components/analytics/AnalyticsBreakdownTable.js +100 -0
- package/dist/components/analytics/AnalyticsBreakdownTable.js.map +1 -0
- package/dist/components/analytics/AnalyticsEntityTabs.d.ts +9 -0
- package/dist/components/analytics/AnalyticsEntityTabs.d.ts.map +1 -0
- package/dist/components/analytics/AnalyticsEntityTabs.js +52 -0
- package/dist/components/analytics/AnalyticsEntityTabs.js.map +1 -0
- package/dist/components/analytics/AnalyticsFilterBar.d.ts +15 -0
- package/dist/components/analytics/AnalyticsFilterBar.d.ts.map +1 -0
- package/dist/components/analytics/AnalyticsFilterBar.js +51 -0
- package/dist/components/analytics/AnalyticsFilterBar.js.map +1 -0
- package/dist/components/analytics/AnalyticsKpiGrid.d.ts +10 -0
- package/dist/components/analytics/AnalyticsKpiGrid.d.ts.map +1 -0
- package/dist/components/analytics/AnalyticsKpiGrid.js +112 -0
- package/dist/components/analytics/AnalyticsKpiGrid.js.map +1 -0
- package/dist/components/analytics/AnalyticsTimeSeriesChart.d.ts +16 -0
- package/dist/components/analytics/AnalyticsTimeSeriesChart.d.ts.map +1 -0
- package/dist/components/analytics/AnalyticsTimeSeriesChart.js +115 -0
- package/dist/components/analytics/AnalyticsTimeSeriesChart.js.map +1 -0
- package/dist/components/analytics/SandboxAnalyticsSection.d.ts +9 -0
- package/dist/components/analytics/SandboxAnalyticsSection.d.ts.map +1 -0
- package/dist/components/analytics/SandboxAnalyticsSection.js +185 -0
- package/dist/components/analytics/SandboxAnalyticsSection.js.map +1 -0
- package/dist/components/analytics/index.d.ts +9 -0
- package/dist/components/analytics/index.d.ts.map +1 -0
- package/dist/components/analytics/index.js +8 -0
- package/dist/components/analytics/types.d.ts +28 -0
- package/dist/components/analytics/types.d.ts.map +1 -0
- package/dist/components/analytics/types.js +140 -0
- package/dist/components/analytics/types.js.map +1 -0
- package/dist/components/assistant/AIAssistantPanel.d.ts +5 -0
- package/dist/components/assistant/AIAssistantPanel.d.ts.map +1 -0
- package/dist/components/assistant/AIAssistantPanel.js +68 -0
- package/dist/components/assistant/AIAssistantPanel.js.map +1 -0
- package/dist/components/assistant/AssistantChatArea.d.ts +4 -0
- package/dist/components/assistant/AssistantChatArea.d.ts.map +1 -0
- package/dist/components/assistant/AssistantChatArea.js +346 -0
- package/dist/components/assistant/AssistantChatArea.js.map +1 -0
- package/dist/components/assistant/AssistantChatInput.d.ts +10 -0
- package/dist/components/assistant/AssistantChatInput.d.ts.map +1 -0
- package/dist/components/assistant/AssistantChatInput.js +43 -0
- package/dist/components/assistant/AssistantChatInput.js.map +1 -0
- package/dist/components/assistant/AssistantConversationList.d.ts +4 -0
- package/dist/components/assistant/AssistantConversationList.d.ts.map +1 -0
- package/dist/components/assistant/AssistantConversationList.js +144 -0
- package/dist/components/assistant/AssistantConversationList.js.map +1 -0
- package/dist/components/assistant/AssistantExportMenu.d.ts +4 -0
- package/dist/components/assistant/AssistantExportMenu.d.ts.map +1 -0
- package/dist/components/assistant/AssistantExportMenu.js +49 -0
- package/dist/components/assistant/AssistantExportMenu.js.map +1 -0
- package/dist/components/assistant/AssistantMarkdownRenderer.d.ts +8 -0
- package/dist/components/assistant/AssistantMarkdownRenderer.d.ts.map +1 -0
- package/dist/components/assistant/AssistantMarkdownRenderer.js +204 -0
- package/dist/components/assistant/AssistantMarkdownRenderer.js.map +1 -0
- package/dist/components/assistant/AssistantMessageItem.d.ts +10 -0
- package/dist/components/assistant/AssistantMessageItem.d.ts.map +1 -0
- package/dist/components/assistant/AssistantMessageItem.js +91 -0
- package/dist/components/assistant/AssistantMessageItem.js.map +1 -0
- package/dist/components/assistant/AssistantMessageList.d.ts +10 -0
- package/dist/components/assistant/AssistantMessageList.d.ts.map +1 -0
- package/dist/components/assistant/AssistantMessageList.js +28 -0
- package/dist/components/assistant/AssistantMessageList.js.map +1 -0
- package/dist/components/assistant/AssistantModeSelector.d.ts +10 -0
- package/dist/components/assistant/AssistantModeSelector.d.ts.map +1 -0
- package/dist/components/assistant/AssistantModeSelector.js +57 -0
- package/dist/components/assistant/AssistantModeSelector.js.map +1 -0
- package/dist/components/assistant/AssistantWelcome.d.ts +10 -0
- package/dist/components/assistant/AssistantWelcome.d.ts.map +1 -0
- package/dist/components/assistant/AssistantWelcome.js +41 -0
- package/dist/components/assistant/AssistantWelcome.js.map +1 -0
- package/dist/components/assistant/index.d.ts +11 -0
- package/dist/components/assistant/index.d.ts.map +1 -0
- package/dist/components/assistant/index.js +10 -0
- package/dist/components/audit/AuditDeleteDialog.d.ts +12 -0
- package/dist/components/audit/AuditDeleteDialog.d.ts.map +1 -0
- package/dist/components/audit/AuditDeleteDialog.js +74 -0
- package/dist/components/audit/AuditDeleteDialog.js.map +1 -0
- package/dist/components/audit/AuditExportButton.d.ts +8 -0
- package/dist/components/audit/AuditExportButton.d.ts.map +1 -0
- package/dist/components/audit/AuditExportButton.js +70 -0
- package/dist/components/audit/AuditExportButton.js.map +1 -0
- package/dist/components/audit/AuditLogDetail.d.ts +9 -0
- package/dist/components/audit/AuditLogDetail.d.ts.map +1 -0
- package/dist/components/audit/AuditLogDetail.js +266 -0
- package/dist/components/audit/AuditLogDetail.js.map +1 -0
- package/dist/components/audit/AuditLogFilters.d.ts +15 -0
- package/dist/components/audit/AuditLogFilters.d.ts.map +1 -0
- package/dist/components/audit/AuditLogFilters.js +185 -0
- package/dist/components/audit/AuditLogFilters.js.map +1 -0
- package/dist/components/audit/AuditLogStats.d.ts +9 -0
- package/dist/components/audit/AuditLogStats.d.ts.map +1 -0
- package/dist/components/audit/AuditLogStats.js +54 -0
- package/dist/components/audit/AuditLogStats.js.map +1 -0
- package/dist/components/audit/AuditLogTable.d.ts +21 -0
- package/dist/components/audit/AuditLogTable.d.ts.map +1 -0
- package/dist/components/audit/AuditLogTable.js +270 -0
- package/dist/components/audit/AuditLogTable.js.map +1 -0
- package/dist/components/audit/index.d.ts +7 -0
- package/dist/components/audit/index.d.ts.map +1 -0
- package/dist/components/audit/index.js +6 -0
- package/dist/components/catalog/CatalogCard.d.ts +22 -0
- package/dist/components/catalog/CatalogCard.d.ts.map +1 -0
- package/dist/components/catalog/CatalogCard.js +149 -0
- package/dist/components/catalog/CatalogCard.js.map +1 -0
- package/dist/components/catalog/CatalogForm.d.ts +18 -0
- package/dist/components/catalog/CatalogForm.d.ts.map +1 -0
- package/dist/components/catalog/CatalogForm.js +152 -0
- package/dist/components/catalog/CatalogForm.js.map +1 -0
- package/dist/components/catalog/index.d.ts +5 -0
- package/dist/components/catalog/index.d.ts.map +1 -0
- package/dist/components/catalog/index.js +2 -0
- package/dist/components/docs/DocsCompileStatus.d.ts +9 -0
- package/dist/components/docs/DocsCompileStatus.d.ts.map +1 -0
- package/dist/components/docs/DocsCompileStatus.js +106 -0
- package/dist/components/docs/DocsCompileStatus.js.map +1 -0
- package/dist/components/docs/DocsEditPanel.d.ts +26 -0
- package/dist/components/docs/DocsEditPanel.d.ts.map +1 -0
- package/dist/components/docs/DocsEditPanel.js +97 -0
- package/dist/components/docs/DocsEditPanel.js.map +1 -0
- package/dist/components/docs/DocsEmptyState.d.ts +7 -0
- package/dist/components/docs/DocsEmptyState.d.ts.map +1 -0
- package/dist/components/docs/DocsEmptyState.js +24 -0
- package/dist/components/docs/DocsEmptyState.js.map +1 -0
- package/dist/components/docs/DocsPageEditor.d.ts +13 -0
- package/dist/components/docs/DocsPageEditor.d.ts.map +1 -0
- package/dist/components/docs/DocsPageEditor.js +83 -0
- package/dist/components/docs/DocsPageEditor.js.map +1 -0
- package/dist/components/docs/DocsPageTree.d.ts +12 -0
- package/dist/components/docs/DocsPageTree.d.ts.map +1 -0
- package/dist/components/docs/DocsPageTree.js +103 -0
- package/dist/components/docs/DocsPageTree.js.map +1 -0
- package/dist/components/docs/DocsPreviewPanel.d.ts +17 -0
- package/dist/components/docs/DocsPreviewPanel.d.ts.map +1 -0
- package/dist/components/docs/DocsPreviewPanel.js +106 -0
- package/dist/components/docs/DocsPreviewPanel.js.map +1 -0
- package/dist/components/docs/DocsSettingsPanel.d.ts +15 -0
- package/dist/components/docs/DocsSettingsPanel.d.ts.map +1 -0
- package/dist/components/docs/DocsSettingsPanel.js +411 -0
- package/dist/components/docs/DocsSettingsPanel.js.map +1 -0
- package/dist/components/docs/DocsTabPanel.d.ts +8 -0
- package/dist/components/docs/DocsTabPanel.d.ts.map +1 -0
- package/dist/components/docs/DocsTabPanel.js +155 -0
- package/dist/components/docs/DocsTabPanel.js.map +1 -0
- package/dist/components/docs/index.d.ts +10 -0
- package/dist/components/docs/index.d.ts.map +1 -0
- package/dist/components/docs/index.js +8 -0
- package/dist/components/docs/previewHtml.d.ts +2 -0
- package/dist/components/docs/previewHtml.d.ts.map +1 -0
- package/dist/components/docs/previewHtml.js +17 -0
- package/dist/components/docs/previewHtml.js.map +1 -0
- package/dist/components/docs/types.d.ts +59 -0
- package/dist/components/docs/types.d.ts.map +1 -0
- package/dist/components/gitops/CIDurationChart.d.ts +12 -0
- package/dist/components/gitops/CIDurationChart.d.ts.map +1 -0
- package/dist/components/gitops/CIDurationChart.js +102 -0
- package/dist/components/gitops/CIDurationChart.js.map +1 -0
- package/dist/components/gitops/CIFailedRuns.d.ts +13 -0
- package/dist/components/gitops/CIFailedRuns.d.ts.map +1 -0
- package/dist/components/gitops/CIFailedRuns.js +153 -0
- package/dist/components/gitops/CIFailedRuns.js.map +1 -0
- package/dist/components/gitops/CIPipelineRunsTable.d.ts +13 -0
- package/dist/components/gitops/CIPipelineRunsTable.d.ts.map +1 -0
- package/dist/components/gitops/CIPipelineRunsTable.js +144 -0
- package/dist/components/gitops/CIPipelineRunsTable.js.map +1 -0
- package/dist/components/gitops/CISuccessRateChart.d.ts +13 -0
- package/dist/components/gitops/CISuccessRateChart.d.ts.map +1 -0
- package/dist/components/gitops/CISuccessRateChart.js +101 -0
- package/dist/components/gitops/CISuccessRateChart.js.map +1 -0
- package/dist/components/gitops/CITab.d.ts +15 -0
- package/dist/components/gitops/CITab.d.ts.map +1 -0
- package/dist/components/gitops/CITab.js +55 -0
- package/dist/components/gitops/CITab.js.map +1 -0
- package/dist/components/gitops/CIWorkflowList.d.ts +13 -0
- package/dist/components/gitops/CIWorkflowList.d.ts.map +1 -0
- package/dist/components/gitops/CIWorkflowList.js +24 -0
- package/dist/components/gitops/CIWorkflowList.js.map +1 -0
- package/dist/components/gitops/GitOpsProviderCard.d.ts +14 -0
- package/dist/components/gitops/GitOpsProviderCard.d.ts.map +1 -0
- package/dist/components/gitops/GitOpsSetup.d.ts +16 -0
- package/dist/components/gitops/GitOpsSetup.d.ts.map +1 -0
- package/dist/components/gitops/GitOpsSetup.js +155 -0
- package/dist/components/gitops/GitOpsSetup.js.map +1 -0
- package/dist/components/gitops/GitOpsSkeleton.d.ts +12 -0
- package/dist/components/gitops/GitOpsSkeleton.d.ts.map +1 -0
- package/dist/components/gitops/GitOpsSkeleton.js +26 -0
- package/dist/components/gitops/GitOpsSkeleton.js.map +1 -0
- package/dist/components/gitops/GitOpsStatusBadge.d.ts +14 -0
- package/dist/components/gitops/GitOpsStatusBadge.d.ts.map +1 -0
- package/dist/components/gitops/GitOpsStatusBadge.js +28 -0
- package/dist/components/gitops/GitOpsStatusBadge.js.map +1 -0
- package/dist/components/gitops/ProviderIcon.d.ts +14 -0
- package/dist/components/gitops/ProviderIcon.d.ts.map +1 -0
- package/dist/components/gitops/ProviderIcon.js +35 -0
- package/dist/components/gitops/ProviderIcon.js.map +1 -0
- package/dist/components/gitops/RepoActivityCard.d.ts +12 -0
- package/dist/components/gitops/RepoActivityCard.d.ts.map +1 -0
- package/dist/components/gitops/RepoActivityCard.js +64 -0
- package/dist/components/gitops/RepoActivityCard.js.map +1 -0
- package/dist/components/gitops/RepoIssuesCard.d.ts +12 -0
- package/dist/components/gitops/RepoIssuesCard.d.ts.map +1 -0
- package/dist/components/gitops/RepoIssuesCard.js +38 -0
- package/dist/components/gitops/RepoIssuesCard.js.map +1 -0
- package/dist/components/gitops/RepoLanguagesCard.d.ts +13 -0
- package/dist/components/gitops/RepoLanguagesCard.d.ts.map +1 -0
- package/dist/components/gitops/RepoLanguagesCard.js +86 -0
- package/dist/components/gitops/RepoLanguagesCard.js.map +1 -0
- package/dist/components/gitops/RepoOverviewCard.d.ts +13 -0
- package/dist/components/gitops/RepoOverviewCard.d.ts.map +1 -0
- package/dist/components/gitops/RepoOverviewCard.js +117 -0
- package/dist/components/gitops/RepoOverviewCard.js.map +1 -0
- package/dist/components/gitops/RepoPullRequestsCard.d.ts +12 -0
- package/dist/components/gitops/RepoPullRequestsCard.d.ts.map +1 -0
- package/dist/components/gitops/RepoPullRequestsCard.js +80 -0
- package/dist/components/gitops/RepoPullRequestsCard.js.map +1 -0
- package/dist/components/gitops/RepoSecurityCard.d.ts +12 -0
- package/dist/components/gitops/RepoSecurityCard.d.ts.map +1 -0
- package/dist/components/gitops/RepoSecurityCard.js +38 -0
- package/dist/components/gitops/RepoSecurityCard.js.map +1 -0
- package/dist/components/gitops/RepoStatsTab.d.ts +15 -0
- package/dist/components/gitops/RepoStatsTab.d.ts.map +1 -0
- package/dist/components/gitops/RepoStatsTab.js +43 -0
- package/dist/components/gitops/RepoStatsTab.js.map +1 -0
- package/dist/components/gitops/VibeGitOpsTab.d.ts +12 -0
- package/dist/components/gitops/VibeGitOpsTab.d.ts.map +1 -0
- package/dist/components/gitops/VibeGitOpsTab.js +253 -0
- package/dist/components/gitops/VibeGitOpsTab.js.map +1 -0
- package/dist/components/gitops/index.d.ts +21 -0
- package/dist/components/gitops/index.d.ts.map +1 -0
- package/dist/components/gitops/types.d.ts +90 -0
- package/dist/components/gitops/types.d.ts.map +1 -0
- package/dist/components/graph/AgentGraphView.d.ts +44 -0
- package/dist/components/graph/AgentGraphView.d.ts.map +1 -0
- package/dist/components/graph/AgentGraphView.js +238 -0
- package/dist/components/graph/AgentGraphView.js.map +1 -0
- package/dist/components/graph/AgentNode.d.ts +6 -0
- package/dist/components/graph/AgentNode.d.ts.map +1 -0
- package/dist/components/graph/AgentNode.js +55 -0
- package/dist/components/graph/AgentNode.js.map +1 -0
- package/dist/components/graph/ConnectionPermissionsDialog.d.ts +26 -0
- package/dist/components/graph/ConnectionPermissionsDialog.d.ts.map +1 -0
- package/dist/components/graph/ConnectionPermissionsDialog.js +111 -0
- package/dist/components/graph/ConnectionPermissionsDialog.js.map +1 -0
- package/dist/components/graph/TargetNode.d.ts +6 -0
- package/dist/components/graph/TargetNode.d.ts.map +1 -0
- package/dist/components/graph/TargetNode.js +77 -0
- package/dist/components/graph/TargetNode.js.map +1 -0
- package/dist/components/health/AgentHealthCard.d.ts +9 -0
- package/dist/components/health/AgentHealthCard.d.ts.map +1 -0
- package/dist/components/health/HealthDashboard.d.ts +10 -0
- package/dist/components/health/HealthDashboard.d.ts.map +1 -0
- package/dist/components/health/SystemStatus.d.ts +11 -0
- package/dist/components/health/SystemStatus.d.ts.map +1 -0
- package/dist/components/health/index.d.ts +5 -0
- package/dist/components/health/index.d.ts.map +1 -0
- package/dist/components/health/types.d.ts +50 -0
- package/dist/components/health/types.d.ts.map +1 -0
- package/dist/components/idp-components/ComponentCard.d.ts +24 -0
- package/dist/components/idp-components/ComponentCard.d.ts.map +1 -0
- package/dist/components/idp-components/ComponentCard.js +143 -0
- package/dist/components/idp-components/ComponentCard.js.map +1 -0
- package/dist/components/idp-components/ComponentForm.d.ts +22 -0
- package/dist/components/idp-components/ComponentForm.d.ts.map +1 -0
- package/dist/components/idp-components/ComponentForm.js +234 -0
- package/dist/components/idp-components/ComponentForm.js.map +1 -0
- package/dist/components/idp-components/index.d.ts +5 -0
- package/dist/components/idp-components/index.d.ts.map +1 -0
- package/dist/components/idp-components/index.js +2 -0
- package/dist/components/logs/LogViewer.d.ts +13 -0
- package/dist/components/logs/LogViewer.d.ts.map +1 -0
- package/dist/components/logs/LogViewer.js +265 -0
- package/dist/components/logs/LogViewer.js.map +1 -0
- package/dist/components/notes/NoteCard.d.ts +13 -0
- package/dist/components/notes/NoteCard.d.ts.map +1 -0
- package/dist/components/notes/NoteCard.js +146 -0
- package/dist/components/notes/NoteCard.js.map +1 -0
- package/dist/components/notes/NoteEditor.d.ts +31 -0
- package/dist/components/notes/NoteEditor.d.ts.map +1 -0
- package/dist/components/notes/NoteEditor.js +433 -0
- package/dist/components/notes/NoteEditor.js.map +1 -0
- package/dist/components/notes/NoteList.d.ts +15 -0
- package/dist/components/notes/NoteList.d.ts.map +1 -0
- package/dist/components/notes/NoteList.js +188 -0
- package/dist/components/notes/NoteList.js.map +1 -0
- package/dist/components/notes/NotesTabPanel.d.ts +18 -0
- package/dist/components/notes/NotesTabPanel.d.ts.map +1 -0
- package/dist/components/notes/NotesTabPanel.js +356 -0
- package/dist/components/notes/NotesTabPanel.js.map +1 -0
- package/dist/components/notes/index.d.ts +7 -0
- package/dist/components/notes/index.d.ts.map +1 -0
- package/dist/components/notes/index.js +4 -0
- package/dist/components/notes/types.d.ts +58 -0
- package/dist/components/notes/types.d.ts.map +1 -0
- package/dist/components/scorecard/ScorecardPanel.d.ts +9 -0
- package/dist/components/scorecard/ScorecardPanel.d.ts.map +1 -0
- package/dist/components/scorecard/ScorecardPanel.js +490 -0
- package/dist/components/scorecard/ScorecardPanel.js.map +1 -0
- package/dist/components/scorecard/index.d.ts +3 -0
- package/dist/components/scorecard/index.d.ts.map +1 -0
- package/dist/components/scorecard/index.js +1 -0
- package/dist/components/sessions/CollaboratorsList.d.ts +18 -0
- package/dist/components/sessions/CollaboratorsList.d.ts.map +1 -0
- package/dist/components/sessions/CollaboratorsList.js +162 -0
- package/dist/components/sessions/CollaboratorsList.js.map +1 -0
- package/dist/components/sessions/ControlStatusBar.d.ts +31 -0
- package/dist/components/sessions/ControlStatusBar.d.ts.map +1 -0
- package/dist/components/sessions/ControlStatusBar.js +79 -0
- package/dist/components/sessions/ControlStatusBar.js.map +1 -0
- package/dist/components/sessions/SessionCard.d.ts +24 -0
- package/dist/components/sessions/SessionCard.d.ts.map +1 -0
- package/dist/components/sessions/SessionCard.js +196 -0
- package/dist/components/sessions/SessionCard.js.map +1 -0
- package/dist/components/sessions/SessionForm.d.ts +20 -0
- package/dist/components/sessions/SessionForm.d.ts.map +1 -0
- package/dist/components/sessions/SessionForm.js +4 -0
- package/dist/components/sessions/SessionList.d.ts +25 -0
- package/dist/components/sessions/SessionList.d.ts.map +1 -0
- package/dist/components/sessions/SessionList.js +241 -0
- package/dist/components/sessions/SessionList.js.map +1 -0
- package/dist/components/sessions/SessionShareDialog.d.ts +15 -0
- package/dist/components/sessions/SessionShareDialog.d.ts.map +1 -0
- package/dist/components/sessions/SessionShareDialog.js +457 -0
- package/dist/components/sessions/SessionShareDialog.js.map +1 -0
- package/dist/components/sessions/SessionStatusBadge.d.ts +9 -0
- package/dist/components/sessions/SessionStatusBadge.d.ts.map +1 -0
- package/dist/components/sessions/SessionStatusBadge.js +43 -0
- package/dist/components/sessions/SessionStatusBadge.js.map +1 -0
- package/dist/components/sessions/SharedTerminalPanel.d.ts +72 -0
- package/dist/components/sessions/SharedTerminalPanel.d.ts.map +1 -0
- package/dist/components/sessions/SharedTerminalPanel.js +94 -0
- package/dist/components/sessions/SharedTerminalPanel.js.map +1 -0
- package/dist/components/sessions/TerminalPanel.d.ts +69 -0
- package/dist/components/sessions/TerminalPanel.d.ts.map +1 -0
- package/dist/components/sessions/TerminalPanel.js +1008 -0
- package/dist/components/sessions/TerminalPanel.js.map +1 -0
- package/dist/components/sessions/index.d.ts +11 -0
- package/dist/components/sessions/index.d.ts.map +1 -0
- package/dist/components/sessions/index.js +9 -0
- package/dist/components/sessions/types.d.ts +67 -0
- package/dist/components/sessions/types.d.ts.map +1 -0
- package/dist/components/settings/AdvancedSection.d.ts +22 -0
- package/dist/components/settings/AdvancedSection.d.ts.map +1 -0
- package/dist/components/settings/AdvancedSection.js +177 -0
- package/dist/components/settings/AdvancedSection.js.map +1 -0
- package/dist/components/settings/ConfigEditor.d.ts +14 -0
- package/dist/components/settings/ConfigEditor.d.ts.map +1 -0
- package/dist/components/settings/ConfigSection.d.ts +12 -0
- package/dist/components/settings/ConfigSection.d.ts.map +1 -0
- package/dist/components/settings/NotificationsSection.d.ts +14 -0
- package/dist/components/settings/NotificationsSection.d.ts.map +1 -0
- package/dist/components/settings/NotificationsSection.js +83 -0
- package/dist/components/settings/NotificationsSection.js.map +1 -0
- package/dist/components/settings/PreferencesSection.d.ts +14 -0
- package/dist/components/settings/PreferencesSection.d.ts.map +1 -0
- package/dist/components/settings/ProfileSection.d.ts +14 -0
- package/dist/components/settings/ProfileSection.d.ts.map +1 -0
- package/dist/components/settings/SecuritySection.d.ts +11 -0
- package/dist/components/settings/SecuritySection.d.ts.map +1 -0
- package/dist/components/settings/SettingsForm.d.ts +58 -0
- package/dist/components/settings/SettingsForm.d.ts.map +1 -0
- package/dist/components/settings/SettingsForm.js +101 -0
- package/dist/components/settings/SettingsForm.js.map +1 -0
- package/dist/components/settings/WorkspaceDefaultsSection.d.ts +27 -0
- package/dist/components/settings/WorkspaceDefaultsSection.d.ts.map +1 -0
- package/dist/components/settings/WorkspaceDefaultsSection.js +177 -0
- package/dist/components/settings/WorkspaceDefaultsSection.js.map +1 -0
- package/dist/components/settings/index.d.ts +4 -0
- package/dist/components/settings/index.d.ts.map +1 -0
- package/dist/components/settings/types.d.ts +55 -0
- package/dist/components/settings/types.d.ts.map +1 -0
- package/dist/components/shared/AgentEventsConnector.d.ts +6 -0
- package/dist/components/shared/AgentEventsConnector.d.ts.map +1 -0
- package/dist/components/shared/AgentEventsConnector.js +26 -0
- package/dist/components/shared/AgentEventsConnector.js.map +1 -0
- package/dist/components/shared/AgentSelector.d.ts +25 -0
- package/dist/components/shared/AgentSelector.d.ts.map +1 -0
- package/dist/components/shared/AgentSelector.js +98 -0
- package/dist/components/shared/AgentSelector.js.map +1 -0
- package/dist/components/shared/AgentSetupBanner.d.ts +21 -0
- package/dist/components/shared/AgentSetupBanner.d.ts.map +1 -0
- package/dist/components/shared/AgentSetupBanner.js +158 -0
- package/dist/components/shared/AgentSetupBanner.js.map +1 -0
- package/dist/components/shared/Card.d.ts +29 -0
- package/dist/components/shared/Card.d.ts.map +1 -0
- package/dist/components/shared/Card.js +30 -0
- package/dist/components/shared/Card.js.map +1 -0
- package/dist/components/shared/ConfirmDialog.d.ts +14 -0
- package/dist/components/shared/ConfirmDialog.d.ts.map +1 -0
- package/dist/components/shared/ConfirmDialog.js +117 -0
- package/dist/components/shared/ConfirmDialog.js.map +1 -0
- package/dist/components/shared/EmptyState.d.ts +11 -0
- package/dist/components/shared/EmptyState.d.ts.map +1 -0
- package/dist/components/shared/EmptyState.js +108 -0
- package/dist/components/shared/EmptyState.js.map +1 -0
- package/dist/components/shared/EntityTagPicker.d.ts +8 -0
- package/dist/components/shared/EntityTagPicker.d.ts.map +1 -0
- package/dist/components/shared/EntityTagPicker.js +195 -0
- package/dist/components/shared/EntityTagPicker.js.map +1 -0
- package/dist/components/shared/ErrorState.d.ts +11 -0
- package/dist/components/shared/ErrorState.d.ts.map +1 -0
- package/dist/components/shared/ErrorState.js +116 -0
- package/dist/components/shared/ErrorState.js.map +1 -0
- package/dist/components/shared/FilterDropdown.d.ts +20 -0
- package/dist/components/shared/FilterDropdown.d.ts.map +1 -0
- package/dist/components/shared/FilterDropdown.js +81 -0
- package/dist/components/shared/FilterDropdown.js.map +1 -0
- package/dist/components/shared/GetHelpButton.d.ts +27 -0
- package/dist/components/shared/GetHelpButton.d.ts.map +1 -0
- package/dist/components/shared/GetHelpButton.js +19 -0
- package/dist/components/shared/GetHelpButton.js.map +1 -0
- package/dist/components/shared/InstallTabs.d.ts +18 -0
- package/dist/components/shared/InstallTabs.d.ts.map +1 -0
- package/dist/components/shared/InstallTabs.js +110 -0
- package/dist/components/shared/InstallTabs.js.map +1 -0
- package/dist/components/shared/LoadingState.d.ts +7 -0
- package/dist/components/shared/LoadingState.d.ts.map +1 -0
- package/dist/components/shared/LoadingState.js +54 -0
- package/dist/components/shared/LoadingState.js.map +1 -0
- package/dist/components/shared/NotificationToast.d.ts +40 -0
- package/dist/components/shared/NotificationToast.d.ts.map +1 -0
- package/dist/components/shared/NotificationToast.js +152 -0
- package/dist/components/shared/NotificationToast.js.map +1 -0
- package/dist/components/shared/PageHeader.d.ts +14 -0
- package/dist/components/shared/PageHeader.d.ts.map +1 -0
- package/dist/components/shared/PageHeader.js +55 -0
- package/dist/components/shared/PageHeader.js.map +1 -0
- package/dist/components/shared/PluginGate.d.ts +35 -0
- package/dist/components/shared/PluginGate.d.ts.map +1 -0
- package/dist/components/shared/PluginGate.js +182 -0
- package/dist/components/shared/PluginGate.js.map +1 -0
- package/dist/components/shared/QuotaExhaustedDialog.d.ts +12 -0
- package/dist/components/shared/QuotaExhaustedDialog.d.ts.map +1 -0
- package/dist/components/shared/QuotaExhaustedDialog.js +21 -0
- package/dist/components/shared/QuotaExhaustedDialog.js.map +1 -0
- package/dist/components/shared/RequireAgentReachable.d.ts +14 -0
- package/dist/components/shared/RequireAgentReachable.d.ts.map +1 -0
- package/dist/components/shared/RequireAgentReachable.js +69 -0
- package/dist/components/shared/RequireAgentReachable.js.map +1 -0
- package/dist/components/shared/SearchInput.d.ts +9 -0
- package/dist/components/shared/SearchInput.d.ts.map +1 -0
- package/dist/components/shared/SearchInput.js +47 -0
- package/dist/components/shared/SearchInput.js.map +1 -0
- package/dist/components/shared/SearchableSelect.d.ts +48 -0
- package/dist/components/shared/SearchableSelect.d.ts.map +1 -0
- package/dist/components/shared/SearchableSelect.js +214 -0
- package/dist/components/shared/SearchableSelect.js.map +1 -0
- package/dist/components/shared/SelectionCheckbox.d.ts +11 -0
- package/dist/components/shared/SelectionCheckbox.d.ts.map +1 -0
- package/dist/components/shared/SelectionCheckbox.js +25 -0
- package/dist/components/shared/SelectionCheckbox.js.map +1 -0
- package/dist/components/shared/SessionNotificationBanner.d.ts +47 -0
- package/dist/components/shared/SessionNotificationBanner.d.ts.map +1 -0
- package/dist/components/shared/SessionNotificationBanner.js +231 -0
- package/dist/components/shared/SessionNotificationBanner.js.map +1 -0
- package/dist/components/shared/StatCard.d.ts +17 -0
- package/dist/components/shared/StatCard.d.ts.map +1 -0
- package/dist/components/shared/StatCard.js +65 -0
- package/dist/components/shared/StatCard.js.map +1 -0
- package/dist/components/shared/StatusBadge.d.ts +11 -0
- package/dist/components/shared/StatusBadge.d.ts.map +1 -0
- package/dist/components/shared/StatusBadge.js +63 -0
- package/dist/components/shared/StatusBadge.js.map +1 -0
- package/dist/components/shared/TagFilter.d.ts +11 -0
- package/dist/components/shared/TagFilter.d.ts.map +1 -0
- package/dist/components/shared/TagFilter.js +28 -0
- package/dist/components/shared/TagFilter.js.map +1 -0
- package/dist/components/shared/index.d.ts +32 -0
- package/dist/components/shared/index.d.ts.map +1 -0
- package/dist/components/shared/index.js +24 -0
- package/dist/components/targets/TargetCard.d.ts +45 -0
- package/dist/components/targets/TargetCard.d.ts.map +1 -0
- package/dist/components/targets/TargetCard.js +211 -0
- package/dist/components/targets/TargetCard.js.map +1 -0
- package/dist/components/targets/index.d.ts +3 -0
- package/dist/components/targets/index.d.ts.map +1 -0
- package/dist/components/targets/index.js +1 -0
- package/dist/components/templates/TemplateCard.d.ts +19 -0
- package/dist/components/templates/TemplateCard.d.ts.map +1 -0
- package/dist/components/templates/TemplateCard.js +81 -0
- package/dist/components/templates/TemplateCard.js.map +1 -0
- package/dist/components/templates/index.d.ts +3 -0
- package/dist/components/templates/index.d.ts.map +1 -0
- package/dist/components/templates/index.js +1 -0
- package/dist/components/tunnels/DomainVerificationBadge.d.ts +6 -0
- package/dist/components/tunnels/DomainVerificationBadge.d.ts.map +1 -0
- package/dist/components/tunnels/DomainVerificationBadge.js +19 -0
- package/dist/components/tunnels/DomainVerificationBadge.js.map +1 -0
- package/dist/components/tunnels/ProviderBadge.d.ts +6 -0
- package/dist/components/tunnels/ProviderBadge.d.ts.map +1 -0
- package/dist/components/tunnels/ProviderBadge.js +16 -0
- package/dist/components/tunnels/ProviderBadge.js.map +1 -0
- package/dist/components/tunnels/TunnelCard.d.ts +13 -0
- package/dist/components/tunnels/TunnelCard.d.ts.map +1 -0
- package/dist/components/tunnels/TunnelCard.js +98 -0
- package/dist/components/tunnels/TunnelCard.js.map +1 -0
- package/dist/components/tunnels/TunnelCreateWizard.d.ts +2 -0
- package/dist/components/tunnels/TunnelCreateWizard.d.ts.map +1 -0
- package/dist/components/tunnels/TunnelCreateWizard.js +512 -0
- package/dist/components/tunnels/TunnelCreateWizard.js.map +1 -0
- package/dist/components/tunnels/TunnelStatusBadge.d.ts +6 -0
- package/dist/components/tunnels/TunnelStatusBadge.d.ts.map +1 -0
- package/dist/components/tunnels/TunnelStatusBadge.js +21 -0
- package/dist/components/tunnels/TunnelStatusBadge.js.map +1 -0
- package/dist/components/vibe/VibeAgentEmptyState.d.ts +8 -0
- package/dist/components/vibe/VibeAgentEmptyState.d.ts.map +1 -0
- package/dist/components/vibe/VibeAgentEmptyState.js +29 -0
- package/dist/components/vibe/VibeAgentEmptyState.js.map +1 -0
- package/dist/components/vibecalendar/LogsDrawer.d.ts +12 -0
- package/dist/components/vibecalendar/LogsDrawer.d.ts.map +1 -0
- package/dist/components/vibecalendar/LogsDrawer.js +97 -0
- package/dist/components/vibecalendar/LogsDrawer.js.map +1 -0
- package/dist/components/vibecalendar/ScheduleTaskModal.d.ts +33 -0
- package/dist/components/vibecalendar/ScheduleTaskModal.d.ts.map +1 -0
- package/dist/components/vibecalendar/ScheduleTaskModal.js +311 -0
- package/dist/components/vibecalendar/ScheduleTaskModal.js.map +1 -0
- package/dist/components/vibecalendar/VibeCalAgendaView.d.ts +11 -0
- package/dist/components/vibecalendar/VibeCalAgendaView.d.ts.map +1 -0
- package/dist/components/vibecalendar/VibeCalAgendaView.js +96 -0
- package/dist/components/vibecalendar/VibeCalAgendaView.js.map +1 -0
- package/dist/components/vibecalendar/VibeCalDayView.d.ts +12 -0
- package/dist/components/vibecalendar/VibeCalDayView.d.ts.map +1 -0
- package/dist/components/vibecalendar/VibeCalDayView.js +131 -0
- package/dist/components/vibecalendar/VibeCalDayView.js.map +1 -0
- package/dist/components/vibecalendar/VibeCalMonthView.d.ts +12 -0
- package/dist/components/vibecalendar/VibeCalMonthView.d.ts.map +1 -0
- package/dist/components/vibecalendar/VibeCalMonthView.js +66 -0
- package/dist/components/vibecalendar/VibeCalMonthView.js.map +1 -0
- package/dist/components/vibecalendar/VibeCalWeekView.d.ts +12 -0
- package/dist/components/vibecalendar/VibeCalWeekView.d.ts.map +1 -0
- package/dist/components/vibecalendar/VibeCalWeekView.js +100 -0
- package/dist/components/vibecalendar/VibeCalWeekView.js.map +1 -0
- package/dist/components/vibecalendar/VibeCalendarHeader.d.ts +12 -0
- package/dist/components/vibecalendar/VibeCalendarHeader.d.ts.map +1 -0
- package/dist/components/vibecalendar/VibeCalendarHeader.js +129 -0
- package/dist/components/vibecalendar/VibeCalendarHeader.js.map +1 -0
- package/dist/components/vibecalendar/VibeTaskBlock.d.ts +12 -0
- package/dist/components/vibecalendar/VibeTaskBlock.d.ts.map +1 -0
- package/dist/components/vibecalendar/VibeTaskBlock.js +59 -0
- package/dist/components/vibecalendar/VibeTaskBlock.js.map +1 -0
- package/dist/components/vibecalendar/expandOccurrences.d.ts +37 -0
- package/dist/components/vibecalendar/expandOccurrences.d.ts.map +1 -0
- package/dist/components/vibecalendar/expandOccurrences.js +103 -0
- package/dist/components/vibecalendar/expandOccurrences.js.map +1 -0
- package/dist/components/vibecalendar/index.d.ts +11 -0
- package/dist/components/vibecalendar/index.d.ts.map +1 -0
- package/dist/components/vibecalendar/index.js +8 -0
- package/dist/components/vibecalendar/types.d.ts +53 -0
- package/dist/components/vibecalendar/types.d.ts.map +1 -0
- package/dist/components/vibecalendar/types.js +17 -0
- package/dist/components/vibecalendar/types.js.map +1 -0
- package/dist/components/vibedeck/VibeDeckButtonForm.d.ts +54 -0
- package/dist/components/vibedeck/VibeDeckButtonForm.d.ts.map +1 -0
- package/dist/components/vibedeck/VibeDeckButtonForm.js +400 -0
- package/dist/components/vibedeck/VibeDeckButtonForm.js.map +1 -0
- package/dist/components/vibedeck/VibeDeckButtonTile.d.ts +48 -0
- package/dist/components/vibedeck/VibeDeckButtonTile.d.ts.map +1 -0
- package/dist/components/vibedeck/VibeDeckButtonTile.js +196 -0
- package/dist/components/vibedeck/VibeDeckButtonTile.js.map +1 -0
- package/dist/components/vibedeck/VibeDeckExecutionLog.d.ts +25 -0
- package/dist/components/vibedeck/VibeDeckExecutionLog.d.ts.map +1 -0
- package/dist/components/vibedeck/VibeDeckExecutionLog.js +212 -0
- package/dist/components/vibedeck/VibeDeckExecutionLog.js.map +1 -0
- package/dist/components/vibedeck/VibeDeckForm.d.ts +21 -0
- package/dist/components/vibedeck/VibeDeckForm.d.ts.map +1 -0
- package/dist/components/vibedeck/VibeDeckForm.js +233 -0
- package/dist/components/vibedeck/VibeDeckForm.js.map +1 -0
- package/dist/components/vibedeck/VibeDeckGrid.d.ts +51 -0
- package/dist/components/vibedeck/VibeDeckGrid.d.ts.map +1 -0
- package/dist/components/vibedeck/VibeDeckGrid.js +127 -0
- package/dist/components/vibedeck/VibeDeckGrid.js.map +1 -0
- package/dist/components/vibedeck/VibeDeckShareDialog.d.ts +10 -0
- package/dist/components/vibedeck/VibeDeckShareDialog.d.ts.map +1 -0
- package/dist/components/vibedeck/VibeDeckShareDialog.js +312 -0
- package/dist/components/vibedeck/VibeDeckShareDialog.js.map +1 -0
- package/dist/components/vibedeck/VibeDeckSwitcher.d.ts +28 -0
- package/dist/components/vibedeck/VibeDeckSwitcher.d.ts.map +1 -0
- package/dist/components/vibedeck/VibeDeckSwitcher.js +118 -0
- package/dist/components/vibedeck/VibeDeckSwitcher.js.map +1 -0
- package/dist/components/vibedeck/index.d.ts +9 -0
- package/dist/components/vibedeck/index.d.ts.map +1 -0
- package/dist/components/vibedeck/index.js +7 -0
- package/dist/components/vibes/VibeCard.d.ts +19 -0
- package/dist/components/vibes/VibeCard.d.ts.map +1 -0
- package/dist/components/vibes/VibeCard.js +162 -0
- package/dist/components/vibes/VibeCard.js.map +1 -0
- package/dist/components/vibes/VibeForm.d.ts +15 -0
- package/dist/components/vibes/VibeForm.d.ts.map +1 -0
- package/dist/components/vibes/VibeForm.js +4 -0
- package/dist/components/vibes/VibeList.d.ts +20 -0
- package/dist/components/vibes/VibeList.d.ts.map +1 -0
- package/dist/components/vibes/VibeList.js +321 -0
- package/dist/components/vibes/VibeList.js.map +1 -0
- package/dist/components/vibes/icons.d.ts +6 -0
- package/dist/components/vibes/icons.d.ts.map +1 -0
- package/dist/components/vibes/icons.js +14 -0
- package/dist/components/vibes/icons.js.map +1 -0
- package/dist/components/vibes/index.d.ts +5 -0
- package/dist/components/vibes/index.d.ts.map +1 -0
- package/dist/components/vibes/index.js +3 -0
- package/dist/components/vibes/types.d.ts +71 -0
- package/dist/components/vibes/types.d.ts.map +1 -0
- package/dist/components/webhooks/WebhookCard.d.ts +12 -0
- package/dist/components/webhooks/WebhookCard.d.ts.map +1 -0
- package/dist/components/webhooks/WebhookForm.d.ts +11 -0
- package/dist/components/webhooks/WebhookForm.d.ts.map +1 -0
- package/dist/components/webhooks/WebhookList.d.ts +14 -0
- package/dist/components/webhooks/WebhookList.d.ts.map +1 -0
- package/dist/components/webhooks/index.d.ts +5 -0
- package/dist/components/webhooks/index.d.ts.map +1 -0
- package/dist/components/webhooks/types.d.ts +58 -0
- package/dist/components/webhooks/types.d.ts.map +1 -0
- package/dist/config/assistantUsecases.d.ts +18 -0
- package/dist/config/assistantUsecases.d.ts.map +1 -0
- package/dist/config/assistantUsecases.js +40 -0
- package/dist/config/assistantUsecases.js.map +1 -0
- package/dist/config/index.d.ts +24 -0
- package/dist/config/index.d.ts.map +1 -0
- package/dist/config/index.js +27 -0
- package/dist/config/index.js.map +1 -0
- package/dist/constants/permissions.d.ts +112 -0
- package/dist/constants/permissions.d.ts.map +1 -0
- package/dist/constants/permissions.js +92 -0
- package/dist/constants/permissions.js.map +1 -0
- package/dist/constants/pluginCatalog.d.ts +36 -0
- package/dist/constants/pluginCatalog.d.ts.map +1 -0
- package/dist/constants/pluginCatalog.js +140 -0
- package/dist/constants/pluginCatalog.js.map +1 -0
- package/dist/dev/main.d.ts +2 -0
- package/dist/dev/main.d.ts.map +1 -0
- package/dist/generated/global-operations.d.ts +2 -0
- package/dist/generated/global-operations.d.ts.map +1 -0
- package/dist/generated/global-types.d.ts +21253 -0
- package/dist/generated/global-types.d.ts.map +1 -0
- package/dist/generated/wspace-operations.d.ts +15218 -0
- package/dist/generated/wspace-operations.d.ts.map +1 -0
- package/dist/generated/wspace-operations.js +7326 -0
- package/dist/generated/wspace-operations.js.map +1 -0
- package/dist/generated/wspace-types.d.ts +55252 -0
- package/dist/generated/wspace-types.d.ts.map +1 -0
- package/dist/generated/wspace-types.js +30 -0
- package/dist/generated/wspace-types.js.map +1 -0
- package/dist/hooks/index.d.ts +7 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/useAgentConnectivity.d.ts +47 -0
- package/dist/hooks/useAgentConnectivity.d.ts.map +1 -0
- package/dist/hooks/useAgentConnectivity.js +56 -0
- package/dist/hooks/useAgentConnectivity.js.map +1 -0
- package/dist/hooks/useAgentEvents.d.ts +36 -0
- package/dist/hooks/useAgentEvents.d.ts.map +1 -0
- package/dist/hooks/useAgentEvents.js +101 -0
- package/dist/hooks/useAgentEvents.js.map +1 -0
- package/dist/hooks/useAgentManagerKeyboard.d.ts +17 -0
- package/dist/hooks/useAgentManagerKeyboard.d.ts.map +1 -0
- package/dist/hooks/useAgentManagerKeyboard.js +49 -0
- package/dist/hooks/useAgentManagerKeyboard.js.map +1 -0
- package/dist/hooks/useAgentManagerStreaming.d.ts +19 -0
- package/dist/hooks/useAgentManagerStreaming.d.ts.map +1 -0
- package/dist/hooks/useAgentManagerStreaming.js +86 -0
- package/dist/hooks/useAgentManagerStreaming.js.map +1 -0
- package/dist/hooks/useAssistantHeartbeat.d.ts +4 -0
- package/dist/hooks/useAssistantHeartbeat.d.ts.map +1 -0
- package/dist/hooks/useAssistantHeartbeat.js +40 -0
- package/dist/hooks/useAssistantHeartbeat.js.map +1 -0
- package/dist/hooks/useAssistantKeyboardShortcuts.d.ts +18 -0
- package/dist/hooks/useAssistantKeyboardShortcuts.d.ts.map +1 -0
- package/dist/hooks/useAssistantKeyboardShortcuts.js +37 -0
- package/dist/hooks/useAssistantKeyboardShortcuts.js.map +1 -0
- package/dist/hooks/useCachedInitialData.d.ts +120 -0
- package/dist/hooks/useCachedInitialData.d.ts.map +1 -0
- package/dist/hooks/useCachedInitialData.js +107 -0
- package/dist/hooks/useCachedInitialData.js.map +1 -0
- package/dist/hooks/useEntityTags.d.ts +24 -0
- package/dist/hooks/useEntityTags.d.ts.map +1 -0
- package/dist/hooks/useEntityTags.js +31 -0
- package/dist/hooks/useEntityTags.js.map +1 -0
- package/dist/hooks/useFileUpload.d.ts +15 -0
- package/dist/hooks/useFileUpload.d.ts.map +1 -0
- package/dist/hooks/useInitialDataLoader.d.ts +48 -0
- package/dist/hooks/useInitialDataLoader.d.ts.map +1 -0
- package/dist/hooks/useInitialDataLoader.js +25 -0
- package/dist/hooks/useInitialDataLoader.js.map +1 -0
- package/dist/hooks/useMcpServers.d.ts +14 -0
- package/dist/hooks/useMcpServers.d.ts.map +1 -0
- package/dist/hooks/useOpenAssistantHelp.d.ts +2 -0
- package/dist/hooks/useOpenAssistantHelp.d.ts.map +1 -0
- package/dist/hooks/useOpenAssistantHelp.js +14 -0
- package/dist/hooks/useOpenAssistantHelp.js.map +1 -0
- package/dist/hooks/usePluginAvailability.d.ts +35 -0
- package/dist/hooks/usePluginAvailability.d.ts.map +1 -0
- package/dist/hooks/usePluginAvailability.js +112 -0
- package/dist/hooks/usePluginAvailability.js.map +1 -0
- package/dist/hooks/useQueryBackedTab.d.ts +2 -0
- package/dist/hooks/useQueryBackedTab.d.ts.map +1 -0
- package/dist/hooks/useQueryBackedTab.js +19 -0
- package/dist/hooks/useQueryBackedTab.js.map +1 -0
- package/dist/hooks/useSessionSearch.d.ts +24 -0
- package/dist/hooks/useSessionSearch.d.ts.map +1 -0
- package/dist/hooks/useVoiceMode.d.ts +17 -0
- package/dist/hooks/useVoiceMode.d.ts.map +1 -0
- package/dist/hooks/useVoiceMode.js +46 -0
- package/dist/hooks/useVoiceMode.js.map +1 -0
- package/dist/index.d.ts +17 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +11 -0
- package/dist/lib/vibeFeatures.d.ts +29 -0
- package/dist/lib/vibeFeatures.d.ts.map +1 -0
- package/dist/lib/vibeFeatures.js +80 -0
- package/dist/lib/vibeFeatures.js.map +1 -0
- package/dist/microfe-vibecontrols.css +2 -0
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +24 -0
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +1 -0
- package/dist/node_modules/@apollo/client/errors/utils.js +16 -0
- package/dist/node_modules/@apollo/client/errors/utils.js.map +1 -0
- package/dist/node_modules/@xyflow/react/dist/esm/index.js +3281 -0
- package/dist/node_modules/@xyflow/react/dist/esm/index.js.map +1 -0
- package/dist/node_modules/@xyflow/system/dist/esm/index.js +1845 -0
- package/dist/node_modules/@xyflow/system/dist/esm/index.js.map +1 -0
- package/dist/node_modules/classcat/index.js +12 -0
- package/dist/node_modules/classcat/index.js.map +1 -0
- package/dist/node_modules/clsx/dist/clsx.js +18 -0
- package/dist/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/node_modules/d3-array/src/ascending.js +8 -0
- package/dist/node_modules/d3-array/src/ascending.js.map +1 -0
- package/dist/node_modules/d3-array/src/bisect.js +10 -0
- package/dist/node_modules/d3-array/src/bisect.js.map +1 -0
- package/dist/node_modules/d3-array/src/bisector.js +43 -0
- package/dist/node_modules/d3-array/src/bisector.js.map +1 -0
- package/dist/node_modules/d3-array/src/descending.js +8 -0
- package/dist/node_modules/d3-array/src/descending.js.map +1 -0
- package/dist/node_modules/d3-array/src/max.js +14 -0
- package/dist/node_modules/d3-array/src/max.js.map +1 -0
- package/dist/node_modules/d3-array/src/min.js +14 -0
- package/dist/node_modules/d3-array/src/min.js.map +1 -0
- package/dist/node_modules/d3-array/src/number.js +15 -0
- package/dist/node_modules/d3-array/src/number.js.map +1 -0
- package/dist/node_modules/d3-array/src/quantile.js +25 -0
- package/dist/node_modules/d3-array/src/quantile.js.map +1 -0
- package/dist/node_modules/d3-array/src/quickselect.js +26 -0
- package/dist/node_modules/d3-array/src/quickselect.js.map +1 -0
- package/dist/node_modules/d3-array/src/range.js +10 -0
- package/dist/node_modules/d3-array/src/range.js.map +1 -0
- package/dist/node_modules/d3-array/src/sort.js +17 -0
- package/dist/node_modules/d3-array/src/sort.js.map +1 -0
- package/dist/node_modules/d3-array/src/ticks.js +34 -0
- package/dist/node_modules/d3-array/src/ticks.js.map +1 -0
- package/dist/node_modules/d3-color/src/color.js +291 -0
- package/dist/node_modules/d3-color/src/color.js.map +1 -0
- package/dist/node_modules/d3-color/src/define.js +13 -0
- package/dist/node_modules/d3-color/src/define.js.map +1 -0
- package/dist/node_modules/d3-dispatch/src/dispatch.js +67 -0
- package/dist/node_modules/d3-dispatch/src/dispatch.js.map +1 -0
- package/dist/node_modules/d3-drag/src/constant.js +6 -0
- package/dist/node_modules/d3-drag/src/constant.js.map +1 -0
- package/dist/node_modules/d3-drag/src/drag.js +116 -0
- package/dist/node_modules/d3-drag/src/drag.js.map +1 -0
- package/dist/node_modules/d3-drag/src/event.js +64 -0
- package/dist/node_modules/d3-drag/src/event.js.map +1 -0
- package/dist/node_modules/d3-drag/src/nodrag.js +17 -0
- package/dist/node_modules/d3-drag/src/nodrag.js.map +1 -0
- package/dist/node_modules/d3-drag/src/noevent.js +15 -0
- package/dist/node_modules/d3-drag/src/noevent.js.map +1 -0
- package/dist/node_modules/d3-ease/src/cubic.js +8 -0
- package/dist/node_modules/d3-ease/src/cubic.js.map +1 -0
- package/dist/node_modules/d3-format/src/defaultLocale.js +15 -0
- package/dist/node_modules/d3-format/src/defaultLocale.js.map +1 -0
- package/dist/node_modules/d3-format/src/exponent.js +9 -0
- package/dist/node_modules/d3-format/src/exponent.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatDecimal.js +13 -0
- package/dist/node_modules/d3-format/src/formatDecimal.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatGroup.js +11 -0
- package/dist/node_modules/d3-format/src/formatGroup.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatNumerals.js +12 -0
- package/dist/node_modules/d3-format/src/formatNumerals.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js +13 -0
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatRounded.js +12 -0
- package/dist/node_modules/d3-format/src/formatRounded.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatSpecifier.js +29 -0
- package/dist/node_modules/d3-format/src/formatSpecifier.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatTrim.js +20 -0
- package/dist/node_modules/d3-format/src/formatTrim.js.map +1 -0
- package/dist/node_modules/d3-format/src/formatTypes.js +23 -0
- package/dist/node_modules/d3-format/src/formatTypes.js.map +1 -0
- package/dist/node_modules/d3-format/src/identity.js +8 -0
- package/dist/node_modules/d3-format/src/identity.js.map +1 -0
- package/dist/node_modules/d3-format/src/locale.js +86 -0
- package/dist/node_modules/d3-format/src/locale.js.map +1 -0
- package/dist/node_modules/d3-format/src/precisionFixed.js +9 -0
- package/dist/node_modules/d3-format/src/precisionFixed.js.map +1 -0
- package/dist/node_modules/d3-format/src/precisionPrefix.js +9 -0
- package/dist/node_modules/d3-format/src/precisionPrefix.js.map +1 -0
- package/dist/node_modules/d3-format/src/precisionRound.js +9 -0
- package/dist/node_modules/d3-format/src/precisionRound.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/array.js +15 -0
- package/dist/node_modules/d3-interpolate/src/array.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/basis.js +16 -0
- package/dist/node_modules/d3-interpolate/src/basis.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/basisClosed.js +13 -0
- package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/color.js +25 -0
- package/dist/node_modules/d3-interpolate/src/color.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/constant.js +6 -0
- package/dist/node_modules/d3-interpolate/src/constant.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/date.js +11 -0
- package/dist/node_modules/d3-interpolate/src/date.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/number.js +10 -0
- package/dist/node_modules/d3-interpolate/src/number.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/numberArray.js +16 -0
- package/dist/node_modules/d3-interpolate/src/numberArray.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/object.js +14 -0
- package/dist/node_modules/d3-interpolate/src/object.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/piecewise.js +14 -0
- package/dist/node_modules/d3-interpolate/src/piecewise.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/rgb.js +19 -0
- package/dist/node_modules/d3-interpolate/src/rgb.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/round.js +10 -0
- package/dist/node_modules/d3-interpolate/src/round.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/string.js +28 -0
- package/dist/node_modules/d3-interpolate/src/string.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/transform/decompose.js +24 -0
- package/dist/node_modules/d3-interpolate/src/transform/decompose.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/transform/index.js +56 -0
- package/dist/node_modules/d3-interpolate/src/transform/index.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/transform/parse.js +14 -0
- package/dist/node_modules/d3-interpolate/src/transform/parse.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/value.js +18 -0
- package/dist/node_modules/d3-interpolate/src/value.js.map +1 -0
- package/dist/node_modules/d3-interpolate/src/zoom.js +43 -0
- package/dist/node_modules/d3-interpolate/src/zoom.js.map +1 -0
- package/dist/node_modules/d3-path/src/path.js +65 -0
- package/dist/node_modules/d3-path/src/path.js.map +1 -0
- package/dist/node_modules/d3-scale/src/band.js +52 -0
- package/dist/node_modules/d3-scale/src/band.js.map +1 -0
- package/dist/node_modules/d3-scale/src/constant.js +10 -0
- package/dist/node_modules/d3-scale/src/constant.js.map +1 -0
- package/dist/node_modules/d3-scale/src/continuous.js +73 -0
- package/dist/node_modules/d3-scale/src/continuous.js.map +1 -0
- package/dist/node_modules/d3-scale/src/diverging.js +82 -0
- package/dist/node_modules/d3-scale/src/diverging.js.map +1 -0
- package/dist/node_modules/d3-scale/src/identity.js +20 -0
- package/dist/node_modules/d3-scale/src/identity.js.map +1 -0
- package/dist/node_modules/d3-scale/src/init.js +29 -0
- package/dist/node_modules/d3-scale/src/init.js.map +1 -0
- package/dist/node_modules/d3-scale/src/linear.js +36 -0
- package/dist/node_modules/d3-scale/src/linear.js.map +1 -0
- package/dist/node_modules/d3-scale/src/log.js +77 -0
- package/dist/node_modules/d3-scale/src/log.js.map +1 -0
- package/dist/node_modules/d3-scale/src/nice.js +10 -0
- package/dist/node_modules/d3-scale/src/nice.js.map +1 -0
- package/dist/node_modules/d3-scale/src/number.js +8 -0
- package/dist/node_modules/d3-scale/src/number.js.map +1 -0
- package/dist/node_modules/d3-scale/src/ordinal.js +31 -0
- package/dist/node_modules/d3-scale/src/ordinal.js.map +1 -0
- package/dist/node_modules/d3-scale/src/pow.js +37 -0
- package/dist/node_modules/d3-scale/src/pow.js.map +1 -0
- package/dist/node_modules/d3-scale/src/quantile.js +37 -0
- package/dist/node_modules/d3-scale/src/quantile.js.map +1 -0
- package/dist/node_modules/d3-scale/src/quantize.js +33 -0
- package/dist/node_modules/d3-scale/src/quantize.js.map +1 -0
- package/dist/node_modules/d3-scale/src/radial.js +39 -0
- package/dist/node_modules/d3-scale/src/radial.js.map +1 -0
- package/dist/node_modules/d3-scale/src/sequential.js +67 -0
- package/dist/node_modules/d3-scale/src/sequential.js.map +1 -0
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js +30 -0
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +1 -0
- package/dist/node_modules/d3-scale/src/symlog.js +30 -0
- package/dist/node_modules/d3-scale/src/symlog.js.map +1 -0
- package/dist/node_modules/d3-scale/src/threshold.js +25 -0
- package/dist/node_modules/d3-scale/src/threshold.js.map +1 -0
- package/dist/node_modules/d3-scale/src/tickFormat.js +31 -0
- package/dist/node_modules/d3-scale/src/tickFormat.js.map +1 -0
- package/dist/node_modules/d3-scale/src/time.js +47 -0
- package/dist/node_modules/d3-scale/src/time.js.map +1 -0
- package/dist/node_modules/d3-scale/src/utcTime.js +19 -0
- package/dist/node_modules/d3-scale/src/utcTime.js.map +1 -0
- package/dist/node_modules/d3-selection/src/array.js +8 -0
- package/dist/node_modules/d3-selection/src/array.js.map +1 -0
- package/dist/node_modules/d3-selection/src/constant.js +10 -0
- package/dist/node_modules/d3-selection/src/constant.js.map +1 -0
- package/dist/node_modules/d3-selection/src/creator.js +22 -0
- package/dist/node_modules/d3-selection/src/creator.js.map +1 -0
- package/dist/node_modules/d3-selection/src/matcher.js +15 -0
- package/dist/node_modules/d3-selection/src/matcher.js.map +1 -0
- package/dist/node_modules/d3-selection/src/namespace.js +13 -0
- package/dist/node_modules/d3-selection/src/namespace.js.map +1 -0
- package/dist/node_modules/d3-selection/src/namespaces.js +12 -0
- package/dist/node_modules/d3-selection/src/namespaces.js.map +1 -0
- package/dist/node_modules/d3-selection/src/pointer.js +20 -0
- package/dist/node_modules/d3-selection/src/pointer.js.map +1 -0
- package/dist/node_modules/d3-selection/src/select.js +9 -0
- package/dist/node_modules/d3-selection/src/select.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/append.js +12 -0
- package/dist/node_modules/d3-selection/src/selection/append.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/attr.js +46 -0
- package/dist/node_modules/d3-selection/src/selection/attr.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/call.js +9 -0
- package/dist/node_modules/d3-selection/src/selection/call.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/classed.js +55 -0
- package/dist/node_modules/d3-selection/src/selection/classed.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/clone.js +16 -0
- package/dist/node_modules/d3-selection/src/selection/clone.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/data.js +38 -0
- package/dist/node_modules/d3-selection/src/selection/data.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/datum.js +8 -0
- package/dist/node_modules/d3-selection/src/selection/datum.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/dispatch.js +23 -0
- package/dist/node_modules/d3-selection/src/selection/dispatch.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/each.js +9 -0
- package/dist/node_modules/d3-selection/src/selection/each.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/empty.js +8 -0
- package/dist/node_modules/d3-selection/src/selection/empty.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/enter.js +28 -0
- package/dist/node_modules/d3-selection/src/selection/enter.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/exit.js +10 -0
- package/dist/node_modules/d3-selection/src/selection/exit.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/filter.js +12 -0
- package/dist/node_modules/d3-selection/src/selection/filter.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/html.js +21 -0
- package/dist/node_modules/d3-selection/src/selection/html.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/index.js +87 -0
- package/dist/node_modules/d3-selection/src/selection/index.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/insert.js +16 -0
- package/dist/node_modules/d3-selection/src/selection/insert.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/iterator.js +8 -0
- package/dist/node_modules/d3-selection/src/selection/iterator.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/join.js +9 -0
- package/dist/node_modules/d3-selection/src/selection/join.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/lower.js +11 -0
- package/dist/node_modules/d3-selection/src/selection/lower.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/merge.js +11 -0
- package/dist/node_modules/d3-selection/src/selection/merge.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/node.js +12 -0
- package/dist/node_modules/d3-selection/src/selection/node.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/nodes.js +8 -0
- package/dist/node_modules/d3-selection/src/selection/nodes.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/on.js +58 -0
- package/dist/node_modules/d3-selection/src/selection/on.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/order.js +9 -0
- package/dist/node_modules/d3-selection/src/selection/order.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/property.js +24 -0
- package/dist/node_modules/d3-selection/src/selection/property.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/raise.js +11 -0
- package/dist/node_modules/d3-selection/src/selection/raise.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/remove.js +12 -0
- package/dist/node_modules/d3-selection/src/selection/remove.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/select.js +12 -0
- package/dist/node_modules/d3-selection/src/selection/select.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/selectAll.js +18 -0
- package/dist/node_modules/d3-selection/src/selection/selectAll.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/selectChild.js +18 -0
- package/dist/node_modules/d3-selection/src/selection/selectChild.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/selectChildren.js +18 -0
- package/dist/node_modules/d3-selection/src/selection/selectChildren.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/size.js +10 -0
- package/dist/node_modules/d3-selection/src/selection/size.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/sort.js +20 -0
- package/dist/node_modules/d3-selection/src/selection/sort.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/sparse.js +8 -0
- package/dist/node_modules/d3-selection/src/selection/sparse.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/style.js +28 -0
- package/dist/node_modules/d3-selection/src/selection/style.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selection/text.js +21 -0
- package/dist/node_modules/d3-selection/src/selection/text.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selector.js +11 -0
- package/dist/node_modules/d3-selection/src/selector.js.map +1 -0
- package/dist/node_modules/d3-selection/src/selectorAll.js +13 -0
- package/dist/node_modules/d3-selection/src/selectorAll.js.map +1 -0
- package/dist/node_modules/d3-selection/src/sourceEvent.js +10 -0
- package/dist/node_modules/d3-selection/src/sourceEvent.js.map +1 -0
- package/dist/node_modules/d3-selection/src/window.js +8 -0
- package/dist/node_modules/d3-selection/src/window.js.map +1 -0
- package/dist/node_modules/d3-shape/src/area.js +55 -0
- package/dist/node_modules/d3-shape/src/area.js.map +1 -0
- package/dist/node_modules/d3-shape/src/array.js +8 -0
- package/dist/node_modules/d3-shape/src/array.js.map +1 -0
- package/dist/node_modules/d3-shape/src/constant.js +10 -0
- package/dist/node_modules/d3-shape/src/constant.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/basis.js +49 -0
- package/dist/node_modules/d3-shape/src/curve/basis.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js +50 -0
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js +46 -0
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/bump.js +40 -0
- package/dist/node_modules/d3-shape/src/curve/bump.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/linear.js +36 -0
- package/dist/node_modules/d3-shape/src/curve/linear.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js +25 -0
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/monotone.js +94 -0
- package/dist/node_modules/d3-shape/src/curve/monotone.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/natural.js +39 -0
- package/dist/node_modules/d3-shape/src/curve/natural.js.map +1 -0
- package/dist/node_modules/d3-shape/src/curve/step.js +47 -0
- package/dist/node_modules/d3-shape/src/curve/step.js.map +1 -0
- package/dist/node_modules/d3-shape/src/line.js +30 -0
- package/dist/node_modules/d3-shape/src/line.js.map +1 -0
- package/dist/node_modules/d3-shape/src/math.js +8 -0
- package/dist/node_modules/d3-shape/src/math.js.map +1 -0
- package/dist/node_modules/d3-shape/src/noop.js +6 -0
- package/dist/node_modules/d3-shape/src/noop.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/expand.js +15 -0
- package/dist/node_modules/d3-shape/src/offset/expand.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/none.js +8 -0
- package/dist/node_modules/d3-shape/src/offset/none.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/silhouette.js +15 -0
- package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +1 -0
- package/dist/node_modules/d3-shape/src/offset/wiggle.js +21 -0
- package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +1 -0
- package/dist/node_modules/d3-shape/src/order/none.js +9 -0
- package/dist/node_modules/d3-shape/src/order/none.js.map +1 -0
- package/dist/node_modules/d3-shape/src/path.js +19 -0
- package/dist/node_modules/d3-shape/src/path.js.map +1 -0
- package/dist/node_modules/d3-shape/src/point.js +11 -0
- package/dist/node_modules/d3-shape/src/point.js.map +1 -0
- package/dist/node_modules/d3-shape/src/stack.js +34 -0
- package/dist/node_modules/d3-shape/src/stack.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/circle.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/circle.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/cross.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/cross.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/diamond.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/square.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/square.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/star.js +15 -0
- package/dist/node_modules/d3-shape/src/symbol/star.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/triangle.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol/wye.js +10 -0
- package/dist/node_modules/d3-shape/src/symbol/wye.js.map +1 -0
- package/dist/node_modules/d3-shape/src/symbol.js +23 -0
- package/dist/node_modules/d3-shape/src/symbol.js.map +1 -0
- package/dist/node_modules/d3-time/src/day.js +21 -0
- package/dist/node_modules/d3-time/src/day.js.map +1 -0
- package/dist/node_modules/d3-time/src/duration.js +6 -0
- package/dist/node_modules/d3-time/src/duration.js.map +1 -0
- package/dist/node_modules/d3-time/src/hour.js +19 -0
- package/dist/node_modules/d3-time/src/hour.js.map +1 -0
- package/dist/node_modules/d3-time/src/interval.js +28 -0
- package/dist/node_modules/d3-time/src/interval.js.map +1 -0
- package/dist/node_modules/d3-time/src/millisecond.js +14 -0
- package/dist/node_modules/d3-time/src/millisecond.js.map +1 -0
- package/dist/node_modules/d3-time/src/minute.js +19 -0
- package/dist/node_modules/d3-time/src/minute.js.map +1 -0
- package/dist/node_modules/d3-time/src/month.js +18 -0
- package/dist/node_modules/d3-time/src/month.js.map +1 -0
- package/dist/node_modules/d3-time/src/second.js +13 -0
- package/dist/node_modules/d3-time/src/second.js.map +1 -0
- package/dist/node_modules/d3-time/src/ticks.js +125 -0
- package/dist/node_modules/d3-time/src/ticks.js.map +1 -0
- package/dist/node_modules/d3-time/src/week.js +25 -0
- package/dist/node_modules/d3-time/src/week.js.map +1 -0
- package/dist/node_modules/d3-time/src/year.js +26 -0
- package/dist/node_modules/d3-time/src/year.js.map +1 -0
- package/dist/node_modules/d3-time-format/src/defaultLocale.js +62 -0
- package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +1 -0
- package/dist/node_modules/d3-time-format/src/locale.js +490 -0
- package/dist/node_modules/d3-time-format/src/locale.js.map +1 -0
- package/dist/node_modules/d3-timer/src/timeout.js +12 -0
- package/dist/node_modules/d3-timer/src/timeout.js.map +1 -0
- package/dist/node_modules/d3-timer/src/timer.js +55 -0
- package/dist/node_modules/d3-timer/src/timer.js.map +1 -0
- package/dist/node_modules/d3-transition/src/index.js +3 -0
- package/dist/node_modules/d3-transition/src/interrupt.js +18 -0
- package/dist/node_modules/d3-transition/src/interrupt.js.map +1 -0
- package/dist/node_modules/d3-transition/src/selection/index.js +7 -0
- package/dist/node_modules/d3-transition/src/selection/index.js.map +1 -0
- package/dist/node_modules/d3-transition/src/selection/interrupt.js +11 -0
- package/dist/node_modules/d3-transition/src/selection/interrupt.js.map +1 -0
- package/dist/node_modules/d3-transition/src/selection/transition.js +25 -0
- package/dist/node_modules/d3-transition/src/selection/transition.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/attr.js +51 -0
- package/dist/node_modules/d3-transition/src/transition/attr.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/attrTween.js +40 -0
- package/dist/node_modules/d3-transition/src/transition/attrTween.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/delay.js +20 -0
- package/dist/node_modules/d3-transition/src/transition/delay.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/duration.js +20 -0
- package/dist/node_modules/d3-transition/src/transition/duration.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/ease.js +16 -0
- package/dist/node_modules/d3-transition/src/transition/ease.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/easeVarying.js +17 -0
- package/dist/node_modules/d3-transition/src/transition/easeVarying.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/end.js +18 -0
- package/dist/node_modules/d3-transition/src/transition/end.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/filter.js +12 -0
- package/dist/node_modules/d3-transition/src/transition/filter.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/index.js +69 -0
- package/dist/node_modules/d3-transition/src/transition/index.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/interpolate.js +13 -0
- package/dist/node_modules/d3-transition/src/transition/interpolate.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/merge.js +12 -0
- package/dist/node_modules/d3-transition/src/transition/merge.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/on.js +23 -0
- package/dist/node_modules/d3-transition/src/transition/on.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/remove.js +15 -0
- package/dist/node_modules/d3-transition/src/transition/remove.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/schedule.js +71 -0
- package/dist/node_modules/d3-transition/src/transition/schedule.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/select.js +14 -0
- package/dist/node_modules/d3-transition/src/transition/select.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/selectAll.js +17 -0
- package/dist/node_modules/d3-transition/src/transition/selectAll.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/selection.js +10 -0
- package/dist/node_modules/d3-transition/src/transition/selection.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/style.js +47 -0
- package/dist/node_modules/d3-transition/src/transition/style.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/styleTween.js +25 -0
- package/dist/node_modules/d3-transition/src/transition/styleTween.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/text.js +19 -0
- package/dist/node_modules/d3-transition/src/transition/text.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/textTween.js +25 -0
- package/dist/node_modules/d3-transition/src/transition/textTween.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/transition.js +19 -0
- package/dist/node_modules/d3-transition/src/transition/transition.js.map +1 -0
- package/dist/node_modules/d3-transition/src/transition/tween.js +56 -0
- package/dist/node_modules/d3-transition/src/transition/tween.js.map +1 -0
- package/dist/node_modules/d3-zoom/src/constant.js +6 -0
- package/dist/node_modules/d3-zoom/src/constant.js.map +1 -0
- package/dist/node_modules/d3-zoom/src/event.js +30 -0
- package/dist/node_modules/d3-zoom/src/event.js.map +1 -0
- package/dist/node_modules/d3-zoom/src/index.js +2 -0
- package/dist/node_modules/d3-zoom/src/noevent.js +11 -0
- package/dist/node_modules/d3-zoom/src/noevent.js.map +1 -0
- package/dist/node_modules/d3-zoom/src/transform.js +50 -0
- package/dist/node_modules/d3-zoom/src/transform.js.map +1 -0
- package/dist/node_modules/d3-zoom/src/zoom.js +219 -0
- package/dist/node_modules/d3-zoom/src/zoom.js.map +1 -0
- package/dist/node_modules/decimal.js-light/decimal.js +378 -0
- package/dist/node_modules/decimal.js-light/decimal.js.map +1 -0
- package/dist/node_modules/eventemitter3/index.js +95 -0
- package/dist/node_modules/eventemitter3/index.js.map +1 -0
- package/dist/node_modules/fast-equals/dist/es/index.js +267 -0
- package/dist/node_modules/fast-equals/dist/es/index.js.map +1 -0
- package/dist/node_modules/internmap/src/index.js +40 -0
- package/dist/node_modules/internmap/src/index.js.map +1 -0
- package/dist/node_modules/lodash/_DataView.js +12 -0
- package/dist/node_modules/lodash/_DataView.js.map +1 -0
- package/dist/node_modules/lodash/_Hash.js +23 -0
- package/dist/node_modules/lodash/_Hash.js.map +1 -0
- package/dist/node_modules/lodash/_ListCache.js +23 -0
- package/dist/node_modules/lodash/_ListCache.js.map +1 -0
- package/dist/node_modules/lodash/_Map.js +12 -0
- package/dist/node_modules/lodash/_Map.js.map +1 -0
- package/dist/node_modules/lodash/_MapCache.js +23 -0
- package/dist/node_modules/lodash/_MapCache.js.map +1 -0
- package/dist/node_modules/lodash/_Promise.js +12 -0
- package/dist/node_modules/lodash/_Promise.js.map +1 -0
- package/dist/node_modules/lodash/_Set.js +12 -0
- package/dist/node_modules/lodash/_Set.js.map +1 -0
- package/dist/node_modules/lodash/_SetCache.js +18 -0
- package/dist/node_modules/lodash/_SetCache.js.map +1 -0
- package/dist/node_modules/lodash/_Stack.js +20 -0
- package/dist/node_modules/lodash/_Stack.js.map +1 -0
- package/dist/node_modules/lodash/_Symbol.js +11 -0
- package/dist/node_modules/lodash/_Symbol.js.map +1 -0
- package/dist/node_modules/lodash/_Uint8Array.js +11 -0
- package/dist/node_modules/lodash/_Uint8Array.js.map +1 -0
- package/dist/node_modules/lodash/_WeakMap.js +12 -0
- package/dist/node_modules/lodash/_WeakMap.js.map +1 -0
- package/dist/node_modules/lodash/_apply.js +19 -0
- package/dist/node_modules/lodash/_apply.js.map +1 -0
- package/dist/node_modules/lodash/_arrayEvery.js +14 -0
- package/dist/node_modules/lodash/_arrayEvery.js.map +1 -0
- package/dist/node_modules/lodash/_arrayFilter.js +17 -0
- package/dist/node_modules/lodash/_arrayFilter.js.map +1 -0
- package/dist/node_modules/lodash/_arrayIncludes.js +15 -0
- package/dist/node_modules/lodash/_arrayIncludes.js.map +1 -0
- package/dist/node_modules/lodash/_arrayIncludesWith.js +14 -0
- package/dist/node_modules/lodash/_arrayIncludesWith.js.map +1 -0
- package/dist/node_modules/lodash/_arrayLikeKeys.js +22 -0
- package/dist/node_modules/lodash/_arrayLikeKeys.js.map +1 -0
- package/dist/node_modules/lodash/_arrayMap.js +14 -0
- package/dist/node_modules/lodash/_arrayMap.js.map +1 -0
- package/dist/node_modules/lodash/_arrayPush.js +14 -0
- package/dist/node_modules/lodash/_arrayPush.js.map +1 -0
- package/dist/node_modules/lodash/_arraySome.js +14 -0
- package/dist/node_modules/lodash/_arraySome.js.map +1 -0
- package/dist/node_modules/lodash/_asciiToArray.js +13 -0
- package/dist/node_modules/lodash/_asciiToArray.js.map +1 -0
- package/dist/node_modules/lodash/_assocIndexOf.js +16 -0
- package/dist/node_modules/lodash/_assocIndexOf.js.map +1 -0
- package/dist/node_modules/lodash/_baseAssignValue.js +20 -0
- package/dist/node_modules/lodash/_baseAssignValue.js.map +1 -0
- package/dist/node_modules/lodash/_baseEach.js +13 -0
- package/dist/node_modules/lodash/_baseEach.js.map +1 -0
- package/dist/node_modules/lodash/_baseEvery.js +18 -0
- package/dist/node_modules/lodash/_baseEvery.js.map +1 -0
- package/dist/node_modules/lodash/_baseExtremum.js +19 -0
- package/dist/node_modules/lodash/_baseExtremum.js.map +1 -0
- package/dist/node_modules/lodash/_baseFindIndex.js +14 -0
- package/dist/node_modules/lodash/_baseFindIndex.js.map +1 -0
- package/dist/node_modules/lodash/_baseFlatten.js +21 -0
- package/dist/node_modules/lodash/_baseFlatten.js.map +1 -0
- package/dist/node_modules/lodash/_baseFor.js +11 -0
- package/dist/node_modules/lodash/_baseFor.js.map +1 -0
- package/dist/node_modules/lodash/_baseForOwn.js +16 -0
- package/dist/node_modules/lodash/_baseForOwn.js.map +1 -0
- package/dist/node_modules/lodash/_baseGet.js +18 -0
- package/dist/node_modules/lodash/_baseGet.js.map +1 -0
- package/dist/node_modules/lodash/_baseGetAllKeys.js +17 -0
- package/dist/node_modules/lodash/_baseGetAllKeys.js.map +1 -0
- package/dist/node_modules/lodash/_baseGetTag.js +17 -0
- package/dist/node_modules/lodash/_baseGetTag.js.map +1 -0
- package/dist/node_modules/lodash/_baseGt.js +13 -0
- package/dist/node_modules/lodash/_baseGt.js.map +1 -0
- package/dist/node_modules/lodash/_baseHasIn.js +13 -0
- package/dist/node_modules/lodash/_baseHasIn.js.map +1 -0
- package/dist/node_modules/lodash/_baseIndexOf.js +17 -0
- package/dist/node_modules/lodash/_baseIndexOf.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsArguments.js +16 -0
- package/dist/node_modules/lodash/_baseIsArguments.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsEqual.js +16 -0
- package/dist/node_modules/lodash/_baseIsEqual.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsEqualDeep.js +37 -0
- package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsMatch.js +33 -0
- package/dist/node_modules/lodash/_baseIsMatch.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsNaN.js +13 -0
- package/dist/node_modules/lodash/_baseIsNaN.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsNative.js +18 -0
- package/dist/node_modules/lodash/_baseIsNative.js.map +1 -0
- package/dist/node_modules/lodash/_baseIsTypedArray.js +18 -0
- package/dist/node_modules/lodash/_baseIsTypedArray.js.map +1 -0
- package/dist/node_modules/lodash/_baseIteratee.js +19 -0
- package/dist/node_modules/lodash/_baseIteratee.js.map +1 -0
- package/dist/node_modules/lodash/_baseKeys.js +19 -0
- package/dist/node_modules/lodash/_baseKeys.js.map +1 -0
- package/dist/node_modules/lodash/_baseLt.js +13 -0
- package/dist/node_modules/lodash/_baseLt.js.map +1 -0
- package/dist/node_modules/lodash/_baseMap.js +19 -0
- package/dist/node_modules/lodash/_baseMap.js.map +1 -0
- package/dist/node_modules/lodash/_baseMatches.js +20 -0
- package/dist/node_modules/lodash/_baseMatches.js.map +1 -0
- package/dist/node_modules/lodash/_baseMatchesProperty.js +24 -0
- package/dist/node_modules/lodash/_baseMatchesProperty.js.map +1 -0
- package/dist/node_modules/lodash/_baseOrderBy.js +39 -0
- package/dist/node_modules/lodash/_baseOrderBy.js.map +1 -0
- package/dist/node_modules/lodash/_baseProperty.js +15 -0
- package/dist/node_modules/lodash/_baseProperty.js.map +1 -0
- package/dist/node_modules/lodash/_basePropertyDeep.js +17 -0
- package/dist/node_modules/lodash/_basePropertyDeep.js.map +1 -0
- package/dist/node_modules/lodash/_baseRange.js +15 -0
- package/dist/node_modules/lodash/_baseRange.js.map +1 -0
- package/dist/node_modules/lodash/_baseRest.js +17 -0
- package/dist/node_modules/lodash/_baseRest.js.map +1 -0
- package/dist/node_modules/lodash/_baseSetToString.js +21 -0
- package/dist/node_modules/lodash/_baseSetToString.js.map +1 -0
- package/dist/node_modules/lodash/_baseSlice.js +16 -0
- package/dist/node_modules/lodash/_baseSlice.js.map +1 -0
- package/dist/node_modules/lodash/_baseSome.js +18 -0
- package/dist/node_modules/lodash/_baseSome.js.map +1 -0
- package/dist/node_modules/lodash/_baseSortBy.js +15 -0
- package/dist/node_modules/lodash/_baseSortBy.js.map +1 -0
- package/dist/node_modules/lodash/_baseTimes.js +14 -0
- package/dist/node_modules/lodash/_baseTimes.js.map +1 -0
- package/dist/node_modules/lodash/_baseToString.js +22 -0
- package/dist/node_modules/lodash/_baseToString.js.map +1 -0
- package/dist/node_modules/lodash/_baseTrim.js +15 -0
- package/dist/node_modules/lodash/_baseTrim.js.map +1 -0
- package/dist/node_modules/lodash/_baseUnary.js +15 -0
- package/dist/node_modules/lodash/_baseUnary.js.map +1 -0
- package/dist/node_modules/lodash/_baseUniq.js +34 -0
- package/dist/node_modules/lodash/_baseUniq.js.map +1 -0
- package/dist/node_modules/lodash/_cacheHas.js +13 -0
- package/dist/node_modules/lodash/_cacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_castPath.js +18 -0
- package/dist/node_modules/lodash/_castPath.js.map +1 -0
- package/dist/node_modules/lodash/_castSlice.js +16 -0
- package/dist/node_modules/lodash/_castSlice.js.map +1 -0
- package/dist/node_modules/lodash/_compareAscending.js +20 -0
- package/dist/node_modules/lodash/_compareAscending.js.map +1 -0
- package/dist/node_modules/lodash/_compareMultiple.js +19 -0
- package/dist/node_modules/lodash/_compareMultiple.js.map +1 -0
- package/dist/node_modules/lodash/_coreJsData.js +11 -0
- package/dist/node_modules/lodash/_coreJsData.js.map +1 -0
- package/dist/node_modules/lodash/_createBaseEach.js +20 -0
- package/dist/node_modules/lodash/_createBaseEach.js.map +1 -0
- package/dist/node_modules/lodash/_createBaseFor.js +19 -0
- package/dist/node_modules/lodash/_createBaseFor.js.map +1 -0
- package/dist/node_modules/lodash/_createCaseFirst.js +22 -0
- package/dist/node_modules/lodash/_createCaseFirst.js.map +1 -0
- package/dist/node_modules/lodash/_createFind.js +27 -0
- package/dist/node_modules/lodash/_createFind.js.map +1 -0
- package/dist/node_modules/lodash/_createRange.js +19 -0
- package/dist/node_modules/lodash/_createRange.js.map +1 -0
- package/dist/node_modules/lodash/_createSet.js +16 -0
- package/dist/node_modules/lodash/_createSet.js.map +1 -0
- package/dist/node_modules/lodash/_defineProperty.js +17 -0
- package/dist/node_modules/lodash/_defineProperty.js.map +1 -0
- package/dist/node_modules/lodash/_equalArrays.js +42 -0
- package/dist/node_modules/lodash/_equalArrays.js.map +1 -0
- package/dist/node_modules/lodash/_equalByTag.js +42 -0
- package/dist/node_modules/lodash/_equalByTag.js.map +1 -0
- package/dist/node_modules/lodash/_equalObjects.js +39 -0
- package/dist/node_modules/lodash/_equalObjects.js.map +1 -0
- package/dist/node_modules/lodash/_freeGlobal.js +10 -0
- package/dist/node_modules/lodash/_freeGlobal.js.map +1 -0
- package/dist/node_modules/lodash/_getAllKeys.js +17 -0
- package/dist/node_modules/lodash/_getAllKeys.js.map +1 -0
- package/dist/node_modules/lodash/_getMapData.js +16 -0
- package/dist/node_modules/lodash/_getMapData.js.map +1 -0
- package/dist/node_modules/lodash/_getMatchData.js +24 -0
- package/dist/node_modules/lodash/_getMatchData.js.map +1 -0
- package/dist/node_modules/lodash/_getNative.js +17 -0
- package/dist/node_modules/lodash/_getNative.js.map +1 -0
- package/dist/node_modules/lodash/_getPrototype.js +11 -0
- package/dist/node_modules/lodash/_getPrototype.js.map +1 -0
- package/dist/node_modules/lodash/_getRawTag.js +21 -0
- package/dist/node_modules/lodash/_getRawTag.js.map +1 -0
- package/dist/node_modules/lodash/_getSymbols.js +17 -0
- package/dist/node_modules/lodash/_getSymbols.js.map +1 -0
- package/dist/node_modules/lodash/_getTag.js +28 -0
- package/dist/node_modules/lodash/_getTag.js.map +1 -0
- package/dist/node_modules/lodash/_getValue.js +13 -0
- package/dist/node_modules/lodash/_getValue.js.map +1 -0
- package/dist/node_modules/lodash/_hasPath.js +26 -0
- package/dist/node_modules/lodash/_hasPath.js.map +1 -0
- package/dist/node_modules/lodash/_hasUnicode.js +14 -0
- package/dist/node_modules/lodash/_hasUnicode.js.map +1 -0
- package/dist/node_modules/lodash/_hashClear.js +15 -0
- package/dist/node_modules/lodash/_hashClear.js.map +1 -0
- package/dist/node_modules/lodash/_hashDelete.js +14 -0
- package/dist/node_modules/lodash/_hashDelete.js.map +1 -0
- package/dist/node_modules/lodash/_hashGet.js +20 -0
- package/dist/node_modules/lodash/_hashGet.js.map +1 -0
- package/dist/node_modules/lodash/_hashHas.js +16 -0
- package/dist/node_modules/lodash/_hashHas.js.map +1 -0
- package/dist/node_modules/lodash/_hashSet.js +16 -0
- package/dist/node_modules/lodash/_hashSet.js.map +1 -0
- package/dist/node_modules/lodash/_isFlattenable.js +17 -0
- package/dist/node_modules/lodash/_isFlattenable.js.map +1 -0
- package/dist/node_modules/lodash/_isIndex.js +15 -0
- package/dist/node_modules/lodash/_isIndex.js.map +1 -0
- package/dist/node_modules/lodash/_isIterateeCall.js +20 -0
- package/dist/node_modules/lodash/_isIterateeCall.js.map +1 -0
- package/dist/node_modules/lodash/_isKey.js +18 -0
- package/dist/node_modules/lodash/_isKey.js.map +1 -0
- package/dist/node_modules/lodash/_isKeyable.js +14 -0
- package/dist/node_modules/lodash/_isKeyable.js.map +1 -0
- package/dist/node_modules/lodash/_isMasked.js +18 -0
- package/dist/node_modules/lodash/_isMasked.js.map +1 -0
- package/dist/node_modules/lodash/_isPrototype.js +15 -0
- package/dist/node_modules/lodash/_isPrototype.js.map +1 -0
- package/dist/node_modules/lodash/_isStrictComparable.js +15 -0
- package/dist/node_modules/lodash/_isStrictComparable.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheClear.js +13 -0
- package/dist/node_modules/lodash/_listCacheClear.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheDelete.js +16 -0
- package/dist/node_modules/lodash/_listCacheDelete.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheGet.js +16 -0
- package/dist/node_modules/lodash/_listCacheGet.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheHas.js +15 -0
- package/dist/node_modules/lodash/_listCacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_listCacheSet.js +16 -0
- package/dist/node_modules/lodash/_listCacheSet.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheClear.js +21 -0
- package/dist/node_modules/lodash/_mapCacheClear.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheDelete.js +16 -0
- package/dist/node_modules/lodash/_mapCacheDelete.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheGet.js +15 -0
- package/dist/node_modules/lodash/_mapCacheGet.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheHas.js +15 -0
- package/dist/node_modules/lodash/_mapCacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_mapCacheSet.js +16 -0
- package/dist/node_modules/lodash/_mapCacheSet.js.map +1 -0
- package/dist/node_modules/lodash/_mapToArray.js +16 -0
- package/dist/node_modules/lodash/_mapToArray.js.map +1 -0
- package/dist/node_modules/lodash/_matchesStrictComparable.js +15 -0
- package/dist/node_modules/lodash/_matchesStrictComparable.js.map +1 -0
- package/dist/node_modules/lodash/_memoizeCapped.js +18 -0
- package/dist/node_modules/lodash/_memoizeCapped.js.map +1 -0
- package/dist/node_modules/lodash/_nativeCreate.js +11 -0
- package/dist/node_modules/lodash/_nativeCreate.js.map +1 -0
- package/dist/node_modules/lodash/_nativeKeys.js +11 -0
- package/dist/node_modules/lodash/_nativeKeys.js.map +1 -0
- package/dist/node_modules/lodash/_nodeUtil.js +16 -0
- package/dist/node_modules/lodash/_nodeUtil.js.map +1 -0
- package/dist/node_modules/lodash/_objectToString.js +14 -0
- package/dist/node_modules/lodash/_objectToString.js.map +1 -0
- package/dist/node_modules/lodash/_overArg.js +15 -0
- package/dist/node_modules/lodash/_overArg.js.map +1 -0
- package/dist/node_modules/lodash/_overRest.js +20 -0
- package/dist/node_modules/lodash/_overRest.js.map +1 -0
- package/dist/node_modules/lodash/_root.js +12 -0
- package/dist/node_modules/lodash/_root.js.map +1 -0
- package/dist/node_modules/lodash/_setCacheAdd.js +14 -0
- package/dist/node_modules/lodash/_setCacheAdd.js.map +1 -0
- package/dist/node_modules/lodash/_setCacheHas.js +13 -0
- package/dist/node_modules/lodash/_setCacheHas.js.map +1 -0
- package/dist/node_modules/lodash/_setToArray.js +16 -0
- package/dist/node_modules/lodash/_setToArray.js.map +1 -0
- package/dist/node_modules/lodash/_setToString.js +13 -0
- package/dist/node_modules/lodash/_setToString.js.map +1 -0
- package/dist/node_modules/lodash/_shortOut.js +21 -0
- package/dist/node_modules/lodash/_shortOut.js.map +1 -0
- package/dist/node_modules/lodash/_stackClear.js +15 -0
- package/dist/node_modules/lodash/_stackClear.js.map +1 -0
- package/dist/node_modules/lodash/_stackDelete.js +14 -0
- package/dist/node_modules/lodash/_stackDelete.js.map +1 -0
- package/dist/node_modules/lodash/_stackGet.js +13 -0
- package/dist/node_modules/lodash/_stackGet.js.map +1 -0
- package/dist/node_modules/lodash/_stackHas.js +13 -0
- package/dist/node_modules/lodash/_stackHas.js.map +1 -0
- package/dist/node_modules/lodash/_stackSet.js +23 -0
- package/dist/node_modules/lodash/_stackSet.js.map +1 -0
- package/dist/node_modules/lodash/_strictIndexOf.js +14 -0
- package/dist/node_modules/lodash/_strictIndexOf.js.map +1 -0
- package/dist/node_modules/lodash/_stringToArray.js +17 -0
- package/dist/node_modules/lodash/_stringToArray.js.map +1 -0
- package/dist/node_modules/lodash/_stringToPath.js +17 -0
- package/dist/node_modules/lodash/_stringToPath.js.map +1 -0
- package/dist/node_modules/lodash/_toKey.js +17 -0
- package/dist/node_modules/lodash/_toKey.js.map +1 -0
- package/dist/node_modules/lodash/_toSource.js +22 -0
- package/dist/node_modules/lodash/_toSource.js.map +1 -0
- package/dist/node_modules/lodash/_trimmedEndIndex.js +15 -0
- package/dist/node_modules/lodash/_trimmedEndIndex.js.map +1 -0
- package/dist/node_modules/lodash/_unicodeToArray.js +24 -0
- package/dist/node_modules/lodash/_unicodeToArray.js.map +1 -0
- package/dist/node_modules/lodash/constant.js +15 -0
- package/dist/node_modules/lodash/constant.js.map +1 -0
- package/dist/node_modules/lodash/debounce.js +57 -0
- package/dist/node_modules/lodash/debounce.js.map +1 -0
- package/dist/node_modules/lodash/eq.js +13 -0
- package/dist/node_modules/lodash/eq.js.map +1 -0
- package/dist/node_modules/lodash/every.js +20 -0
- package/dist/node_modules/lodash/every.js.map +1 -0
- package/dist/node_modules/lodash/find.js +12 -0
- package/dist/node_modules/lodash/find.js.map +1 -0
- package/dist/node_modules/lodash/findIndex.js +20 -0
- package/dist/node_modules/lodash/findIndex.js.map +1 -0
- package/dist/node_modules/lodash/flatMap.js +16 -0
- package/dist/node_modules/lodash/flatMap.js.map +1 -0
- package/dist/node_modules/lodash/get.js +16 -0
- package/dist/node_modules/lodash/get.js.map +1 -0
- package/dist/node_modules/lodash/hasIn.js +16 -0
- package/dist/node_modules/lodash/hasIn.js.map +1 -0
- package/dist/node_modules/lodash/identity.js +13 -0
- package/dist/node_modules/lodash/identity.js.map +1 -0
- package/dist/node_modules/lodash/isArguments.js +17 -0
- package/dist/node_modules/lodash/isArguments.js.map +1 -0
- package/dist/node_modules/lodash/isArray.js +10 -0
- package/dist/node_modules/lodash/isArray.js.map +1 -0
- package/dist/node_modules/lodash/isArrayLike.js +16 -0
- package/dist/node_modules/lodash/isArrayLike.js.map +1 -0
- package/dist/node_modules/lodash/isBoolean.js +16 -0
- package/dist/node_modules/lodash/isBoolean.js.map +1 -0
- package/dist/node_modules/lodash/isBuffer.js +13 -0
- package/dist/node_modules/lodash/isBuffer.js.map +1 -0
- package/dist/node_modules/lodash/isEqual.js +15 -0
- package/dist/node_modules/lodash/isEqual.js.map +1 -0
- package/dist/node_modules/lodash/isFunction.js +18 -0
- package/dist/node_modules/lodash/isFunction.js.map +1 -0
- package/dist/node_modules/lodash/isLength.js +14 -0
- package/dist/node_modules/lodash/isLength.js.map +1 -0
- package/dist/node_modules/lodash/isNaN.js +15 -0
- package/dist/node_modules/lodash/isNaN.js.map +1 -0
- package/dist/node_modules/lodash/isNil.js +13 -0
- package/dist/node_modules/lodash/isNil.js.map +1 -0
- package/dist/node_modules/lodash/isNumber.js +16 -0
- package/dist/node_modules/lodash/isNumber.js.map +1 -0
- package/dist/node_modules/lodash/isObject.js +14 -0
- package/dist/node_modules/lodash/isObject.js.map +1 -0
- package/dist/node_modules/lodash/isObjectLike.js +13 -0
- package/dist/node_modules/lodash/isObjectLike.js.map +1 -0
- package/dist/node_modules/lodash/isPlainObject.js +21 -0
- package/dist/node_modules/lodash/isPlainObject.js.map +1 -0
- package/dist/node_modules/lodash/isString.js +17 -0
- package/dist/node_modules/lodash/isString.js.map +1 -0
- package/dist/node_modules/lodash/isSymbol.js +16 -0
- package/dist/node_modules/lodash/isSymbol.js.map +1 -0
- package/dist/node_modules/lodash/isTypedArray.js +14 -0
- package/dist/node_modules/lodash/isTypedArray.js.map +1 -0
- package/dist/node_modules/lodash/keys.js +17 -0
- package/dist/node_modules/lodash/keys.js.map +1 -0
- package/dist/node_modules/lodash/last.js +14 -0
- package/dist/node_modules/lodash/last.js.map +1 -0
- package/dist/node_modules/lodash/map.js +18 -0
- package/dist/node_modules/lodash/map.js.map +1 -0
- package/dist/node_modules/lodash/mapValues.js +20 -0
- package/dist/node_modules/lodash/mapValues.js.map +1 -0
- package/dist/node_modules/lodash/max.js +17 -0
- package/dist/node_modules/lodash/max.js.map +1 -0
- package/dist/node_modules/lodash/maxBy.js +17 -0
- package/dist/node_modules/lodash/maxBy.js.map +1 -0
- package/dist/node_modules/lodash/memoize.js +22 -0
- package/dist/node_modules/lodash/memoize.js.map +1 -0
- package/dist/node_modules/lodash/min.js +17 -0
- package/dist/node_modules/lodash/min.js.map +1 -0
- package/dist/node_modules/lodash/minBy.js +17 -0
- package/dist/node_modules/lodash/minBy.js.map +1 -0
- package/dist/node_modules/lodash/noop.js +11 -0
- package/dist/node_modules/lodash/noop.js.map +1 -0
- package/dist/node_modules/lodash/now.js +14 -0
- package/dist/node_modules/lodash/now.js.map +1 -0
- package/dist/node_modules/lodash/property.js +18 -0
- package/dist/node_modules/lodash/property.js.map +1 -0
- package/dist/node_modules/lodash/range.js +11 -0
- package/dist/node_modules/lodash/range.js.map +1 -0
- package/dist/node_modules/lodash/some.js +20 -0
- package/dist/node_modules/lodash/some.js.map +1 -0
- package/dist/node_modules/lodash/sortBy.js +19 -0
- package/dist/node_modules/lodash/sortBy.js.map +1 -0
- package/dist/node_modules/lodash/stubArray.js +13 -0
- package/dist/node_modules/lodash/stubArray.js.map +1 -0
- package/dist/node_modules/lodash/stubFalse.js +13 -0
- package/dist/node_modules/lodash/stubFalse.js.map +1 -0
- package/dist/node_modules/lodash/throttle.js +22 -0
- package/dist/node_modules/lodash/throttle.js.map +1 -0
- package/dist/node_modules/lodash/toFinite.js +15 -0
- package/dist/node_modules/lodash/toFinite.js.map +1 -0
- package/dist/node_modules/lodash/toInteger.js +16 -0
- package/dist/node_modules/lodash/toInteger.js.map +1 -0
- package/dist/node_modules/lodash/toNumber.js +26 -0
- package/dist/node_modules/lodash/toNumber.js.map +1 -0
- package/dist/node_modules/lodash/toString.js +15 -0
- package/dist/node_modules/lodash/toString.js.map +1 -0
- package/dist/node_modules/lodash/uniqBy.js +16 -0
- package/dist/node_modules/lodash/uniqBy.js.map +1 -0
- package/dist/node_modules/lodash/upperFirst.js +11 -0
- package/dist/node_modules/lodash/upperFirst.js.map +1 -0
- package/dist/node_modules/object-assign/index.js +41 -0
- package/dist/node_modules/object-assign/index.js.map +1 -0
- package/dist/node_modules/prop-types/checkPropTypes.js +46 -0
- package/dist/node_modules/prop-types/checkPropTypes.js.map +1 -0
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js +49 -0
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +1 -0
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +272 -0
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +1 -0
- package/dist/node_modules/prop-types/index.js +16 -0
- package/dist/node_modules/prop-types/index.js.map +1 -0
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +10 -0
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +1 -0
- package/dist/node_modules/prop-types/lib/has.js +10 -0
- package/dist/node_modules/prop-types/lib/has.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +84 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +64 -0
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +12 -0
- package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react-is/cjs/react-is.development.js +87 -0
- package/dist/node_modules/react-is/cjs/react-is.development.js.map +1 -0
- package/dist/node_modules/react-is/cjs/react-is.production.min.js +65 -0
- package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +1 -0
- package/dist/node_modules/react-is/index.js +12 -0
- package/dist/node_modules/react-is/index.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/Animate.js +374 -0
- package/dist/node_modules/react-smooth/es6/Animate.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/AnimateManager.js +73 -0
- package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/configUpdate.js +173 -0
- package/dist/node_modules/react-smooth/es6/configUpdate.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/easing.js +152 -0
- package/dist/node_modules/react-smooth/es6/easing.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/index.js +9 -0
- package/dist/node_modules/react-smooth/es6/index.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js +14 -0
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +1 -0
- package/dist/node_modules/react-smooth/es6/util.js +92 -0
- package/dist/node_modules/react-smooth/es6/util.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/Area.js +435 -0
- package/dist/node_modules/recharts/es6/cartesian/Area.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/Bar.js +387 -0
- package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/Brush.js +499 -0
- package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +338 -0
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js +305 -0
- package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +243 -0
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +173 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +178 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +254 -0
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js +144 -0
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js +143 -0
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +18 -0
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +1 -0
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js +121 -0
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +101 -0
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/AreaChart.js +22 -0
- package/dist/node_modules/recharts/es6/chart/AreaChart.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/PieChart.js +34 -0
- package/dist/node_modules/recharts/es6/chart/PieChart.js.map +1 -0
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +1245 -0
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Cell.js +9 -0
- package/dist/node_modules/recharts/es6/component/Cell.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Cursor.js +93 -0
- package/dist/node_modules/recharts/es6/component/Cursor.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +237 -0
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +171 -0
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Label.js +353 -0
- package/dist/node_modules/recharts/es6/component/Label.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/LabelList.js +166 -0
- package/dist/node_modules/recharts/es6/component/LabelList.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Legend.js +234 -0
- package/dist/node_modules/recharts/es6/component/Legend.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +187 -0
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Text.js +225 -0
- package/dist/node_modules/recharts/es6/component/Text.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/Tooltip.js +182 -0
- package/dist/node_modules/recharts/es6/component/Tooltip.js.map +1 -0
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +198 -0
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +1 -0
- package/dist/node_modules/recharts/es6/container/Layer.js +40 -0
- package/dist/node_modules/recharts/es6/container/Layer.js.map +1 -0
- package/dist/node_modules/recharts/es6/container/Surface.js +60 -0
- package/dist/node_modules/recharts/es6/container/Surface.js.map +1 -0
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +57 -0
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +1 -0
- package/dist/node_modules/recharts/es6/polar/Pie.js +435 -0
- package/dist/node_modules/recharts/es6/polar/Pie.js.map +1 -0
- package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js +215 -0
- package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js +268 -0
- package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Cross.js +112 -0
- package/dist/node_modules/recharts/es6/shape/Cross.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Curve.js +136 -0
- package/dist/node_modules/recharts/es6/shape/Curve.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Dot.js +27 -0
- package/dist/node_modules/recharts/es6/shape/Dot.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Polygon.js +112 -0
- package/dist/node_modules/recharts/es6/shape/Polygon.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Rectangle.js +205 -0
- package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Sector.js +192 -0
- package/dist/node_modules/recharts/es6/shape/Sector.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Symbols.js +143 -0
- package/dist/node_modules/recharts/es6/shape/Symbols.js.map +1 -0
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js +175 -0
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +181 -0
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/BarUtils.js +112 -0
- package/dist/node_modules/recharts/es6/util/BarUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js +234 -0
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ChartUtils.js +562 -0
- package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +70 -0
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/DOMUtils.js +108 -0
- package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/DataUtils.js +57 -0
- package/dist/node_modules/recharts/es6/util/DataUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +58 -0
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/Events.js +7 -0
- package/dist/node_modules/recharts/es6/util/Events.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/Global.js +21 -0
- package/dist/node_modules/recharts/es6/util/Global.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +9 -0
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/LogUtils.js +15 -0
- package/dist/node_modules/recharts/es6/util/LogUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/PolarUtils.js +198 -0
- package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ReactUtils.js +137 -0
- package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +181 -0
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js +10 -0
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/TickUtils.js +31 -0
- package/dist/node_modules/recharts/es6/util/TickUtils.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js +25 -0
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +23 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +16 -0
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +17 -0
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +12 -0
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/getLegendProps.js +88 -0
- package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +13 -0
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +12 -0
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js +87 -0
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +1 -0
- package/dist/node_modules/recharts/es6/util/types.js +43 -0
- package/dist/node_modules/recharts/es6/util/types.js.map +1 -0
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +132 -0
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +1 -0
- package/dist/node_modules/recharts-scale/es6/index.js +1 -0
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +32 -0
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +1 -0
- package/dist/node_modules/recharts-scale/es6/util/utils.js +79 -0
- package/dist/node_modules/recharts-scale/es6/util/utils.js.map +1 -0
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +13 -0
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js +56 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.development.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js +54 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js +54 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.development.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js +46 -0
- package/dist/node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/shim/index.js +12 -0
- package/dist/node_modules/use-sync-external-store/shim/index.js.map +1 -0
- package/dist/node_modules/use-sync-external-store/shim/with-selector.js +12 -0
- package/dist/node_modules/use-sync-external-store/shim/with-selector.js.map +1 -0
- package/dist/node_modules/victory-vendor/es/d3-scale.js +53 -0
- package/dist/node_modules/victory-vendor/es/d3-scale.js.map +1 -0
- package/dist/node_modules/zustand/esm/traditional.js +17 -0
- package/dist/node_modules/zustand/esm/traditional.js.map +1 -0
- package/dist/node_modules/zustand/esm/vanilla/shallow.js +21 -0
- package/dist/node_modules/zustand/esm/vanilla/shallow.js.map +1 -0
- package/dist/node_modules/zustand/esm/vanilla.js +20 -0
- package/dist/node_modules/zustand/esm/vanilla.js.map +1 -0
- package/dist/pages/ActionsPage.d.ts +2 -0
- package/dist/pages/ActionsPage.d.ts.map +1 -0
- package/dist/pages/ActionsPage.js +594 -0
- package/dist/pages/ActionsPage.js.map +1 -0
- package/dist/pages/AgentDetailsPage.d.ts +5 -0
- package/dist/pages/AgentDetailsPage.d.ts.map +1 -0
- package/dist/pages/AgentDetailsPage.js +1714 -0
- package/dist/pages/AgentDetailsPage.js.map +1 -0
- package/dist/pages/AgentGraphPage.d.ts +9 -0
- package/dist/pages/AgentGraphPage.d.ts.map +1 -0
- package/dist/pages/AgentGraphPage.js +179 -0
- package/dist/pages/AgentGraphPage.js.map +1 -0
- package/dist/pages/AgentsLandingPage.d.ts +12 -0
- package/dist/pages/AgentsLandingPage.d.ts.map +1 -0
- package/dist/pages/AgentsLandingPage.js +84 -0
- package/dist/pages/AgentsLandingPage.js.map +1 -0
- package/dist/pages/AgentsPage.d.ts +5 -0
- package/dist/pages/AgentsPage.d.ts.map +1 -0
- package/dist/pages/AgentsPage.js +701 -0
- package/dist/pages/AgentsPage.js.map +1 -0
- package/dist/pages/AnalyticsPage.d.ts +2 -0
- package/dist/pages/AnalyticsPage.d.ts.map +1 -0
- package/dist/pages/AnalyticsPage.js +507 -0
- package/dist/pages/AnalyticsPage.js.map +1 -0
- package/dist/pages/CatalogDetailPage.d.ts +2 -0
- package/dist/pages/CatalogDetailPage.d.ts.map +1 -0
- package/dist/pages/CatalogDetailPage.js +842 -0
- package/dist/pages/CatalogDetailPage.js.map +1 -0
- package/dist/pages/CatalogDocsPage.d.ts +2 -0
- package/dist/pages/CatalogDocsPage.d.ts.map +1 -0
- package/dist/pages/CatalogDocsPage.js +154 -0
- package/dist/pages/CatalogDocsPage.js.map +1 -0
- package/dist/pages/CatalogPage.d.ts +2 -0
- package/dist/pages/CatalogPage.d.ts.map +1 -0
- package/dist/pages/CatalogPage.js +189 -0
- package/dist/pages/CatalogPage.js.map +1 -0
- package/dist/pages/ComponentDetailPage.d.ts +2 -0
- package/dist/pages/ComponentDetailPage.d.ts.map +1 -0
- package/dist/pages/ComponentDetailPage.js +557 -0
- package/dist/pages/ComponentDetailPage.js.map +1 -0
- package/dist/pages/ComponentDocsPage.d.ts +2 -0
- package/dist/pages/ComponentDocsPage.d.ts.map +1 -0
- package/dist/pages/ComponentDocsPage.js +154 -0
- package/dist/pages/ComponentDocsPage.js.map +1 -0
- package/dist/pages/ComponentsPage.d.ts +2 -0
- package/dist/pages/ComponentsPage.d.ts.map +1 -0
- package/dist/pages/ComponentsPage.js +250 -0
- package/dist/pages/ComponentsPage.js.map +1 -0
- package/dist/pages/GettingStartedPage.d.ts +16 -0
- package/dist/pages/GettingStartedPage.d.ts.map +1 -0
- package/dist/pages/GettingStartedPage.js +261 -0
- package/dist/pages/GettingStartedPage.js.map +1 -0
- package/dist/pages/HealthPage.d.ts +2 -0
- package/dist/pages/HealthPage.d.ts.map +1 -0
- package/dist/pages/HealthPage.js +383 -0
- package/dist/pages/HealthPage.js.map +1 -0
- package/dist/pages/LogsPage.d.ts +2 -0
- package/dist/pages/LogsPage.d.ts.map +1 -0
- package/dist/pages/NoteDetailsPage.d.ts +2 -0
- package/dist/pages/NoteDetailsPage.d.ts.map +1 -0
- package/dist/pages/NoteDetailsPage.js +163 -0
- package/dist/pages/NoteDetailsPage.js.map +1 -0
- package/dist/pages/OverviewPage.d.ts +9 -0
- package/dist/pages/OverviewPage.d.ts.map +1 -0
- package/dist/pages/OverviewPage.js +419 -0
- package/dist/pages/OverviewPage.js.map +1 -0
- package/dist/pages/SessionDetailsPage.d.ts +6 -0
- package/dist/pages/SessionDetailsPage.d.ts.map +1 -0
- package/dist/pages/SessionDetailsPage.js +707 -0
- package/dist/pages/SessionDetailsPage.js.map +1 -0
- package/dist/pages/SessionsPage.d.ts +6 -0
- package/dist/pages/SessionsPage.d.ts.map +1 -0
- package/dist/pages/SessionsPage.js +1382 -0
- package/dist/pages/SessionsPage.js.map +1 -0
- package/dist/pages/SettingsPage.d.ts +2 -0
- package/dist/pages/SettingsPage.d.ts.map +1 -0
- package/dist/pages/SettingsPage.js +238 -0
- package/dist/pages/SettingsPage.js.map +1 -0
- package/dist/pages/SharedSessionPage.d.ts +13 -0
- package/dist/pages/SharedSessionPage.d.ts.map +1 -0
- package/dist/pages/SharedSessionPage.js +471 -0
- package/dist/pages/SharedSessionPage.js.map +1 -0
- package/dist/pages/SharedVibeDeckPage.d.ts +8 -0
- package/dist/pages/SharedVibeDeckPage.d.ts.map +1 -0
- package/dist/pages/SharedVibeDeckPage.js +262 -0
- package/dist/pages/SharedVibeDeckPage.js.map +1 -0
- package/dist/pages/TargetDetailsPage.d.ts +13 -0
- package/dist/pages/TargetDetailsPage.d.ts.map +1 -0
- package/dist/pages/TargetDetailsPage.js +266 -0
- package/dist/pages/TargetDetailsPage.js.map +1 -0
- package/dist/pages/TargetsPage.d.ts +8 -0
- package/dist/pages/TargetsPage.d.ts.map +1 -0
- package/dist/pages/TargetsPage.js +1113 -0
- package/dist/pages/TargetsPage.js.map +1 -0
- package/dist/pages/TemplateDetailPage.d.ts +2 -0
- package/dist/pages/TemplateDetailPage.d.ts.map +1 -0
- package/dist/pages/TemplateDetailPage.js +302 -0
- package/dist/pages/TemplateDetailPage.js.map +1 -0
- package/dist/pages/TemplatesPage.d.ts +2 -0
- package/dist/pages/TemplatesPage.d.ts.map +1 -0
- package/dist/pages/TemplatesPage.js +173 -0
- package/dist/pages/TemplatesPage.js.map +1 -0
- package/dist/pages/TunnelsLandingPage.d.ts +8 -0
- package/dist/pages/TunnelsLandingPage.d.ts.map +1 -0
- package/dist/pages/TunnelsLandingPage.js +69 -0
- package/dist/pages/TunnelsLandingPage.js.map +1 -0
- package/dist/pages/VibeAuditPage.d.ts +2 -0
- package/dist/pages/VibeAuditPage.d.ts.map +1 -0
- package/dist/pages/VibeAuditPage.js +233 -0
- package/dist/pages/VibeAuditPage.js.map +1 -0
- package/dist/pages/VibeCalendarPage.d.ts +9 -0
- package/dist/pages/VibeCalendarPage.d.ts.map +1 -0
- package/dist/pages/VibeCalendarPage.js +221 -0
- package/dist/pages/VibeCalendarPage.js.map +1 -0
- package/dist/pages/VibeDeckPage.d.ts +2 -0
- package/dist/pages/VibeDeckPage.d.ts.map +1 -0
- package/dist/pages/VibeDeckPage.js +884 -0
- package/dist/pages/VibeDeckPage.js.map +1 -0
- package/dist/pages/VibeDetailsPage.d.ts +5 -0
- package/dist/pages/VibeDetailsPage.d.ts.map +1 -0
- package/dist/pages/VibeDetailsPage.js +1321 -0
- package/dist/pages/VibeDetailsPage.js.map +1 -0
- package/dist/pages/VibeDocsPage.d.ts +2 -0
- package/dist/pages/VibeDocsPage.d.ts.map +1 -0
- package/dist/pages/VibeDocsPage.js +154 -0
- package/dist/pages/VibeDocsPage.js.map +1 -0
- package/dist/pages/VibeTaskDetailPage.d.ts +9 -0
- package/dist/pages/VibeTaskDetailPage.d.ts.map +1 -0
- package/dist/pages/VibeTaskDetailPage.js +264 -0
- package/dist/pages/VibeTaskDetailPage.js.map +1 -0
- package/dist/pages/VibesPage.d.ts +5 -0
- package/dist/pages/VibesPage.d.ts.map +1 -0
- package/dist/pages/VibesPage.js +600 -0
- package/dist/pages/VibesPage.js.map +1 -0
- package/dist/pages/WebhooksPage.d.ts +5 -0
- package/dist/pages/WebhooksPage.d.ts.map +1 -0
- package/dist/pages/ai/AIPage.d.ts +6 -0
- package/dist/pages/ai/AIPage.d.ts.map +1 -0
- package/dist/pages/ai/AIPage.js +187 -0
- package/dist/pages/ai/AIPage.js.map +1 -0
- package/dist/pages/ai/AISessionDetailPage.d.ts +5 -0
- package/dist/pages/ai/AISessionDetailPage.d.ts.map +1 -0
- package/dist/pages/ai/AISessionDetailPage.js +441 -0
- package/dist/pages/ai/AISessionDetailPage.js.map +1 -0
- package/dist/pages/ai/AgentManagerPage.d.ts +9 -0
- package/dist/pages/ai/AgentManagerPage.d.ts.map +1 -0
- package/dist/pages/ai/AgentManagerPage.js +159 -0
- package/dist/pages/ai/AgentManagerPage.js.map +1 -0
- package/dist/pages/index.d.ts +17 -0
- package/dist/pages/index.d.ts.map +1 -0
- package/dist/pages/tunnels/AuditTab.d.ts +8 -0
- package/dist/pages/tunnels/AuditTab.d.ts.map +1 -0
- package/dist/pages/tunnels/AuditTab.js +22 -0
- package/dist/pages/tunnels/AuditTab.js.map +1 -0
- package/dist/pages/tunnels/DomainsTab.d.ts +2 -0
- package/dist/pages/tunnels/DomainsTab.d.ts.map +1 -0
- package/dist/pages/tunnels/DomainsTab.js +110 -0
- package/dist/pages/tunnels/DomainsTab.js.map +1 -0
- package/dist/pages/tunnels/ProvidersTab.d.ts +2 -0
- package/dist/pages/tunnels/ProvidersTab.d.ts.map +1 -0
- package/dist/pages/tunnels/ProvidersTab.js +111 -0
- package/dist/pages/tunnels/ProvidersTab.js.map +1 -0
- package/dist/pages/tunnels/SessionsTab.d.ts +8 -0
- package/dist/pages/tunnels/SessionsTab.d.ts.map +1 -0
- package/dist/pages/tunnels/SessionsTab.js +63 -0
- package/dist/pages/tunnels/SessionsTab.js.map +1 -0
- package/dist/pages/tunnels/TunnelDetailsPage.d.ts +2 -0
- package/dist/pages/tunnels/TunnelDetailsPage.d.ts.map +1 -0
- package/dist/pages/tunnels/TunnelDetailsPage.js +121 -0
- package/dist/pages/tunnels/TunnelDetailsPage.js.map +1 -0
- package/dist/pages/tunnels/TunnelsTab.d.ts +2 -0
- package/dist/pages/tunnels/TunnelsTab.d.ts.map +1 -0
- package/dist/pages/tunnels/TunnelsTab.js +174 -0
- package/dist/pages/tunnels/TunnelsTab.js.map +1 -0
- package/dist/pages/tunnels/UsageTab.d.ts +8 -0
- package/dist/pages/tunnels/UsageTab.d.ts.map +1 -0
- package/dist/pages/tunnels/UsageTab.js +22 -0
- package/dist/pages/tunnels/UsageTab.js.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelAuditTab.d.ts +4 -0
- package/dist/pages/tunnels/tabs/TunnelAuditTab.d.ts.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelAuditTab.js +68 -0
- package/dist/pages/tunnels/tabs/TunnelAuditTab.js.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelCliTab.d.ts +8 -0
- package/dist/pages/tunnels/tabs/TunnelCliTab.d.ts.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelCliTab.js +63 -0
- package/dist/pages/tunnels/tabs/TunnelCliTab.js.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelDomainsTab.d.ts +8 -0
- package/dist/pages/tunnels/tabs/TunnelDomainsTab.d.ts.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelDomainsTab.js +120 -0
- package/dist/pages/tunnels/tabs/TunnelDomainsTab.js.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelEndpointsTab.d.ts +8 -0
- package/dist/pages/tunnels/tabs/TunnelEndpointsTab.d.ts.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelEndpointsTab.js +56 -0
- package/dist/pages/tunnels/tabs/TunnelEndpointsTab.js.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelOverviewTab.d.ts +8 -0
- package/dist/pages/tunnels/tabs/TunnelOverviewTab.d.ts.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelOverviewTab.js +137 -0
- package/dist/pages/tunnels/tabs/TunnelOverviewTab.js.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelSessionsTab.d.ts +4 -0
- package/dist/pages/tunnels/tabs/TunnelSessionsTab.d.ts.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelSessionsTab.js +104 -0
- package/dist/pages/tunnels/tabs/TunnelSessionsTab.js.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelSettingsTab.d.ts +9 -0
- package/dist/pages/tunnels/tabs/TunnelSettingsTab.d.ts.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelSettingsTab.js +67 -0
- package/dist/pages/tunnels/tabs/TunnelSettingsTab.js.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelUsageTab.d.ts +4 -0
- package/dist/pages/tunnels/tabs/TunnelUsageTab.d.ts.map +1 -0
- package/dist/pages/tunnels/tabs/TunnelUsageTab.js +127 -0
- package/dist/pages/tunnels/tabs/TunnelUsageTab.js.map +1 -0
- package/dist/plugin.d.ts +4 -0
- package/dist/plugin.d.ts.map +1 -0
- package/dist/plugin.js +84 -0
- package/dist/plugin.js.map +1 -0
- package/dist/providers/AgentEventsProvider.d.ts +79 -0
- package/dist/providers/AgentEventsProvider.d.ts.map +1 -0
- package/dist/providers/AgentEventsProvider.js +42 -0
- package/dist/providers/AgentEventsProvider.js.map +1 -0
- package/dist/providers/VibeControlsProvider.d.ts +29 -0
- package/dist/providers/VibeControlsProvider.d.ts.map +1 -0
- package/dist/providers/VibeControlsProvider.js +126 -0
- package/dist/providers/VibeControlsProvider.js.map +1 -0
- package/dist/services/aiApi.d.ts +310 -0
- package/dist/services/aiApi.d.ts.map +1 -0
- package/dist/services/aiApi.js +336 -0
- package/dist/services/aiApi.js.map +1 -0
- package/dist/services/assistantApi.d.ts +71 -0
- package/dist/services/assistantApi.d.ts.map +1 -0
- package/dist/services/assistantApi.js +235 -0
- package/dist/services/assistantApi.js.map +1 -0
- package/dist/services/assistantExportService.d.ts +9 -0
- package/dist/services/assistantExportService.d.ts.map +1 -0
- package/dist/services/assistantExportService.js +44 -0
- package/dist/services/assistantExportService.js.map +1 -0
- package/dist/services/schedulerApi.d.ts +18 -0
- package/dist/services/schedulerApi.d.ts.map +1 -0
- package/dist/services/schedulerApi.js +39 -0
- package/dist/services/schedulerApi.js.map +1 -0
- package/dist/shared/hooks/useTr.d.ts +17 -0
- package/dist/shared/hooks/useTr.d.ts.map +1 -0
- package/dist/shared/hooks/useTr.js +14 -0
- package/dist/shared/hooks/useTr.js.map +1 -0
- package/dist/store/agentManagerStore.d.ts +65 -0
- package/dist/store/agentManagerStore.d.ts.map +1 -0
- package/dist/store/agentManagerStore.js +244 -0
- package/dist/store/agentManagerStore.js.map +1 -0
- package/dist/store/assistantStore.d.ts +56 -0
- package/dist/store/assistantStore.d.ts.map +1 -0
- package/dist/store/assistantStore.js +165 -0
- package/dist/store/assistantStore.js.map +1 -0
- package/dist/store/vibeControlsStore.d.ts +68 -0
- package/dist/store/vibeControlsStore.d.ts.map +1 -0
- package/dist/store/vibeControlsStore.js +123 -0
- package/dist/store/vibeControlsStore.js.map +1 -0
- package/dist/translations/en.d.ts +2174 -0
- package/dist/translations/en.d.ts.map +1 -0
- package/dist/translations/en.js +2130 -0
- package/dist/translations/en.js.map +1 -0
- package/dist/types/agentManager.d.ts +72 -0
- package/dist/types/agentManager.d.ts.map +1 -0
- package/dist/types/assistant.d.ts +58 -0
- package/dist/types/assistant.d.ts.map +1 -0
- package/dist/types/assistant.js +7 -0
- package/dist/types/assistant.js.map +1 -0
- package/dist/types/index.d.ts +134 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/utils/agentStatus.d.ts +42 -0
- package/dist/utils/agentStatus.d.ts.map +1 -0
- package/dist/utils/agentStatus.js +9 -0
- package/dist/utils/agentStatus.js.map +1 -0
- package/dist/utils/aiSessionNotFound.d.ts +2 -0
- package/dist/utils/aiSessionNotFound.d.ts.map +1 -0
- package/dist/utils/aiSessionNotFound.js +18 -0
- package/dist/utils/aiSessionNotFound.js.map +1 -0
- package/dist/utils/nativeBridge.d.ts +3 -0
- package/dist/utils/nativeBridge.d.ts.map +1 -0
- package/dist/utils/nativeBridge.js +2 -0
- package/dist/utils/pageContext.d.ts +23 -0
- package/dist/utils/pageContext.d.ts.map +1 -0
- package/dist/utils/pageContext.js +16 -0
- package/dist/utils/pageContext.js.map +1 -0
- package/dist/utils/quotaUtils.d.ts +8 -0
- package/dist/utils/quotaUtils.d.ts.map +1 -0
- package/dist/utils/quotaUtils.js +88 -0
- package/dist/utils/quotaUtils.js.map +1 -0
- package/dist/utils/relativeTime.d.ts +3 -0
- package/dist/utils/relativeTime.d.ts.map +1 -0
- package/dist/utils/relativeTime.js +24 -0
- package/dist/utils/relativeTime.js.map +1 -0
- package/package.json +127 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentDetailsPage.js","names":[],"sources":["../../src/pages/AgentDetailsPage.tsx"],"sourcesContent":["import { useState, useRef, useEffect, useCallback, useMemo } from 'react';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { VIBE_PERMISSIONS } from '../constants/permissions';\nimport { isNative, nativeCopyText, nativeToast } from '../utils/nativeBridge';\nimport { EntityTagPicker } from '@/components/shared/EntityTagPicker';\nimport { useParams } from 'react-router-dom';\nimport { MotionPage } from '@burdenoff/fe-libs/shared/motion';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { useVibeControlsStore } from '@/store/vibeControlsStore';\nimport { AgentBackupTab } from '@/components/agents/backup/AgentBackupTab';\nimport {\n ArrowLeft,\n Database,\n Server,\n Play,\n Square,\n Settings,\n Trash2,\n Terminal,\n Zap,\n Cpu,\n HardDrive,\n Clock,\n CheckCircle2,\n RefreshCw,\n Eye,\n EyeOff,\n Key,\n Copy,\n Check,\n Info,\n Puzzle,\n Download,\n X,\n Loader2,\n Shield,\n Link2,\n Unlink,\n Search,\n Monitor,\n FileText,\n Tag,\n ScrollText,\n} from 'lucide-react';\nimport {\n PageHeader,\n Card,\n StatusBadge,\n EmptyState,\n LoadingState,\n ErrorState,\n QuotaExhaustedDialog,\n} from '@/components/shared';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { PluginUIPanel, type UIPluginOption, OpenInBrowserEditorButton } from '@/components/agents';\nimport { LogViewer } from '@/components/logs/LogViewer';\nimport { NotesTabPanel } from '@/components/notes';\nimport { useVibeControls, useVibeNavigate } from '@/providers/VibeControlsProvider';\nimport { useQueryBackedTab } from '@/hooks/useQueryBackedTab';\nimport { isQuotaExhaustedError } from '@/utils/quotaUtils';\nimport {\n useGetAgentQuery,\n useAgentHeartbeatMutation,\n useUpdateAgentMutation,\n useDeleteAgentMutation,\n useCheckSessionHealthMutation,\n useAgentPluginsLazyQuery,\n useInstallAgentPluginMutation,\n useRemoveAgentPluginMutation,\n useSetupAgentGatewayAuthMutation,\n} from '@/generated/wspace-operations';\n\n// ─── Gateway Auth Card ─────────────────────────────────────────────────────\n// Shows whether the agent has a linked OAuth2 app for gateway communication.\n// Allows creating a new app via auth-svc and pushing credentials to the agent.\n\ninterface GatewayAuthAgent {\n id: string;\n name: string;\n appId?: string | null;\n appClientId?: string | null;\n tunnelUrl?: string | null;\n agentApiKey?: string | null;\n metadata?: Record<string, unknown> | null;\n}\n\nfunction GatewayAuthCard({ agent, onUpdate }: { agent: GatewayAuthAgent; onUpdate: () => void }) {\n const { t } = useI18n();\n const [updateAgent] = useUpdateAgentMutation();\n const [setupGatewayAuth] = useSetupAgentGatewayAuthMutation();\n const [loading, setLoading] = useState(false);\n const [error, setError] = useState<string | null>(null);\n const [showSecret, setShowSecret] = useState(false);\n const [oneTimeSecret, setOneTimeSecret] = useState<string | null>(null);\n const [secretCopied, setSecretCopied] = useState(false);\n const [clientIdCopied, setClientIdCopied] = useState(false);\n const [unlinking, setUnlinking] = useState(false);\n\n const hasApp = Boolean(agent.appId && agent.appClientId);\n\n const tr = (key: string, fallback: string, params?: Record<string, string | number>): string => {\n const translated = t(key, params);\n const template = translated === key ? fallback : translated;\n\n if (!params) return template;\n\n return Object.entries(params).reduce(\n (acc, [paramKey, paramValue]) => acc.replace(`{{${paramKey}}}`, String(paramValue)),\n template\n );\n };\n const devportalAppId = (agent.metadata as Record<string, unknown> | null)\n ?.devportalApplicationId as string | undefined;\n\n // Single backend-orchestrated mutation: creates auth-svc app + devportal app + pushes creds to agent\n const handleSetupGatewayAuth = async () => {\n setLoading(true);\n setError(null);\n\n try {\n const { data } = await setupGatewayAuth({\n variables: {\n input: {\n agentId: agent.id,\n },\n },\n });\n\n const result = data?.setupAgentGatewayAuth;\n if (!result) {\n throw new Error(\n tr(\n 'agentDetails.gatewayAuthNoResultError',\n 'No result returned from setupAgentGatewayAuth'\n )\n );\n }\n\n // Show the one-time secret\n setOneTimeSecret(result.clientSecret);\n\n // Show warning if push to agent failed (creds still created)\n if (result.error) {\n setError(result.error);\n }\n\n onUpdate();\n } catch (err) {\n setError(\n err instanceof Error\n ? err.message\n : tr('agentDetails.failedSetupGatewayAuth', 'Failed to set up gateway auth')\n );\n } finally {\n setLoading(false);\n }\n };\n\n // Unlink the app (remove appId/appClientId from agent record)\n const handleUnlink = async () => {\n if (\n !window.confirm(\n tr(\n 'agentDetails.confirmUnlinkOauthApp',\n 'Remove the linked OAuth app from this agent? The app will still exist in auth-svc.'\n )\n )\n )\n return;\n setUnlinking(true);\n setError(null);\n try {\n await updateAgent({\n variables: {\n id: agent.id,\n input: { appId: null, appClientId: null },\n },\n });\n setOneTimeSecret(null);\n onUpdate();\n } catch (err) {\n setError(\n err instanceof Error\n ? err.message\n : tr('agentDetails.failedUnlinkApp', 'Failed to unlink app')\n );\n } finally {\n setUnlinking(false);\n }\n };\n\n const handleCopyClientId = async () => {\n if (!agent.appClientId) return;\n try {\n await nativeCopyText(agent.appClientId);\n if (isNative()) void nativeToast('Copied');\n setClientIdCopied(true);\n setTimeout(() => setClientIdCopied(false), 2000);\n } catch {\n // Non-HTTPS fallback\n }\n };\n\n const handleCopySecret = async () => {\n if (!oneTimeSecret) return;\n try {\n await nativeCopyText(oneTimeSecret);\n if (isNative()) void nativeToast('Secret copied');\n setSecretCopied(true);\n setTimeout(() => setSecretCopied(false), 2000);\n } catch {\n // Non-HTTPS fallback\n }\n };\n\n return (\n <Card>\n <div className=\"p-4 border-b border-border-default\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <Shield className=\"w-5 h-5\" />\n {tr('agentDetails.gatewayAuthTitle', 'Gateway Auth (OAuth2)')}\n </h3>\n </div>\n <div className=\"p-4 space-y-3\">\n {error && (\n <div className=\"flex items-center gap-2 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm\">\n <X className=\"w-4 h-4 flex-shrink-0\" />\n <span className=\"flex-1\">{error}</span>\n <button\n onClick={() => setError(null)}\n className=\"flex-shrink-0 p-0.5 hover:bg-status-error-text/10 rounded\"\n >\n <X className=\"w-3.5 h-3.5\" />\n </button>\n </div>\n )}\n\n {hasApp ? (\n <>\n {/* Linked app info */}\n <div className=\"flex items-start gap-3\">\n <div className=\"w-8 h-8 rounded-lg bg-status-success-bg flex items-center justify-center flex-shrink-0 mt-0.5\">\n <Link2 className=\"w-4 h-4 text-status-success-text\" />\n </div>\n <div className=\"flex-1 min-w-0 space-y-2\">\n <div>\n <p className=\"text-sm font-medium text-text-primary\">\n {tr('agentDetails.linkedToOauthApp', 'Linked to OAuth App')}\n </p>\n <p className=\"text-xs text-text-muted\">\n {tr(\n 'agentDetails.gatewayAuthLinkedDescription',\n 'This agent can authenticate with the API gateway using Client Credentials.'\n )}\n </p>\n </div>\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-3\">\n <div>\n <p className=\"text-xs text-text-secondary mb-1\">\n {tr('agentDetails.clientId', 'Client ID')}\n </p>\n <div className=\"flex items-center gap-2\">\n <code className=\"text-xs font-mono text-text-primary bg-bg-sunken px-2 py-1 rounded truncate block flex-1\">\n {agent.appClientId}\n </code>\n <button\n onClick={handleCopyClientId}\n className=\"p-1 rounded hover:bg-bg-sunken transition-colors flex-shrink-0\"\n title={tr('agentDetails.copyClientId', 'Copy Client ID')}\n >\n {clientIdCopied ? (\n <Check className=\"w-3.5 h-3.5 text-status-success-text\" />\n ) : (\n <Copy className=\"w-3.5 h-3.5 text-text-secondary\" />\n )}\n </button>\n </div>\n </div>\n <div>\n <p className=\"text-xs text-text-secondary mb-1\">\n {tr('agentDetails.appId', 'App ID')}\n </p>\n <code className=\"text-xs font-mono text-text-muted bg-bg-sunken px-2 py-1 rounded truncate block\">\n {agent.appId}\n </code>\n </div>\n </div>\n </div>\n </div>\n\n {/* One-time secret display */}\n {oneTimeSecret && (\n <div className=\"p-3 bg-status-warning-bg/20 border border-status-warning-text/20 rounded-lg space-y-2\">\n <p className=\"text-sm font-medium text-status-warning-text\">\n {tr('agentDetails.clientSecretOneTimeTitle', 'Client Secret (one-time display)')}\n </p>\n <p className=\"text-xs text-text-secondary\">\n {tr(\n 'agentDetails.clientSecretOneTimeDescription',\n \"This secret has been automatically sent to the agent. Save it now if you need it — it won't be shown again.\"\n )}\n </p>\n <div className=\"flex items-center gap-2\">\n <code className=\"text-xs font-mono text-text-primary bg-bg-sunken px-2 py-1 rounded flex-1 truncate\">\n {showSecret ? oneTimeSecret : '\\u2022'.repeat(32)}\n </code>\n <button\n onClick={() => setShowSecret(!showSecret)}\n className=\"p-1 rounded hover:bg-bg-sunken transition-colors flex-shrink-0\"\n >\n {showSecret ? (\n <EyeOff className=\"w-3.5 h-3.5 text-text-secondary\" />\n ) : (\n <Eye className=\"w-3.5 h-3.5 text-text-secondary\" />\n )}\n </button>\n <button\n onClick={handleCopySecret}\n className=\"p-1 rounded hover:bg-bg-sunken transition-colors flex-shrink-0\"\n >\n {secretCopied ? (\n <Check className=\"w-3.5 h-3.5 text-status-success-text\" />\n ) : (\n <Copy className=\"w-3.5 h-3.5 text-text-secondary\" />\n )}\n </button>\n </div>\n </div>\n )}\n\n {/* Actions */}\n <div className=\"flex items-center gap-2\">\n {devportalAppId && (\n <a\n href={`/devportal/apps/${devportalAppId}`}\n className=\"flex items-center gap-2 px-3 py-1.5 text-xs text-action-primary-bg bg-action-primary-bg/10 hover:bg-action-primary-bg/20 rounded-md transition-colors\"\n >\n <Monitor className=\"w-3 h-3\" />\n {tr('agentDetails.viewInDeveloperPortal', 'View in Developer Portal')}\n </a>\n )}\n <button\n onClick={handleUnlink}\n disabled={unlinking}\n className=\"flex items-center gap-2 px-3 py-1.5 text-xs text-status-error-text hover:bg-status-error-bg rounded-md transition-colors disabled:opacity-50\"\n >\n {unlinking ? (\n <Loader2 className=\"w-3 h-3 animate-spin\" />\n ) : (\n <Unlink className=\"w-3 h-3\" />\n )}\n {tr('agentDetails.unlinkApp', 'Unlink App')}\n </button>\n </div>\n </>\n ) : (\n <>\n {/* No app linked */}\n <div className=\"flex items-start gap-3\">\n <div className=\"w-8 h-8 rounded-lg bg-bg-sunken flex items-center justify-center flex-shrink-0 mt-0.5\">\n <Shield className=\"w-4 h-4 text-text-muted\" />\n </div>\n <div className=\"flex-1\">\n <p className=\"text-sm font-medium text-text-primary\">\n {tr('agentDetails.noOauthAppLinked', 'No OAuth App Linked')}\n </p>\n <p className=\"text-xs text-text-muted mt-0.5\">\n {tr(\n 'agentDetails.gatewayAuthSetupDescription',\n 'Set up gateway auth to allow this agent to communicate with the API gateways using OAuth2 Client Credentials. This creates an OAuth app, registers it in the Developer Portal, and pushes the credentials to the agent.'\n )}\n </p>\n </div>\n </div>\n\n <button\n onClick={handleSetupGatewayAuth}\n disabled={loading}\n className=\"flex items-center gap-2 px-4 py-2 text-sm font-medium text-action-primary-text bg-action-primary-bg rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50\"\n >\n {loading ? (\n <>\n <Loader2 className=\"w-4 h-4 animate-spin\" />\n {tr('agentDetails.settingUp', 'Setting up...')}\n </>\n ) : (\n <>\n <Link2 className=\"w-4 h-4\" />\n {tr('agentDetails.setupGatewayAuth', 'Setup Gateway Auth')}\n </>\n )}\n </button>\n </>\n )}\n </div>\n </Card>\n );\n}\n\n/**\n * Agent details page - shows comprehensive information about a single agent\n */\nexport function AgentDetailsPage() {\n const { t } = useI18n();\n const { id } = useParams<{ id: string }>();\n const { basePath: basePathProp } = useVibeControls();\n const basePath = basePathProp || '';\n const navigate = useVibeNavigate();\n const { hasPermission, isLoading: permissionsLoading } = usePermissions();\n\n const tr = useCallback(\n (key: string, fallback: string, params?: Record<string, string | number>): string => {\n const translated = t(key, params);\n const template = translated === key ? fallback : translated;\n\n if (!params) return template;\n\n return Object.entries(params).reduce(\n (acc, [paramKey, paramValue]) => acc.replace(`{{${paramKey}}}`, String(paramValue)),\n template\n );\n },\n [t]\n );\n\n const [agentHeartbeat] = useAgentHeartbeatMutation({ refetchQueries: ['GetAgent'] });\n const [updateAgent] = useUpdateAgentMutation({ refetchQueries: ['GetAgent'] });\n const [deleteAgent] = useDeleteAgentMutation();\n const [checkSessionHealth] = useCheckSessionHealthMutation({ refetchQueries: ['GetAgent'] });\n\n // ── Sync active context ────────────────────────────────────────────────\n const setActiveAgentId = useVibeControlsStore((s) => s.setActiveAgentId);\n useEffect(() => {\n if (id) setActiveAgentId(id);\n }, [id, setActiveAgentId]);\n\n // ── Tab Navigation ───────────────────────────────────────────────────\n type AgentTab =\n | 'overview'\n | 'security'\n | 'plugins'\n | 'sessions'\n | 'logs'\n | 'vibes'\n | 'notes'\n | 'backup';\n const agentTabIds: readonly AgentTab[] = [\n 'overview',\n 'security',\n 'plugins',\n 'sessions',\n 'logs',\n 'vibes',\n 'notes',\n 'backup',\n ];\n const [activeTab, setActiveTab] = useQueryBackedTab<AgentTab>(agentTabIds, 'overview');\n\n // Configuration modal state\n const [showConfigModal, setShowConfigModal] = useState(false);\n const [configError, setConfigError] = useState<string | null>(null);\n const [configLoading, setConfigLoading] = useState(false);\n const [successMessage, setSuccessMessage] = useState<string | null>(null);\n const [showAiContextInfo, setShowAiContextInfo] = useState(false);\n\n // Config form refs\n const agentNameRef = useRef<HTMLInputElement>(null);\n const agentTunnelUrlRef = useRef<HTMLInputElement>(null);\n const agentApiKeyRef = useRef<HTMLInputElement>(null);\n const agentAiContextRef = useRef<HTMLTextAreaElement>(null);\n const agentMetadataRef = useRef<HTMLTextAreaElement>(null);\n const [showApiKey, setShowApiKey] = useState(false);\n const [apiKeyCopied, setApiKeyCopied] = useState(false);\n\n // Fetch agent by ID from GraphQL API\n const { data, loading, error, refetch } = useGetAgentQuery({\n variables: { id: id || '' },\n skip: !id,\n fetchPolicy: 'cache-and-network',\n });\n\n // Get agent from response\n const agent = data?.vibecontrolsAgent;\n\n // On mount, run a health check to sync stale session states with agent reality\n const healthCheckRanRef = useRef(false);\n useEffect(() => {\n if (agent && !healthCheckRanRef.current) {\n healthCheckRanRef.current = true;\n checkSessionHealth().catch(() => {\n // Best-effort — don't block the page if health check fails\n });\n }\n }, [agent, checkSessionHealth]);\n\n // ── Plugin Management (via backend GraphQL proxy) ──────────────────\n interface InstalledPlugin {\n packageName: string;\n pluginName: string;\n version: string;\n installedAt: string;\n loaded: boolean;\n description?: string;\n tags?: string[];\n isCore: boolean;\n cliCommand?: string;\n apiPrefix?: string;\n hasUI: boolean;\n hasCliSetup: boolean;\n hasServerStart: boolean;\n hasServerStop: boolean;\n hasServerReady: boolean;\n hasProviders: boolean;\n }\n interface AvailablePlugin {\n packageName: string;\n name: string;\n description: string;\n version: string;\n tags: string[];\n installed: boolean;\n }\n\n const [installedPlugins, setInstalledPlugins] = useState<InstalledPlugin[]>([]);\n const [availablePlugins, setAvailablePlugins] = useState<AvailablePlugin[]>([]);\n const [pluginsLoading, setPluginsLoading] = useState(true);\n const [pluginActionLoading, setPluginActionLoading] = useState<string | null>(null);\n const [pluginError, setPluginError] = useState<string | null>(null);\n const [showQuotaExhausted, setShowQuotaExhausted] = useState(false);\n const pluginsFetchedRef = useRef(false);\n\n // ── Plugin Sub-Tabs & Search ──────────────────────────────────────\n type PluginSubTab = 'installed' | 'available' | 'store' | 'ui-plugins';\n const [pluginSubTab, setPluginSubTab] = useState<PluginSubTab>('installed');\n const [pluginSearchQuery, setPluginSearchQuery] = useState('');\n\n // ── Store Plugins ─────────────────────────────────────────────────\n type StoreEntitlement = {\n id: string;\n productId: string;\n licenseKey: string | null;\n product: {\n id: string;\n name: string;\n slug: string;\n icon: string | null;\n description: string | null;\n manifest: Record<string, unknown> | null;\n } | null;\n };\n const [storePlugins, setStorePlugins] = useState<StoreEntitlement[]>([]);\n const [storePluginsLoading, setStorePluginsLoading] = useState(false);\n const [storePluginsError, setStorePluginsError] = useState<string | null>(null);\n const [storeInstallingId, setStoreInstallingId] = useState<string | null>(null);\n\n // Backend-proxied plugin operations\n const [fetchAgentPlugins] = useAgentPluginsLazyQuery();\n const [installPluginMutation] = useInstallAgentPluginMutation();\n const [removePluginMutation] = useRemoveAgentPluginMutation();\n\n const fetchPlugins = useCallback(async () => {\n if (!agent?.id) return;\n setPluginsLoading(true);\n setPluginError(null);\n try {\n const { data } = await fetchAgentPlugins({ variables: { agentId: agent.id } });\n const result = data?.agentPlugins;\n if (result) {\n const installed = (result.installed || []).map(\n (p: {\n packageName: string;\n pluginName: string;\n version: string;\n installedAt?: string | null;\n loaded: boolean;\n description?: string | null;\n tags?: (string | null)[] | null;\n isCore: boolean;\n cliCommand?: string | null;\n apiPrefix?: string | null;\n hasUI: boolean;\n hasCliSetup: boolean;\n hasServerStart: boolean;\n hasServerStop: boolean;\n hasServerReady: boolean;\n hasProviders: boolean;\n }) => ({\n packageName: p.packageName,\n pluginName: p.pluginName,\n version: p.version,\n installedAt: p.installedAt || '',\n loaded: p.loaded,\n description: p.description ?? undefined,\n tags: (p.tags?.filter(Boolean) as string[]) ?? undefined,\n isCore: p.isCore,\n cliCommand: p.cliCommand ?? undefined,\n apiPrefix: p.apiPrefix ?? undefined,\n hasUI: p.hasUI,\n hasCliSetup: p.hasCliSetup,\n hasServerStart: p.hasServerStart,\n hasServerStop: p.hasServerStop,\n hasServerReady: p.hasServerReady,\n hasProviders: p.hasProviders,\n })\n );\n const available = (result.available || []).map(\n (p: {\n packageName: string;\n name: string;\n description: string;\n version: string;\n tags: string[];\n installed: boolean;\n }) => ({\n packageName: p.packageName,\n name: p.name,\n description: p.description,\n version: p.version,\n tags: [...p.tags],\n installed: p.installed,\n })\n );\n setInstalledPlugins(installed);\n setAvailablePlugins(available);\n if (result.error) {\n setPluginError(result.error);\n }\n }\n } catch {\n // Agent unreachable — show error state\n setPluginError('Agent unreachable — unable to fetch plugin list');\n } finally {\n setPluginsLoading(false);\n }\n }, [agent?.id, fetchAgentPlugins]);\n\n // Attempt to fetch live plugins when agent data loads.\n // If the agent is unreachable, an error state is shown instead of fake data.\n useEffect(() => {\n if (agent?.id && !pluginsFetchedRef.current) {\n pluginsFetchedRef.current = true;\n fetchPlugins();\n }\n }, [agent?.id, fetchPlugins]);\n\n const handleInstallPlugin = useCallback(\n async (packageName: string) => {\n if (!agent?.id) return;\n setPluginActionLoading(packageName);\n try {\n const { data } = await installPluginMutation({\n variables: { agentId: agent.id, packageName },\n });\n if (data?.installAgentPlugin?.success) {\n await fetchPlugins();\n } else {\n throw new Error(\n data?.installAgentPlugin?.error || tr('agentDetails.installFailed', 'Install failed')\n );\n }\n } catch (err) {\n if (isQuotaExhaustedError(err)) {\n setShowQuotaExhausted(true);\n return;\n }\n\n setPluginError(\n err instanceof Error\n ? err.message\n : tr('agentDetails.pluginInstallFailed', 'Failed to install plugin')\n );\n setTimeout(() => setPluginError(null), 5000);\n } finally {\n setPluginActionLoading(null);\n }\n },\n [agent?.id, installPluginMutation, fetchPlugins, tr]\n );\n\n const handleRemovePlugin = useCallback(\n async (packageName: string) => {\n if (!agent?.id) return;\n if (\n !window.confirm(\n tr('agentDetails.removePluginConfirm', 'Remove plugin {{packageName}}?', { packageName })\n )\n )\n return;\n setPluginActionLoading(packageName);\n try {\n const { data } = await removePluginMutation({\n variables: { agentId: agent.id, packageName },\n });\n if (data?.removeAgentPlugin?.success) {\n await fetchPlugins();\n } else {\n throw new Error(\n data?.removeAgentPlugin?.error || tr('agentDetails.removeFailed', 'Remove failed')\n );\n }\n } catch (err) {\n setPluginError(\n err instanceof Error\n ? err.message\n : tr('agentDetails.pluginRemoveFailed', 'Failed to remove plugin')\n );\n setTimeout(() => setPluginError(null), 5000);\n } finally {\n setPluginActionLoading(null);\n }\n },\n [agent?.id, removePluginMutation, fetchPlugins, tr]\n );\n\n // Get sessions and vibes from the agent response (already included in the query)\n const agentSessions = agent?.sessions || [];\n const agentVibes = agent?.vibes || [];\n\n // ── Store plugin fetch / install ──────────────────────────────────\n const fetchStorePlugins = useCallback(async () => {\n setStorePluginsLoading(true);\n setStorePluginsError(null);\n try {\n const response = await fetch(\n (typeof window !== 'undefined' &&\n (window as { __BURDENOFF_GLOBAL_GATEWAY__?: string }).__BURDENOFF_GLOBAL_GATEWAY__) ||\n '/global/graphql',\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n credentials: 'include',\n body: JSON.stringify({\n query: `query MyStorePlugins {\n myEntitlements {\n id\n productId\n licenseKey\n product {\n id\n name\n slug\n icon\n description\n manifest\n }\n }\n }`,\n }),\n }\n );\n const body = (await response.json()) as {\n data?: { myEntitlements?: StoreEntitlement[] };\n errors?: Array<{ message: string }>;\n };\n if (body.errors?.length)\n throw new Error(body.errors[0]?.message ?? 'Failed to load store plugins');\n const plugins = (body.data?.myEntitlements ?? []).filter((e) => {\n const manifest = e.product?.manifest as Record<string, unknown> | null;\n if (!manifest) return false;\n const itemType = (manifest['itemType'] as string | undefined)?.toLowerCase();\n return itemType === 'vibemodule' || itemType === 'plugin';\n });\n setStorePlugins(plugins);\n } catch (err) {\n setStorePluginsError(err instanceof Error ? err.message : 'Failed to load store plugins');\n } finally {\n setStorePluginsLoading(false);\n }\n }, []);\n\n useEffect(() => {\n if (pluginSubTab === 'store' && storePlugins.length === 0 && !storePluginsLoading) {\n void fetchStorePlugins();\n }\n }, [pluginSubTab, storePlugins.length, storePluginsLoading, fetchStorePlugins]);\n\n const handleInstallStorePlugin = useCallback(\n async (productId: string, licenseKey: string | null) => {\n if (!agent?.id) return;\n setStoreInstallingId(productId);\n try {\n const response = await fetch(\n (typeof window !== 'undefined' &&\n (window as { __BURDENOFF_WSPACE_GATEWAY__?: string }).__BURDENOFF_WSPACE_GATEWAY__) ||\n '/workspaces/graphql',\n {\n method: 'POST',\n headers: { 'Content-Type': 'application/json' },\n credentials: 'include',\n body: JSON.stringify({\n query: `mutation InstallStorePlugin($agentId: ID!, $productId: ID!, $licenseKey: String) {\n installStorePluginOnAgent(agentId: $agentId, productId: $productId, licenseKey: $licenseKey) {\n success\n error\n }\n }`,\n variables: { agentId: agent.id, productId, licenseKey },\n }),\n }\n );\n const body = (await response.json()) as {\n data?: {\n installStorePluginOnAgent?: { success: boolean; error: string | null };\n };\n errors?: Array<{ message: string }>;\n };\n if (body.errors?.length) throw new Error(body.errors[0]?.message ?? 'Install failed');\n const result = body.data?.installStorePluginOnAgent;\n if (!result?.success) {\n throw new Error(result?.error ?? 'Install failed');\n }\n await fetchPlugins();\n setPluginSubTab('installed');\n } catch (err) {\n setStorePluginsError(err instanceof Error ? err.message : 'Install failed');\n } finally {\n setStoreInstallingId(null);\n }\n },\n [agent?.id, fetchPlugins]\n );\n\n // Handle ?install=<productId>&licenseKey=... on page load — automatic install flow\n // when the user arrives here from OrderConfirmationPage\n useEffect(() => {\n if (typeof window === 'undefined' || !agent?.id) return;\n const params = new URLSearchParams(window.location.search);\n const productId = params.get('install');\n const licenseKey = params.get('licenseKey');\n if (productId && productId !== storeInstallingId) {\n setPluginSubTab('store');\n void handleInstallStorePlugin(productId, licenseKey);\n // Clear the query params after initiating\n const url = new URL(window.location.href);\n url.searchParams.delete('install');\n url.searchParams.delete('licenseKey');\n window.history.replaceState({}, '', url.toString());\n }\n }, [agent?.id, handleInstallStorePlugin, storeInstallingId]);\n\n if (permissionsLoading)\n return (\n <div className=\"flex items-center justify-center min-h-[400px]\">\n <p className=\"text-text-secondary\">Loading permissions...</p>\n </div>\n );\n if (!hasPermission(VIBE_PERMISSIONS.AGENT_READ))\n return (\n <div className=\"flex items-center justify-center min-h-[400px]\">\n <div className=\"text-center space-y-2\">\n <h2 className=\"text-lg font-semibold text-foreground\">Access Denied</h2>\n <p className=\"text-sm text-text-secondary\">\n You don't have permission to access this page.\n </p>\n </div>\n </div>\n );\n\n const handleBack = () => {\n navigate('/agents');\n };\n\n const handleStartAgent = async () => {\n if (!agent?.id) return;\n try {\n await agentHeartbeat({ variables: { id: agent.id } });\n } catch (err) {\n console.error('Failed to start agent:', err);\n }\n };\n\n const handleStopAgent = async () => {\n if (!agent?.id) return;\n try {\n await updateAgent({\n variables: { id: agent.id, input: { metadata: { status: 'inactive' } } },\n });\n } catch (err) {\n console.error('Failed to stop agent:', err);\n }\n };\n\n const handleConfigureAgent = () => {\n setConfigError(null);\n setShowConfigModal(true);\n };\n\n const handleSubmitConfig = async () => {\n if (!agent?.id) return;\n\n const name = agentNameRef.current?.value?.trim();\n const tunnelUrl = agentTunnelUrlRef.current?.value?.trim();\n const agentApiKey = agentApiKeyRef.current?.value?.trim();\n const aiContext = agentAiContextRef.current?.value?.trim();\n const metadataStr = agentMetadataRef.current?.value?.trim();\n\n if (!name) {\n setConfigError(tr('agentDetails.agentNameRequired', 'Agent name is required'));\n return;\n }\n\n let metadata: Record<string, unknown> | undefined;\n if (metadataStr) {\n try {\n metadata = JSON.parse(metadataStr);\n } catch {\n setConfigError(tr('agentDetails.metadataJsonRequired', 'Metadata must be valid JSON'));\n return;\n }\n }\n\n setConfigLoading(true);\n setConfigError(null);\n try {\n await updateAgent({\n variables: {\n id: agent.id,\n input: {\n name,\n ...(tunnelUrl !== undefined ? { tunnelUrl: tunnelUrl || null } : {}),\n ...(agentApiKey !== undefined ? { agentApiKey: agentApiKey || null } : {}),\n aiContext: aiContext || null,\n metadata,\n },\n },\n });\n setShowConfigModal(false);\n setSuccessMessage(\n tr('agentDetails.configurationUpdated', 'Agent configuration updated successfully')\n );\n setTimeout(() => setSuccessMessage(null), 3000);\n } catch (err) {\n setConfigError(\n err instanceof Error\n ? err.message\n : tr('agentDetails.configurationUpdateFailed', 'Failed to update agent configuration')\n );\n } finally {\n setConfigLoading(false);\n }\n };\n\n const handleCopyApiKey = async () => {\n if (!agent?.agentApiKey) return;\n try {\n await nativeCopyText(agent.agentApiKey);\n if (isNative()) void nativeToast('API key copied');\n setApiKeyCopied(true);\n setTimeout(() => setApiKeyCopied(false), 2000);\n } catch {\n // Fallback for non-HTTPS contexts\n console.error('Failed to copy API key');\n }\n };\n\n const handleRemoveAgent = async () => {\n if (!agent?.id) return;\n if (\n !window.confirm(\n tr('agentDetails.removeAgentConfirm', 'Are you sure you want to remove agent \"{{name}}\"?', {\n name: agent.name,\n })\n )\n )\n return;\n try {\n await deleteAgent({ variables: { id: agent.id } });\n handleBack();\n } catch (err) {\n console.error('Failed to remove agent:', err);\n }\n };\n\n const handleSessionClick = (sessionId: string) => {\n navigate(`/sessions/${sessionId}`);\n };\n\n const handleVibeClick = (vibeId: string) => {\n navigate(`/vibes/${vibeId}`);\n };\n\n const formatTimestamp = (timestamp: string | null | undefined) => {\n if (!timestamp) return tr('health.never', 'Never');\n const diff = Date.now() - new Date(timestamp).getTime();\n if (diff < 60000) return tr('health.justNow', 'Just now');\n if (diff < 3600000) {\n return tr('agentDetails.minutesAgo', '{{count}}m ago', {\n count: Math.floor(diff / 60000),\n });\n }\n if (diff < 86400000) {\n return tr('agentDetails.hoursAgo', '{{count}}h ago', {\n count: Math.floor(diff / 3600000),\n });\n }\n return new Date(timestamp).toLocaleDateString();\n };\n\n // Loading state - wrapped in MotionPage to prevent unmount/remount animation replay\n if (loading && !agent) {\n return (\n <MotionPage className=\"space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen\">\n <button\n onClick={handleBack}\n className=\"flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors\"\n >\n <ArrowLeft className=\"w-4 h-4\" />\n {tr('agentDetails.backToAgents', 'Back to Agents')}\n </button>\n <LoadingState message={tr('agentDetails.loadingDetails', 'Loading agent details...')} />\n </MotionPage>\n );\n }\n\n // Error state\n if (error && !agent) {\n return (\n <MotionPage className=\"space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen\">\n <button\n onClick={handleBack}\n className=\"flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors\"\n >\n <ArrowLeft className=\"w-4 h-4\" />\n {tr('agentDetails.backToAgents', 'Back to Agents')}\n </button>\n <ErrorState\n title={tr('agentDetails.failedLoad', 'Failed to load agent')}\n message={error.message}\n onRetry={() => refetch()}\n />\n </MotionPage>\n );\n }\n\n // Not found state\n if (!agent) {\n return (\n <MotionPage className=\"space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen\">\n <button\n onClick={handleBack}\n className=\"flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors\"\n >\n <ArrowLeft className=\"w-4 h-4\" />\n {tr('agentDetails.backToAgents', 'Back to Agents')}\n </button>\n <EmptyState\n icon={<Server className=\"w-8 h-8 text-text-secondary\" />}\n title={tr('agentDetails.notFound', 'Agent not found')}\n description={`${tr('agentDetails.notFoundDescriptionPrefix', 'No agent with ID')} \"${id}\" ${tr('agentDetails.notFoundDescriptionSuffix', 'exists')}`}\n action={\n <button\n onClick={handleBack}\n className=\"px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors\"\n >\n {tr('agentDetails.backToAgents', 'Back to Agents')}\n </button>\n }\n />\n </MotionPage>\n );\n }\n\n const agentTabs: { id: AgentTab; label: string; icon: typeof Server; badge?: string }[] = [\n { id: 'overview', label: tr('nav.overview', 'Overview'), icon: Server },\n { id: 'security', label: tr('agentDetails.security', 'Security'), icon: Shield },\n {\n id: 'plugins',\n label: tr('agentDetails.plugins', 'Plugins'),\n icon: Puzzle,\n badge: `${installedPlugins.length}`,\n },\n {\n id: 'sessions',\n label: tr('nav.sessions', 'Sessions'),\n icon: Terminal,\n badge: `${agentSessions.length}`,\n },\n {\n id: 'logs',\n label: tr('nav.logs', 'Logs'),\n icon: ScrollText,\n },\n {\n id: 'vibes',\n label: tr('nav.vibes', 'Vibes'),\n icon: Zap,\n badge: `${agentVibes.length}`,\n },\n {\n id: 'notes',\n label: tr('vibeDetails.notes', 'Notes'),\n icon: FileText,\n },\n {\n id: 'backup',\n label: tr('agentDetails.backup', 'Backup'),\n icon: Database,\n },\n ];\n\n // Types for sessions and vibes from the query\n type SessionItem = NonNullable<typeof agentSessions>[number];\n type VibeItem = NonNullable<typeof agentVibes>[number];\n\n // Stats\n const runningSessions = agentSessions.filter((s: SessionItem) => s.status === 'RUNNING').length;\n // Declared here (rather than inside JSX) because it's used in the backup tab panel below.\n const backupTunnelUrl = agent?.tunnelUrl;\n return (\n <MotionPage className=\"space-y-6 p-4 sm:p-6 bg-bg-surface min-h-screen\">\n {/* Success Toast */}\n {successMessage && (\n <div className=\"fixed top-4 left-4 right-4 sm:left-auto z-50 bg-status-success-bg text-status-success-text px-4 py-3 rounded-md shadow-lg\">\n {successMessage}\n </div>\n )}\n\n {/* Back Button */}\n <button\n onClick={handleBack}\n className=\"flex items-center gap-2 text-text-secondary hover:text-text-primary transition-colors\"\n >\n <ArrowLeft className=\"w-4 h-4\" />\n {tr('agentDetails.backToAgents', 'Back to Agents')}\n </button>\n\n {/* Header */}\n <PageHeader\n title={agent.name}\n description={\n agent.hostname || tr('agentDetails.noHostnameConfigured', 'No hostname configured')\n }\n breadcrumb={[\n { label: tr('nav.agents', 'Agents'), path: basePath ? `${basePath}/agents` : '/agents' },\n { label: agent.name },\n ]}\n actions={\n <div className=\"flex flex-wrap items-center gap-2\">\n <button\n onClick={() => refetch()}\n disabled={loading}\n className=\"flex items-center gap-2 px-3 py-2 bg-bg-sunken text-text-primary rounded-md hover:bg-bg-sunken/80 transition-colors disabled:opacity-50\"\n title={tr('common.refresh', 'Refresh')}\n >\n <RefreshCw className={`w-4 h-4 ${loading ? 'animate-spin' : ''}`} />\n </button>\n {agent.isActive ? (\n <button\n onClick={handleStopAgent}\n className=\"flex items-center gap-2 px-3 py-2 bg-bg-sunken text-text-primary rounded-md hover:bg-bg-sunken/80 transition-colors\"\n >\n <Square className=\"w-4 h-4\" />\n {tr('sessions.stop', 'Stop')}\n </button>\n ) : (\n <button\n onClick={handleStartAgent}\n className=\"flex items-center gap-2 px-3 py-2 bg-status-success-bg text-status-success-text rounded-md hover:opacity-80 transition-colors\"\n >\n <Play className=\"w-4 h-4\" />\n {tr('agentDetails.start', 'Start')}\n </button>\n )}\n <OpenInBrowserEditorButton\n tunnelUrl={agent.tunnelUrl || null}\n agentApiKey={agent.agentApiKey || null}\n />\n <button\n onClick={handleConfigureAgent}\n className=\"flex items-center gap-2 px-3 py-2 bg-bg-sunken text-text-primary rounded-md hover:bg-bg-sunken/80 transition-colors\"\n >\n <Settings className=\"w-4 h-4\" />\n {tr('agentDetails.configure', 'Configure')}\n </button>\n <button\n onClick={handleRemoveAgent}\n className=\"flex items-center gap-2 px-3 py-2 bg-status-error-bg text-status-error-text rounded-md hover:opacity-80 transition-colors\"\n >\n <Trash2 className=\"w-4 h-4\" />\n {tr('sessions.remove', 'Remove')}\n </button>\n </div>\n }\n />\n\n {/* Status Cards */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4\">\n <Card className=\"p-4\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-10 h-10 rounded-lg bg-bg-sunken flex items-center justify-center\">\n <Server className=\"w-5 h-5 text-text-secondary\" />\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">{tr('sessions.filterStatus', 'Status')}</p>\n <StatusBadge status={agent.isActive ? 'ACTIVE' : 'OFFLINE'} size=\"md\" />\n </div>\n </div>\n </Card>\n <Card className=\"p-4\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-10 h-10 rounded-lg bg-bg-sunken flex items-center justify-center\">\n <Cpu className=\"w-5 h-5 text-text-secondary\" />\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">{tr('analytics.platform', 'Platform')}</p>\n <p className=\"font-semibold text-text-primary\">\n {agent.platform}/{agent.architecture}\n </p>\n </div>\n </div>\n </Card>\n <Card className=\"p-4\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-10 h-10 rounded-lg bg-bg-sunken flex items-center justify-center\">\n <HardDrive className=\"w-5 h-5 text-text-secondary\" />\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">{tr('agentDetails.version', 'Version')}</p>\n <p className=\"font-semibold text-text-primary\">v{agent.version}</p>\n </div>\n </div>\n </Card>\n <Card className=\"p-4\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-10 h-10 rounded-lg bg-bg-sunken flex items-center justify-center\">\n <Terminal className=\"w-5 h-5 text-text-secondary\" />\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">{tr('nav.sessions', 'Sessions')}</p>\n <p className=\"font-semibold text-text-primary\">\n {runningSessions} {tr('health.active', 'active')}\n </p>\n </div>\n </div>\n </Card>\n </div>\n\n {/* ── Tab Navigation Bar ─────────────────────────────────────────── */}\n <div className=\"border-b border-border-default\">\n <nav\n className=\"flex gap-1 -mb-px overflow-x-auto pb-1\"\n aria-label={tr('agentDetails.tabsAriaLabel', 'Agent tabs')}\n >\n {agentTabs.map((tab) => {\n const Icon = tab.icon;\n const isActive = activeTab === tab.id;\n return (\n <button\n key={tab.id}\n onClick={() => setActiveTab(tab.id)}\n className={`flex shrink-0 items-center gap-1.5 px-3 py-2.5 text-xs sm:gap-2 sm:px-4 sm:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${\n isActive\n ? // text-action-primary-bg is the brand blue — used intentionally for text\n // to match the active border color. text-action-primary-text is white,\n // which is invisible on light backgrounds.\n 'border-action-primary-bg text-action-primary-bg'\n : 'border-transparent text-text-secondary hover:text-text-primary hover:border-border-default'\n }`}\n aria-selected={isActive}\n role=\"tab\"\n >\n <Icon className=\"w-4 h-4\" />\n {tab.label}\n {tab.badge && (\n <span\n className={`hidden rounded-full px-1.5 py-0.5 text-[10px] sm:inline-flex sm:text-xs ${\n isActive\n ? 'bg-action-primary-bg/10 text-action-primary-bg'\n : 'bg-bg-sunken text-text-muted'\n }`}\n >\n {tab.badge}\n </span>\n )}\n </button>\n );\n })}\n </nav>\n </div>\n\n {/* ── Tab Panels ─────────────────────────────────────────────────── */}\n <AnimatePresence mode=\"wait\">\n {/* Overview Tab */}\n {activeTab === 'overview' && (\n <motion.div\n key=\"overview\"\n initial={{ opacity: 0, y: 8 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.2 }}\n className=\"space-y-6\"\n >\n {/* Capabilities */}\n <Card>\n <div className=\"p-4 border-b border-border-default\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <CheckCircle2 className=\"w-5 h-5\" />\n {tr('agentDetails.capabilities', 'Capabilities')}\n </h3>\n </div>\n <div className=\"p-4\">\n <div className=\"flex flex-wrap gap-2\">\n {agent.capabilities &&\n typeof agent.capabilities === 'object' &&\n (Array.isArray(agent.capabilities)\n ? agent.capabilities.length > 0\n : Object.keys(agent.capabilities).length > 0) ? (\n (Array.isArray(agent.capabilities)\n ? (agent.capabilities as string[])\n : (() => {\n const obj = agent.capabilities as Record<string, unknown>;\n const keys = Object.keys(obj);\n const hasNumericKeys =\n keys.length > 0 && keys.every((k) => /^\\d+$/.test(k));\n return hasNumericKeys\n ? (Object.values(obj) as string[])\n : (keys as string[]);\n })()\n ).map((cap) => (\n <span\n key={cap}\n className=\"px-3 py-1 bg-bg-sunken text-text-primary text-sm rounded-full\"\n >\n {cap}\n </span>\n ))\n ) : (\n <p className=\"text-text-secondary\">\n {tr('agentDetails.noCapabilitiesConfigured', 'No capabilities configured')}\n </p>\n )}\n </div>\n </div>\n </Card>\n\n {/* Tags */}\n <Card>\n <div className=\"p-4 border-b border-border-default\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <Tag className=\"w-5 h-5\" />\n Tags\n </h3>\n </div>\n <div className=\"p-4\">\n <EntityTagPicker entityType=\"VIBECONTROLS_AGENT\" entityId={agent.id} />\n </div>\n </Card>\n\n {/* Tunnel Info */}\n {agent.tunnelUrl && (\n <Card>\n <div className=\"p-4 border-b border-border-default\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <Zap className=\"w-5 h-5\" />\n {tr('health.tunnel', 'Tunnel')}\n </h3>\n </div>\n <div className=\"p-4\">\n <div className=\"flex flex-col sm:flex-row sm:items-center gap-4\">\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm text-text-secondary mb-1\">\n {tr('agentDetails.tunnelUrl', 'Tunnel URL')}\n </p>\n <a\n href={agent.tunnelUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-action-primary-text hover:underline break-all\"\n >\n {agent.tunnelUrl}\n </a>\n </div>\n {agent.tunnelStatus && (\n <div className=\"flex-shrink-0\">\n <p className=\"text-sm text-text-secondary mb-1\">\n {tr('sessions.filterStatus', 'Status')}\n </p>\n <span\n className={`px-2 py-1 text-xs rounded-full ${\n agent.tunnelStatus === 'CONNECTED' || agent.tunnelStatus === 'ACTIVE'\n ? 'bg-status-success-bg text-status-success-text'\n : 'bg-bg-sunken text-text-secondary'\n }`}\n >\n {agent.tunnelStatus}\n </span>\n </div>\n )}\n </div>\n </div>\n </Card>\n )}\n\n {/* Configuration */}\n <Card>\n <div className=\"p-4 border-b border-border-default\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <Settings className=\"w-5 h-5\" />\n {tr('agentDetails.configuration', 'Configuration')}\n </h3>\n </div>\n <div className=\"p-4 space-y-4\">\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4\">\n <div>\n <p className=\"text-sm text-text-secondary\">\n {tr('analytics.platform', 'Platform')}\n </p>\n <p className=\"font-medium text-text-primary\">{agent.platform}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">\n {tr('analytics.architecture', 'Architecture')}\n </p>\n <p className=\"font-medium text-text-primary\">{agent.architecture}</p>\n </div>\n <div>\n <p className=\"text-sm text-text-secondary\">\n {tr('agentDetails.version', 'Version')}\n </p>\n <p className=\"font-medium text-text-primary\">{agent.version}</p>\n </div>\n </div>\n {agent.aiContext && (\n <div>\n <p className=\"text-sm text-text-secondary mb-1\">AI Context</p>\n <pre className=\"text-sm text-text-primary bg-bg-sunken border border-border-default rounded-md p-3 whitespace-pre-wrap font-sans\">\n {agent.aiContext}\n </pre>\n </div>\n )}\n </div>\n </Card>\n\n {/* Timeline */}\n <Card>\n <div className=\"p-4 border-b border-border-default\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <Clock className=\"w-5 h-5\" />\n {tr('vibeDetails.timeline', 'Timeline')}\n </h3>\n </div>\n <div className=\"p-4\">\n <div className=\"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-4 text-sm\">\n <div>\n <p className=\"text-text-secondary\">\n {tr('health.lastHeartbeat', 'Last Heartbeat')}\n </p>\n <p className=\"font-medium text-text-primary\">\n {formatTimestamp(agent.lastHeartbeat)}\n </p>\n </div>\n <div>\n <p className=\"text-text-secondary\">{tr('vibeDetails.created', 'Created')}</p>\n <p className=\"font-medium text-text-primary\">\n {formatTimestamp(agent.createdAt)}\n </p>\n </div>\n <div>\n <p className=\"text-text-secondary\">{tr('vibeDetails.updated', 'Updated')}</p>\n <p className=\"font-medium text-text-primary\">\n {formatTimestamp(agent.updatedAt)}\n </p>\n </div>\n </div>\n </div>\n </Card>\n </motion.div>\n )}\n\n {/* Security Tab */}\n {activeTab === 'security' && (\n <motion.div\n key=\"security\"\n initial={{ opacity: 0, y: 8 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.2 }}\n className=\"space-y-6\"\n >\n {/* Tunnel API Key Usage */}\n {agent.tunnelUrl && agent.agentApiKey && (\n <Card>\n <div className=\"p-4 border-b border-border-default\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <Info className=\"w-5 h-5\" />\n {tr('agentDetails.apiAuthentication', 'API Authentication')}\n </h3>\n </div>\n <div className=\"p-4 space-y-3\">\n <p className=\"text-sm text-text-secondary\">\n {tr(\n 'agentDetails.apiAuthenticationDescription',\n 'All requests to the agent (except health checks) require authentication. You can pass the API key in two ways:'\n )}\n </p>\n <div className=\"space-y-2\">\n <div>\n <p className=\"text-xs font-medium text-text-primary mb-1\">\n {tr('agentDetails.authHeaderRecommended', 'Header (recommended)')}\n </p>\n <code className=\"block text-xs font-mono bg-bg-sunken px-3 py-2 rounded-md text-text-primary overflow-x-auto\">\n x-agent-api-key: {agent.agentApiKey.slice(0, 12)}...\n </code>\n </div>\n <div>\n <p className=\"text-xs font-medium text-text-primary mb-1\">\n {tr('agentDetails.authQueryParameter', 'URL query parameter')}\n </p>\n <code className=\"block text-xs font-mono bg-bg-sunken px-3 py-2 rounded-md text-text-primary overflow-x-auto break-all\">\n {agent.tunnelUrl}/api/health?apiKey={agent.agentApiKey.slice(0, 12)}...\n </code>\n </div>\n </div>\n <p className=\"text-xs text-text-muted\">\n {tr('agentDetails.authExemptPrefix', 'The')}{' '}\n <code className=\"font-mono\">/health</code>{' '}\n {tr('agentDetails.authExemptAnd', 'and')}{' '}\n <code className=\"font-mono\">/api/agent/identity</code>{' '}\n {tr(\n 'agentDetails.authExemptSuffix',\n 'endpoints are exempt from authentication. The key changes on each agent restart unless a static key is configured.'\n )}\n </p>\n </div>\n </Card>\n )}\n\n {/* Agent API Key */}\n <Card>\n <div className=\"p-4 border-b border-border-default\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <Key className=\"w-5 h-5\" />\n {tr('agentDetails.agentApiKey', 'Agent API Key')}\n </h3>\n </div>\n <div className=\"p-4\">\n {agent.agentApiKey ? (\n <div className=\"flex items-center gap-3\">\n <div className=\"flex-1 min-w-0\">\n <code className=\"text-sm font-mono text-text-primary bg-bg-sunken px-3 py-2 rounded-md block truncate\">\n {showApiKey\n ? agent.agentApiKey\n : '\\u2022'.repeat(Math.min(agent.agentApiKey.length, 32))}\n </code>\n </div>\n <button\n onClick={() => setShowApiKey(!showApiKey)}\n className=\"p-2 rounded hover:bg-bg-sunken transition-colors flex-shrink-0\"\n title={\n showApiKey\n ? tr('agentDetails.hideApiKey', 'Hide API key')\n : tr('agentDetails.showApiKey', 'Show API key')\n }\n >\n {showApiKey ? (\n <EyeOff className=\"w-4 h-4 text-text-secondary\" />\n ) : (\n <Eye className=\"w-4 h-4 text-text-secondary\" />\n )}\n </button>\n <button\n onClick={handleCopyApiKey}\n className=\"p-2 rounded hover:bg-bg-sunken transition-colors flex-shrink-0\"\n title={tr('agentDetails.copyApiKey', 'Copy API key')}\n >\n {apiKeyCopied ? (\n <Check className=\"w-4 h-4 text-status-success-text\" />\n ) : (\n <Copy className=\"w-4 h-4 text-text-secondary\" />\n )}\n </button>\n </div>\n ) : (\n <p className=\"text-sm text-text-secondary\">\n No API key configured. Set one via the Configure button or agent CLI.\n </p>\n )}\n <p className=\"mt-2 text-xs text-text-muted\">\n This key authenticates requests sent to the agent. It typically changes on each\n agent restart.\n </p>\n </div>\n </Card>\n\n {/* Gateway Auth (OAuth2 App) */}\n <GatewayAuthCard agent={agent} onUpdate={() => refetch()} />\n </motion.div>\n )}\n\n {/* Plugins Tab */}\n {activeTab === 'plugins' &&\n (() => {\n const searchLower = pluginSearchQuery.toLowerCase();\n const filteredInstalled = installedPlugins.filter(\n (p) =>\n !searchLower ||\n p.pluginName.toLowerCase().includes(searchLower) ||\n p.packageName.toLowerCase().includes(searchLower) ||\n p.description?.toLowerCase().includes(searchLower) ||\n p.tags?.some((t) => t.toLowerCase().includes(searchLower))\n );\n const filteredAvailable = availablePlugins.filter(\n (p) =>\n !p.installed &&\n (!searchLower ||\n p.name.toLowerCase().includes(searchLower) ||\n p.packageName.toLowerCase().includes(searchLower) ||\n p.description.toLowerCase().includes(searchLower))\n );\n const uiPlugins = installedPlugins.filter((p) => p.hasUI);\n const filteredUIPlugins = uiPlugins.filter(\n (p) =>\n !searchLower ||\n p.pluginName.toLowerCase().includes(searchLower) ||\n p.packageName.toLowerCase().includes(searchLower)\n );\n\n const pluginSubTabs: {\n id: PluginSubTab;\n label: string;\n count: number;\n icon: typeof Puzzle;\n }[] = [\n {\n id: 'installed',\n label: 'Installed',\n count: filteredInstalled.length,\n icon: Puzzle,\n },\n {\n id: 'available',\n label: 'Available',\n count: filteredAvailable.length,\n icon: Download,\n },\n {\n id: 'store',\n label: 'Store',\n count: storePlugins.length,\n icon: Download,\n },\n {\n id: 'ui-plugins',\n label: 'UI Plugins',\n count: filteredUIPlugins.length,\n icon: Monitor,\n },\n ];\n\n return (\n <motion.div\n key=\"plugins\"\n initial={{ opacity: 0, y: 8 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.2 }}\n className=\"space-y-6\"\n >\n <Card>\n {/* Header with title, search, and refresh */}\n <div className=\"p-4 border-b border-border-default space-y-3\">\n <div className=\"flex items-center justify-between\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <Puzzle className=\"w-5 h-5\" />\n Plugins\n {installedPlugins.length > 0 && (\n <span className=\"text-sm font-normal text-text-secondary\">\n ({installedPlugins.filter((p) => p.isCore).length} core,{' '}\n {installedPlugins.filter((p) => !p.isCore).length} external)\n </span>\n )}\n </h3>\n <button\n onClick={fetchPlugins}\n disabled={pluginsLoading}\n className=\"p-1.5 text-text-secondary hover:bg-bg-sunken rounded transition-colors disabled:opacity-50\"\n title={tr('agentDetails.refreshPlugins', 'Refresh plugins')}\n >\n <RefreshCw className={`w-4 h-4 ${pluginsLoading ? 'animate-spin' : ''}`} />\n </button>\n </div>\n\n {/* Search bar */}\n <div className=\"relative\">\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 w-4 h-4 text-text-muted\" />\n <input\n type=\"text\"\n value={pluginSearchQuery}\n onChange={(e) => setPluginSearchQuery(e.target.value)}\n placeholder={tr(\n 'agentDetails.searchPluginsPlaceholder',\n 'Search plugins by name, package, description, or tag...'\n )}\n className=\"w-full pl-9 pr-8 py-2 text-sm bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-muted focus:outline-none focus:ring-1 focus:ring-action-primary-bg focus:border-action-primary-bg\"\n />\n {pluginSearchQuery && (\n <button\n onClick={() => setPluginSearchQuery('')}\n className=\"absolute right-2 top-1/2 -translate-y-1/2 p-0.5 text-text-muted hover:text-text-secondary rounded\"\n >\n <X className=\"w-3.5 h-3.5\" />\n </button>\n )}\n </div>\n\n {/* Sub-tabs */}\n <div className=\"flex gap-1 border-b border-border-default -mx-4 overflow-x-auto px-4 pb-1\">\n {pluginSubTabs.map((st) => {\n const isActive = pluginSubTab === st.id;\n const TabIcon = st.icon;\n return (\n <button\n key={st.id}\n onClick={() => setPluginSubTab(st.id)}\n className={`flex shrink-0 items-center gap-1.5 px-3 py-2 text-xs sm:text-sm font-medium border-b-2 transition-colors whitespace-nowrap ${\n isActive\n ? 'border-action-primary-bg text-action-primary-text'\n : 'border-transparent text-text-secondary hover:text-text-primary hover:border-border-default'\n }`}\n >\n <TabIcon className=\"w-3.5 h-3.5\" />\n {st.label}\n <span\n className={`text-xs px-1.5 py-0.5 rounded-full ${\n isActive\n ? 'bg-action-primary-bg/15 text-action-primary-bg'\n : 'bg-bg-secondary text-text-muted'\n }`}\n >\n {st.count}\n </span>\n </button>\n );\n })}\n </div>\n </div>\n\n <div className=\"p-4 space-y-4\">\n {/* Plugin Error */}\n {pluginError && (\n <div className=\"flex items-center gap-2 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm\">\n <X className=\"w-4 h-4 flex-shrink-0\" />\n <span className=\"flex-1\">{pluginError}</span>\n <button\n onClick={() => setPluginError(null)}\n className=\"flex-shrink-0 p-0.5 hover:bg-status-error-text/10 rounded\"\n >\n <X className=\"w-3.5 h-3.5\" />\n </button>\n </div>\n )}\n\n {/* Not reachable banner */}\n {!agent?.isActive && (\n <p className=\"text-sm text-text-muted flex items-center gap-1.5\">\n <Info className=\"w-4 h-4 flex-shrink-0\" />\n Agent is offline — showing known plugin catalog. Live data will load when\n the agent is reachable.\n </p>\n )}\n\n {/* ── Installed Sub-Tab ────────────────────────────────── */}\n {pluginSubTab === 'installed' && (\n <>\n {filteredInstalled.length > 0 ? (\n <div className=\"space-y-2\">\n {filteredInstalled.map((plugin) => (\n <div\n key={plugin.packageName}\n className=\"flex flex-col sm:flex-row sm:items-center justify-between gap-2 p-3 bg-bg-sunken rounded-lg\"\n >\n <div className=\"min-w-0\">\n <p className=\"text-sm font-medium text-text-primary flex items-center gap-1.5 flex-wrap\">\n {plugin.pluginName}\n <span className=\"text-xs text-text-muted font-normal\">\n {plugin.version === 'latest'\n ? plugin.version\n : `v${plugin.version}`}\n </span>\n {plugin.isCore && (\n <span className=\"inline-flex items-center px-1.5 py-0.5 text-xs bg-action-primary-bg/10 text-action-primary-bg rounded border border-action-primary-bg/20\">\n core\n </span>\n )}\n {plugin.loaded && (\n <span className=\"inline-flex items-center px-1.5 py-0.5 text-xs bg-status-success-bg text-status-success-text rounded\">\n loaded\n </span>\n )}\n {plugin.hasProviders && (\n <span className=\"inline-flex items-center px-1.5 py-0.5 text-xs bg-status-warning-bg-subtle text-status-warning-text rounded\">\n provider\n </span>\n )}\n {plugin.hasUI && (\n <span className=\"inline-flex items-center px-1.5 py-0.5 text-xs bg-accent-purple-subtle text-accent-purple rounded\">\n ui\n </span>\n )}\n </p>\n {plugin.description && (\n <p className=\"text-xs text-text-secondary mt-0.5\">\n {plugin.description}\n </p>\n )}\n <div className=\"flex items-center gap-2 mt-0.5 flex-wrap\">\n {!plugin.isCore && (\n <span className=\"text-xs text-text-muted font-mono\">\n {plugin.packageName}\n </span>\n )}\n {plugin.cliCommand && (\n <span className=\"text-xs text-text-muted\">\n cli:{' '}\n <code className=\"text-xs font-mono\">\n vibe {plugin.cliCommand}\n </code>\n </span>\n )}\n {plugin.apiPrefix && (\n <span className=\"text-xs text-text-muted\">\n api:{' '}\n <code className=\"text-xs font-mono\">\n {plugin.apiPrefix}\n </code>\n </span>\n )}\n </div>\n {plugin.tags && plugin.tags.length > 0 && (\n <div className=\"flex gap-1 mt-1 flex-wrap\">\n {plugin.tags.map((tag) => (\n <span\n key={tag}\n className=\"inline-flex px-1.5 py-0.5 text-[10px] bg-bg-secondary text-text-muted rounded\"\n >\n {tag}\n </span>\n ))}\n </div>\n )}\n </div>\n <div className=\"flex items-center gap-2 flex-shrink-0 sm:ml-3\">\n {plugin.hasUI && (\n <button\n onClick={() => setPluginSubTab('ui-plugins')}\n className=\"flex items-center gap-1.5 px-2.5 py-1.5 text-xs text-action-primary-bg bg-action-primary-bg/10 rounded-md hover:bg-action-primary-bg/20 transition-colors border border-action-primary-bg/20\"\n title={`Open ${plugin.pluginName} UI`}\n >\n <Monitor className=\"w-3 h-3\" />\n Open UI\n </button>\n )}\n {!plugin.isCore && (\n <button\n onClick={() => handleRemovePlugin(plugin.packageName)}\n disabled={pluginActionLoading === plugin.packageName}\n className=\"flex items-center gap-1.5 px-2.5 py-1.5 text-xs text-status-error-text bg-status-error-bg rounded-md hover:bg-status-error-bg/80 transition-colors disabled:opacity-50\"\n >\n {pluginActionLoading === plugin.packageName ? (\n <Loader2 className=\"w-3 h-3 animate-spin\" />\n ) : (\n <Trash2 className=\"w-3 h-3\" />\n )}\n Remove\n </button>\n )}\n </div>\n </div>\n ))}\n </div>\n ) : (\n <p className=\"text-sm text-text-muted\">\n {pluginSearchQuery\n ? 'No installed plugins match your search.'\n : 'No plugin data available. Check agent connectivity or refresh.'}\n </p>\n )}\n </>\n )}\n\n {/* ── Available Sub-Tab ────────────────────────────────── */}\n {pluginSubTab === 'available' && (\n <>\n {filteredAvailable.length > 0 ? (\n <div className=\"space-y-2\">\n {filteredAvailable.map((plugin) => (\n <div\n key={plugin.packageName}\n className=\"flex flex-col sm:flex-row sm:items-center justify-between gap-2 p-3 bg-bg-sunken rounded-lg\"\n >\n <div className=\"min-w-0\">\n <p className=\"text-sm font-medium text-text-primary\">\n {plugin.name}\n </p>\n <p className=\"text-xs text-text-secondary mt-0.5\">\n {plugin.description}\n </p>\n <p className=\"text-xs text-text-muted font-mono mt-0.5\">\n {plugin.packageName}\n </p>\n </div>\n <button\n onClick={() => handleInstallPlugin(plugin.packageName)}\n disabled={pluginActionLoading === plugin.packageName}\n className=\"flex items-center gap-1.5 px-2.5 py-1.5 text-xs text-action-primary-text bg-action-primary-bg rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50 flex-shrink-0 sm:ml-3\"\n >\n {pluginActionLoading === plugin.packageName ? (\n <Loader2 className=\"w-3 h-3 animate-spin\" />\n ) : (\n <Download className=\"w-3 h-3\" />\n )}\n Install\n </button>\n </div>\n ))}\n </div>\n ) : (\n <p className=\"text-sm text-text-muted\">\n {pluginSearchQuery\n ? 'No available plugins match your search.'\n : availablePlugins.every((p) => p.installed)\n ? 'All available plugins are already installed.'\n : 'No available plugins found.'}\n </p>\n )}\n </>\n )}\n\n {/* ── Store Sub-Tab (Burdenoff Store purchased plugins) ── */}\n {pluginSubTab === 'store' && (\n <>\n {storePluginsError && (\n <div className=\"flex items-center gap-2 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm\">\n <X className=\"w-4 h-4 flex-shrink-0\" />\n <span className=\"flex-1\">{storePluginsError}</span>\n </div>\n )}\n {storePluginsLoading ? (\n <p className=\"text-sm text-text-muted\">Loading purchased plugins…</p>\n ) : storePlugins.length === 0 ? (\n <div className=\"py-8 text-center\">\n <p className=\"text-sm text-text-muted\">\n No plugins purchased from the Burdenoff store yet.\n </p>\n <a\n href=\"/store/marketplace\"\n className=\"mt-2 inline-flex items-center gap-1 text-xs font-semibold text-action-primary-text hover:underline\"\n >\n Browse the store →\n </a>\n </div>\n ) : (\n <div className=\"space-y-2\">\n {storePlugins.map((ent) => {\n const manifest =\n (ent.product?.manifest as Record<string, unknown> | null) ?? {};\n const digital = manifest['digital'] as\n | Record<string, unknown>\n | undefined;\n const install = digital?.['install'] as\n | Record<string, unknown>\n | undefined;\n const packageName =\n typeof install?.['packageName'] === 'string'\n ? (install['packageName'] as string)\n : null;\n const isAlreadyInstalled = installedPlugins.some(\n (p) => p.packageName === packageName\n );\n return (\n <div\n key={ent.id}\n className=\"flex flex-col sm:flex-row sm:items-center justify-between gap-2 p-3 bg-bg-sunken rounded-lg\"\n >\n <div className=\"flex items-start gap-3 min-w-0 flex-1\">\n {ent.product?.icon ? (\n <img\n src={ent.product.icon}\n alt=\"\"\n className=\"w-10 h-10 rounded-md object-cover flex-shrink-0\"\n />\n ) : (\n <div className=\"w-10 h-10 flex-shrink-0 rounded-md bg-bg-secondary flex items-center justify-center\">\n <Puzzle className=\"w-5 h-5 text-text-muted\" />\n </div>\n )}\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-2\">\n <h4 className=\"text-sm font-semibold text-text-primary truncate\">\n {ent.product?.name ?? 'Unknown'}\n </h4>\n {ent.licenseKey && (\n <span className=\"text-[10px] bg-status-success-bg text-status-success-text px-1.5 py-0.5 rounded-full\">\n Licensed\n </span>\n )}\n </div>\n {packageName && (\n <p className=\"text-xs text-text-muted font-mono truncate\">\n {packageName}\n </p>\n )}\n {ent.product?.description && (\n <p className=\"text-xs text-text-secondary line-clamp-2 mt-1\">\n {ent.product.description}\n </p>\n )}\n </div>\n </div>\n <button\n onClick={() =>\n void handleInstallStorePlugin(ent.productId, ent.licenseKey)\n }\n disabled={\n isAlreadyInstalled ||\n storeInstallingId === ent.productId ||\n !packageName\n }\n className=\"inline-flex items-center gap-1.5 px-3 py-1.5 text-xs font-semibold rounded-md bg-action-primary-bg text-action-primary-text hover:opacity-90 disabled:opacity-60 flex-shrink-0\"\n >\n {isAlreadyInstalled\n ? 'Installed'\n : storeInstallingId === ent.productId\n ? 'Installing…'\n : 'Install'}\n </button>\n </div>\n );\n })}\n </div>\n )}\n </>\n )}\n\n {/* ── UI Plugins Sub-Tab (Embedded Browser) ────────────── */}\n {pluginSubTab === 'ui-plugins' && (\n <>\n {uiPlugins.length > 0 || agent?.tunnelUrl ? (\n <PluginUIPanel\n availablePlugins={[\n // Synthetic code-server entry (proxied, not a standard UI plugin)\n ...(agent?.tunnelUrl\n ? [\n {\n pluginName: 'code-server',\n displayName: 'Code Server (VS Code)',\n description: 'Browser-based VS Code editor',\n version: 'latest',\n customUrl: '/code-server/',\n } satisfies UIPluginOption,\n ]\n : []),\n ...uiPlugins.map(\n (p): UIPluginOption => ({\n pluginName: p.pluginName,\n displayName: p.pluginName\n .replace(/^ui-/, '')\n .replace(/-/g, ' ')\n .replace(/\\b\\w/g, (c) => c.toUpperCase()),\n description: p.description,\n version: p.version,\n })\n ),\n ]}\n tunnelUrl={agent?.tunnelUrl || null}\n agentApiKey={agent?.agentApiKey}\n />\n ) : (\n <p className=\"text-sm text-text-muted\">\n {pluginSearchQuery\n ? 'No UI plugins match your search.'\n : 'No plugins with UI are currently installed.'}\n </p>\n )}\n </>\n )}\n\n {/* Loading */}\n {pluginsLoading && installedPlugins.length === 0 && (\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Loader2 className=\"w-4 h-4 animate-spin\" />\n Loading plugins...\n </div>\n )}\n </div>\n </Card>\n </motion.div>\n );\n })()}\n\n {/* Sessions Tab */}\n {activeTab === 'sessions' && (\n <motion.div\n key=\"sessions\"\n initial={{ opacity: 0, y: 8 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.2 }}\n >\n <Card>\n <div className=\"p-4 border-b border-border-default flex items-center justify-between\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <Terminal className=\"w-5 h-5\" />\n {tr('nav.sessions', 'Sessions')} ({agentSessions.length})\n </h3>\n </div>\n {agentSessions.length > 0 ? (\n <div className=\"divide-y divide-border-primary\">\n {agentSessions.map((session: SessionItem) => (\n <div\n key={session.id}\n onClick={() => handleSessionClick(session.id)}\n className=\"p-4 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-2 cursor-pointer hover:bg-bg-sunken/50 transition-colors\"\n >\n <div className=\"flex items-center gap-3 min-w-0\">\n <Terminal className=\"w-5 h-5 text-text-secondary flex-shrink-0\" />\n <div className=\"min-w-0\">\n <p className=\"font-medium text-text-primary truncate\">{session.name}</p>\n <p className=\"text-sm text-text-secondary truncate\">{session.type}</p>\n </div>\n </div>\n <StatusBadge status={session.status} />\n </div>\n ))}\n </div>\n ) : (\n <div className=\"p-6 text-center text-text-secondary\">\n {tr('agentDetails.noSessionsOnAgent', 'No sessions on this agent')}\n </div>\n )}\n </Card>\n </motion.div>\n )}\n\n {activeTab === 'logs' && (\n <motion.div\n key=\"logs\"\n initial={{ opacity: 0, y: 8 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.2 }}\n >\n <Card>\n <div className=\"p-4 border-b border-border-default flex items-center justify-between\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <ScrollText className=\"w-5 h-5\" />\n {tr('nav.logs', 'Logs')}\n </h3>\n </div>\n <div className=\"p-4\">\n <LogViewer agentId={agent.id} className=\"min-h-[28rem]\" />\n </div>\n </Card>\n </motion.div>\n )}\n\n {/* Vibes Tab */}\n {activeTab === 'vibes' && (\n <motion.div\n key=\"vibes\"\n initial={{ opacity: 0, y: 8 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.2 }}\n >\n <Card>\n <div className=\"p-4 border-b border-border-default flex items-center justify-between\">\n <h3 className=\"font-semibold text-text-primary flex items-center gap-2\">\n <Zap className=\"w-5 h-5\" />\n {tr('nav.vibes', 'Vibes')} ({agentVibes.length})\n </h3>\n </div>\n {agentVibes.length > 0 ? (\n <div className=\"divide-y divide-border-primary\">\n {agentVibes.map((vibe: VibeItem) => (\n <div\n key={vibe.id}\n onClick={() => handleVibeClick(vibe.id)}\n className=\"p-4 flex flex-col sm:flex-row items-start sm:items-center justify-between gap-2 cursor-pointer hover:bg-bg-sunken/50 transition-colors\"\n >\n <div className=\"flex items-center gap-3 min-w-0\">\n <Zap className=\"w-5 h-5 text-text-secondary flex-shrink-0\" />\n <div className=\"min-w-0\">\n <p className=\"font-medium text-text-primary truncate\">{vibe.name}</p>\n <p className=\"text-sm text-text-secondary truncate\">{vibe.type}</p>\n </div>\n </div>\n <StatusBadge status={vibe.status} />\n </div>\n ))}\n </div>\n ) : (\n <div className=\"p-6 text-center text-text-secondary\">\n {tr('agentDetails.noVibesUsingAgent', 'No vibes using this agent')}\n </div>\n )}\n </Card>\n </motion.div>\n )}\n\n {/* Notes Tab */}\n {activeTab === 'notes' && (\n <motion.div\n key=\"notes\"\n initial={{ opacity: 0, y: 8 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.2 }}\n className=\"space-y-6\"\n >\n <NotesTabPanel\n context=\"agent\"\n agentVibes={agentVibes.map((v: VibeItem) => ({ id: v.id, name: v.name }))}\n />\n </motion.div>\n )}\n\n {activeTab === 'backup' && agent.tunnelUrl && agent.agentApiKey && (\n <motion.div\n key=\"backup\"\n initial={{ opacity: 0, y: 8 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.2 }}\n >\n <AgentBackupTab agentTunnelUrl={agent.tunnelUrl} agentApiKey={agent.agentApiKey} />\n </motion.div>\n )}\n\n {activeTab === 'backup' && (!agent.tunnelUrl || !agent.agentApiKey) && (\n <motion.div\n key=\"backup-no-tunnel\"\n initial={{ opacity: 0, y: 8 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -8 }}\n transition={{ duration: 0.2 }}\n >\n <Card className=\"p-6 text-center text-text-secondary\">\n <Database className=\"w-8 h-8 mx-auto mb-2 text-text-muted\" />\n <p>\n {tr(\n 'agentDetails.backupRequiresTunnelAndApiKey',\n 'Agent tunnel URL and API key are required for backup management.'\n )}\n </p>\n <p className=\"text-sm mt-1\">\n {tr(\n 'agentDetails.configureConnectionInOverview',\n 'Configure the agent connection in the Overview tab.'\n )}\n </p>\n </Card>\n </motion.div>\n )}\n </AnimatePresence>\n\n {/* Configure Agent Modal */}\n {showConfigModal && (\n <div className=\"fixed inset-0 bg-bg-overlay flex items-center justify-center z-50 p-4\">\n <div className=\"bg-bg-surface rounded-lg p-6 w-full max-w-lg\">\n <h2 className=\"text-lg font-semibold text-text-primary mb-4\">\n {tr('agentDetails.configure', 'Configure')} {agent.name}\n </h2>\n {configError && (\n <div className=\"mb-4 p-3 bg-status-error-bg text-status-error-text rounded-md text-sm\">\n {configError}\n </div>\n )}\n <div className=\"space-y-4\">\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {tr('webhooks.name', 'Name')}\n </label>\n <input\n ref={agentNameRef}\n type=\"text\"\n defaultValue={agent.name}\n className=\"w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary\"\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {tr('analytics.platform', 'Platform')}\n </label>\n <input\n type=\"text\"\n value={`${agent.platform} / ${agent.architecture}`}\n disabled\n className=\"w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-secondary\"\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {tr('agentDetails.version', 'Version')}\n </label>\n <input\n type=\"text\"\n value={agent.version}\n disabled\n className=\"w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-secondary\"\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {tr('agentDetails.tunnelUrl', 'Tunnel URL')}\n </label>\n <input\n ref={agentTunnelUrlRef}\n type=\"text\"\n defaultValue={agent.tunnelUrl ?? ''}\n placeholder={tr(\n 'agentDetails.tunnelUrlPlaceholder',\n 'https://xxx.trycloudflare.com'\n )}\n className=\"w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary font-mono text-sm\"\n />\n <p className=\"mt-1 text-xs text-text-muted\">\n {tr(\n 'agentDetails.tunnelUrlHint',\n 'The public URL for accessing this agent remotely. Auto-updates when gateway auth is configured.'\n )}\n </p>\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {tr('agentDetails.agentApiKey', 'Agent API Key')}\n </label>\n <input\n ref={agentApiKeyRef}\n type=\"text\"\n defaultValue={agent.agentApiKey ?? ''}\n placeholder={tr('agentDetails.agentApiKeyPlaceholder', 'sk-agent-...')}\n className=\"w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary font-mono text-sm\"\n />\n <p className=\"mt-1 text-xs text-text-muted\">\n {tr(\n 'agentDetails.agentApiKeyHint',\n 'Used to authenticate requests to the agent. Leave empty to clear.'\n )}\n </p>\n </div>\n <div>\n <div className=\"flex items-center gap-1.5 mb-1\">\n <label className=\"text-sm font-medium text-text-primary\">AI Context</label>\n <div className=\"relative\">\n <button\n type=\"button\"\n onClick={() => setShowAiContextInfo((v) => !v)}\n className=\"p-0.5 rounded-full text-text-muted hover:text-text-secondary transition-colors\"\n aria-label=\"What is AI Context?\"\n >\n <Info className=\"w-3.5 h-3.5\" />\n </button>\n {showAiContextInfo && (\n <>\n <div\n className=\"fixed inset-0 z-10\"\n onClick={() => setShowAiContextInfo(false)}\n />\n <div className=\"absolute left-0 top-6 z-20 w-72 bg-bg-elevated border border-border-default rounded-lg shadow-xl p-3 text-xs text-text-secondary space-y-1.5\">\n <p className=\"font-semibold text-text-primary\">What is AI Context?</p>\n <p>\n A short description (Markdown supported) that AI tools running on this\n agent will read to understand the environment — e.g. what the machine is\n for, what services it runs, or any constraints to follow.\n </p>\n <p className=\"text-text-muted\">\n Example: "Production billing server. Do not modify files outside\n /src. Node 20, Docker installed."\n </p>\n </div>\n </>\n )}\n </div>\n </div>\n <textarea\n ref={agentAiContextRef}\n defaultValue={agent.aiContext ?? ''}\n rows={4}\n placeholder=\"e.g. This agent runs on the billing server. Node 20, Docker installed. Do not modify files outside /src.\"\n className=\"w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary text-sm\"\n />\n </div>\n <div>\n <label className=\"block text-sm font-medium text-text-primary mb-1\">\n {tr('agentDetails.metadataLabel', 'Metadata (JSON)')}\n </label>\n <textarea\n ref={agentMetadataRef}\n defaultValue={agent.metadata ? JSON.stringify(agent.metadata, null, 2) : '{}'}\n rows={4}\n className=\"w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-md text-text-primary font-mono text-sm\"\n />\n </div>\n </div>\n <div className=\"flex flex-wrap justify-end gap-3 mt-6\">\n <button\n onClick={() => setShowConfigModal(false)}\n disabled={configLoading}\n className=\"px-4 py-2 text-text-primary hover:bg-bg-sunken rounded-md transition-colors disabled:opacity-50\"\n >\n {tr('common.cancel', 'Cancel')}\n </button>\n <button\n onClick={handleSubmitConfig}\n disabled={configLoading}\n className=\"px-4 py-2 bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover transition-colors disabled:opacity-50\"\n >\n {configLoading\n ? tr('agentDetails.saving', 'Saving...')\n : tr('agentDetails.saveConfiguration', 'Save Configuration')}\n </button>\n </div>\n </div>\n </div>\n )}\n\n <QuotaExhaustedDialog\n isOpen={showQuotaExhausted}\n onClose={() => setShowQuotaExhausted(false)}\n onConfirm={() => {\n setShowQuotaExhausted(false);\n navigate('/billing');\n }}\n title=\"Plugin Install Quota Reached\"\n message=\"You have used the plugin installation quota for your current plan. Upgrade to install more plugins.\"\n />\n </MotionPage>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Agent Graph Page — Dedicated full-page view of the agent connection graph.
|
|
3
|
+
*
|
|
4
|
+
* Shows targets as group nodes with agents inside (sub-flows) and
|
|
5
|
+
* connections as directed edges. Supports root-node scoping and
|
|
6
|
+
* RBAC permission editing.
|
|
7
|
+
*/
|
|
8
|
+
export declare function AgentGraphPage(): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//# sourceMappingURL=AgentGraphPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentGraphPage.d.ts","sourceRoot":"","sources":["../../src/pages/AgentGraphPage.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAyBH,wBAAgB,cAAc,4CA6Q7B"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { useAgentConnectionConfigQuery as e, useGetAgentGraphQuery as t, useUpdateConnectionPermissionsMutation as n } from "../generated/wspace-operations.js";
|
|
2
|
+
import { useVibeControls as r, useVibeNavigate as i } from "../providers/VibeControlsProvider.js";
|
|
3
|
+
import a from "../hooks/useCachedInitialData.js";
|
|
4
|
+
import { PageHeader as o } from "../components/shared/PageHeader.js";
|
|
5
|
+
import { LoadingState as s } from "../components/shared/LoadingState.js";
|
|
6
|
+
import { ErrorState as c } from "../components/shared/ErrorState.js";
|
|
7
|
+
import { EmptyState as l } from "../components/shared/EmptyState.js";
|
|
8
|
+
import { GetHelpButton as u } from "../components/shared/GetHelpButton.js";
|
|
9
|
+
import { SearchableSelect as d } from "../components/shared/SearchableSelect.js";
|
|
10
|
+
import "../components/shared/index.js";
|
|
11
|
+
import { VIBE_PERMISSIONS as f } from "../constants/permissions.js";
|
|
12
|
+
import { AgentGraphView as p } from "../components/graph/AgentGraphView.js";
|
|
13
|
+
import { useCallback as m, useMemo as h, useState as g } from "react";
|
|
14
|
+
import { useI18n as _ } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
15
|
+
import { GitBranch as v, Loader2 as y, Network as b } from "lucide-react";
|
|
16
|
+
import { usePermissions as x } from "@burdenoff/fe-libs/shared/providers/shell";
|
|
17
|
+
import { Fragment as S, jsx as C, jsxs as w } from "react/jsx-runtime";
|
|
18
|
+
import { MotionPage as T } from "@burdenoff/fe-libs/shared/motion";
|
|
19
|
+
//#region src/pages/AgentGraphPage.tsx
|
|
20
|
+
function E() {
|
|
21
|
+
let { workspaceId: E } = r(), D = i(), { t: O } = _(), { hasPermission: k, isLoading: A } = x(), [j, M] = g(null), N = m((e, t, n) => {
|
|
22
|
+
let r = O(e, n), i = r === e ? t : r;
|
|
23
|
+
return n ? Object.entries(n).reduce((e, [t, n]) => e.replace(`{{${t}}}`, String(n)), i) : i;
|
|
24
|
+
}, [O]), { agents: P, targets: F } = a(), I = h(() => {
|
|
25
|
+
let e = P.map((e) => ({
|
|
26
|
+
value: e.id,
|
|
27
|
+
label: N("agentGraph.scopeAgentPrefix", "Agent: {{name}}", { name: e.name })
|
|
28
|
+
}));
|
|
29
|
+
return [...F.map((e) => ({
|
|
30
|
+
value: `target:${e.id}`,
|
|
31
|
+
label: N("agentGraph.scopeTargetPrefix", "Target: {{name}}", { name: e.name })
|
|
32
|
+
})), ...e];
|
|
33
|
+
}, [
|
|
34
|
+
P,
|
|
35
|
+
F,
|
|
36
|
+
N
|
|
37
|
+
]), [L, R] = g(""), { data: z } = e({ skip: !E }), B = z?.agentConnectionConfig.permissions ?? [], V = z?.agentConnectionConfig.scopes ?? [], { data: H, previousData: U, loading: W, error: G } = t({
|
|
38
|
+
variables: {
|
|
39
|
+
workspaceId: E || "",
|
|
40
|
+
rootAgentId: j || void 0
|
|
41
|
+
},
|
|
42
|
+
skip: !E
|
|
43
|
+
}), K = H?.agentGraph ?? U?.agentGraph, q = K?.targets ?? [], J = K?.connections ?? [], Y = W, X = Y && !K, Z = Y && !!K, [Q] = n(), $ = m((e, t) => {
|
|
44
|
+
if (e === "target") {
|
|
45
|
+
D(`/agents?${new URLSearchParams({
|
|
46
|
+
tab: "targets",
|
|
47
|
+
selectedTargetId: t
|
|
48
|
+
}).toString()}`);
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
D(`/agents/${t}`);
|
|
52
|
+
}, [D]), ee = m((e, t, n) => {
|
|
53
|
+
Q({ variables: {
|
|
54
|
+
connectionId: e,
|
|
55
|
+
input: {
|
|
56
|
+
permissions: t,
|
|
57
|
+
scopes: n
|
|
58
|
+
}
|
|
59
|
+
} });
|
|
60
|
+
}, [Q]);
|
|
61
|
+
return A ? /* @__PURE__ */ C("div", {
|
|
62
|
+
className: "flex items-center justify-center min-h-[400px]",
|
|
63
|
+
children: /* @__PURE__ */ C("p", {
|
|
64
|
+
className: "text-text-secondary",
|
|
65
|
+
children: "Loading permissions..."
|
|
66
|
+
})
|
|
67
|
+
}) : k(f.AGENT_READ) ? /* @__PURE__ */ w(T, { children: [
|
|
68
|
+
/* @__PURE__ */ C(o, {
|
|
69
|
+
title: N("nav.agentGraph", "Agent Graph"),
|
|
70
|
+
description: N("agentGraph.description", "Visualize and manage connections between targets and agents.")
|
|
71
|
+
}),
|
|
72
|
+
X && /* @__PURE__ */ C(s, { message: N("agentGraph.loading", "Loading agent graph...") }),
|
|
73
|
+
!Y && G && q.length === 0 && /* @__PURE__ */ C(c, {
|
|
74
|
+
title: N("agentGraph.failedLoad", "Failed to load agent graph"),
|
|
75
|
+
message: G.message
|
|
76
|
+
}),
|
|
77
|
+
!Y && !G && q.length === 0 && !L && /* @__PURE__ */ C(l, {
|
|
78
|
+
icon: /* @__PURE__ */ C(b, { className: "w-8 h-8 text-text-secondary" }),
|
|
79
|
+
title: N("agentGraph.noTargetsConnected", "No targets connected"),
|
|
80
|
+
description: N("agentGraph.noTargetsDescription", "Register an agent on a target to start visualizing your infrastructure topology."),
|
|
81
|
+
action: /* @__PURE__ */ C(u, { prompt: "What is the Agent Graph in VibeControls and what does it show?" })
|
|
82
|
+
}),
|
|
83
|
+
(q.length > 0 || L || Z) && /* @__PURE__ */ w(S, { children: [
|
|
84
|
+
/* @__PURE__ */ w("div", {
|
|
85
|
+
className: "flex items-center gap-3 mt-4",
|
|
86
|
+
children: [
|
|
87
|
+
/* @__PURE__ */ w("div", {
|
|
88
|
+
className: "flex items-center gap-2",
|
|
89
|
+
children: [
|
|
90
|
+
/* @__PURE__ */ C(v, {
|
|
91
|
+
size: 16,
|
|
92
|
+
className: "text-text-tertiary"
|
|
93
|
+
}),
|
|
94
|
+
/* @__PURE__ */ C("span", {
|
|
95
|
+
className: "text-sm font-medium text-text-secondary",
|
|
96
|
+
children: N("agentGraph.countSummary", "{{targets}} targets, {{connections}} connections", {
|
|
97
|
+
targets: q.length,
|
|
98
|
+
connections: J.length
|
|
99
|
+
})
|
|
100
|
+
}),
|
|
101
|
+
Z && /* @__PURE__ */ w("span", {
|
|
102
|
+
role: "status",
|
|
103
|
+
"aria-live": "polite",
|
|
104
|
+
className: "inline-flex items-center gap-1.5 rounded-full border border-border-default bg-bg-surface px-2.5 py-1 text-xs font-medium text-text-secondary",
|
|
105
|
+
children: [/* @__PURE__ */ C(y, { className: "h-3.5 w-3.5 animate-spin text-action-primary-bg" }), N("agentGraph.refreshing", "Refreshing graph...")]
|
|
106
|
+
})
|
|
107
|
+
]
|
|
108
|
+
}),
|
|
109
|
+
/* @__PURE__ */ C("div", { className: "flex-1" }),
|
|
110
|
+
/* @__PURE__ */ w("div", {
|
|
111
|
+
className: "flex items-center gap-2",
|
|
112
|
+
children: [/* @__PURE__ */ C("label", {
|
|
113
|
+
className: "text-xs font-medium text-text-secondary",
|
|
114
|
+
children: N("agentGraph.scopeLabel", "Scope:")
|
|
115
|
+
}), /* @__PURE__ */ C(d, {
|
|
116
|
+
value: L,
|
|
117
|
+
onChange: (e) => {
|
|
118
|
+
R(e), e.startsWith("target:") ? M(null) : M(e || null);
|
|
119
|
+
},
|
|
120
|
+
options: I,
|
|
121
|
+
placeholder: N("agentGraph.scopeAll", "All targets & agents"),
|
|
122
|
+
clearable: !0,
|
|
123
|
+
disabled: Y,
|
|
124
|
+
dropdownAlign: "right"
|
|
125
|
+
})]
|
|
126
|
+
})
|
|
127
|
+
]
|
|
128
|
+
}),
|
|
129
|
+
!Y && G && /* @__PURE__ */ C(c, {
|
|
130
|
+
title: N("agentGraph.failedRefresh", "Failed to refresh agent graph"),
|
|
131
|
+
message: G.message
|
|
132
|
+
}),
|
|
133
|
+
!Y && q.length === 0 && L && /* @__PURE__ */ C(l, {
|
|
134
|
+
icon: /* @__PURE__ */ C(b, { className: "w-8 h-8 text-text-secondary" }),
|
|
135
|
+
title: N("agentGraph.noScopeResults", "No results for this scope"),
|
|
136
|
+
description: N("agentGraph.noScopeDescription", "No targets match the selected scope. Clear the filter to view all targets.")
|
|
137
|
+
}),
|
|
138
|
+
(q.length > 0 || Z) && /* @__PURE__ */ w("div", {
|
|
139
|
+
className: "mt-4 relative",
|
|
140
|
+
style: {
|
|
141
|
+
height: "calc(100vh - 280px)",
|
|
142
|
+
minHeight: "400px"
|
|
143
|
+
},
|
|
144
|
+
"aria-busy": Z,
|
|
145
|
+
children: [/* @__PURE__ */ C(p, {
|
|
146
|
+
targets: q,
|
|
147
|
+
connections: J,
|
|
148
|
+
onUpdatePermissions: ee,
|
|
149
|
+
availablePermissions: B,
|
|
150
|
+
availableScopes: V,
|
|
151
|
+
onNodeClick: $,
|
|
152
|
+
fullHeight: !0
|
|
153
|
+
}), Z && /* @__PURE__ */ C("div", {
|
|
154
|
+
className: "absolute inset-0 z-10 flex items-center justify-center bg-bg-surface/60 backdrop-blur-[1px]",
|
|
155
|
+
children: /* @__PURE__ */ w("div", {
|
|
156
|
+
className: "inline-flex items-center gap-2 rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm text-text-secondary shadow-md",
|
|
157
|
+
children: [/* @__PURE__ */ C(y, { className: "h-4 w-4 animate-spin text-action-primary-bg" }), /* @__PURE__ */ C("span", { children: L ? N("agentGraph.loadingScope", "Applying selected scope...") : N("agentGraph.refreshing", "Refreshing graph...") })]
|
|
158
|
+
})
|
|
159
|
+
})]
|
|
160
|
+
})
|
|
161
|
+
] })
|
|
162
|
+
] }) : /* @__PURE__ */ C("div", {
|
|
163
|
+
className: "flex items-center justify-center min-h-[400px]",
|
|
164
|
+
children: /* @__PURE__ */ w("div", {
|
|
165
|
+
className: "text-center space-y-2",
|
|
166
|
+
children: [/* @__PURE__ */ C("h2", {
|
|
167
|
+
className: "text-lg font-semibold text-foreground",
|
|
168
|
+
children: "Access Denied"
|
|
169
|
+
}), /* @__PURE__ */ C("p", {
|
|
170
|
+
className: "text-sm text-text-secondary",
|
|
171
|
+
children: "You don't have permission to access this page."
|
|
172
|
+
})]
|
|
173
|
+
})
|
|
174
|
+
});
|
|
175
|
+
}
|
|
176
|
+
//#endregion
|
|
177
|
+
export { E as AgentGraphPage };
|
|
178
|
+
|
|
179
|
+
//# sourceMappingURL=AgentGraphPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentGraphPage.js","names":[],"sources":["../../src/pages/AgentGraphPage.tsx"],"sourcesContent":["/**\n * Agent Graph Page — Dedicated full-page view of the agent connection graph.\n *\n * Shows targets as group nodes with agents inside (sub-flows) and\n * connections as directed edges. Supports root-node scoping and\n * RBAC permission editing.\n */\n\nimport { useState, useMemo, useCallback } from 'react';\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\nimport { VIBE_PERMISSIONS } from '../constants/permissions';\nimport { GitBranch, Loader2, Network } from 'lucide-react';\nimport {\n PageHeader,\n SearchableSelect,\n LoadingState,\n ErrorState,\n EmptyState,\n GetHelpButton,\n} from '@/components/shared';\nimport { MotionPage } from '@burdenoff/fe-libs/shared/motion';\nimport { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { useVibeControls, useVibeNavigate } from '@/providers/VibeControlsProvider';\nimport { useCachedInitialData } from '@/hooks/useCachedInitialData';\nimport {\n useGetAgentGraphQuery,\n useUpdateConnectionPermissionsMutation,\n useAgentConnectionConfigQuery,\n} from '@/generated/wspace-operations';\nimport { AgentGraphView } from '@/components/graph/AgentGraphView';\n\nexport function AgentGraphPage() {\n const { workspaceId } = useVibeControls();\n const navigate = useVibeNavigate();\n const { t } = useI18n();\n const { hasPermission, isLoading: permissionsLoading } = usePermissions();\n const [rootAgentId, setRootAgentId] = useState<string | null>(null);\n\n const tr = useCallback(\n (key: string, fallback: string, params?: Record<string, string | number>): string => {\n const translated = t(key, params);\n const template = translated === key ? fallback : translated;\n\n if (!params) return template;\n\n return Object.entries(params).reduce(\n (acc, [paramKey, paramValue]) => acc.replace(`{{${paramKey}}}`, String(paramValue)),\n template\n );\n },\n [t]\n );\n\n // Use cached initial data for agents and targets dropdown\n const { agents: cachedAgents, targets: cachedTargets } = useCachedInitialData();\n const scopeOptions = useMemo(() => {\n const agentOpts = cachedAgents.map((a) => ({\n value: a.id,\n label: tr('agentGraph.scopeAgentPrefix', 'Agent: {{name}}', { name: a.name }),\n }));\n const targetOpts = cachedTargets.map((t) => ({\n value: `target:${t.id}`,\n label: tr('agentGraph.scopeTargetPrefix', 'Target: {{name}}', { name: t.name }),\n }));\n return [...targetOpts, ...agentOpts];\n }, [cachedAgents, cachedTargets, tr]);\n\n const [scopeValue, setScopeValue] = useState<string>('');\n\n const { data: connectionConfigData } = useAgentConnectionConfigQuery({\n skip: !workspaceId,\n });\n\n const availablePermissions = connectionConfigData?.agentConnectionConfig.permissions ?? [];\n const availableScopes = connectionConfigData?.agentConnectionConfig.scopes ?? [];\n\n const {\n data: graphData,\n previousData,\n loading,\n error,\n } = useGetAgentGraphQuery({\n variables: {\n workspaceId: workspaceId || '',\n rootAgentId: rootAgentId || undefined,\n },\n skip: !workspaceId,\n });\n\n const resolvedAgentGraph = graphData?.agentGraph ?? previousData?.agentGraph;\n const graphTargets = resolvedAgentGraph?.targets ?? [];\n const graphConnections = resolvedAgentGraph?.connections ?? [];\n const isGraphLoading = loading;\n // Covers first load (including first scoped load) when no prior graph snapshot exists.\n const isInitialLoad = isGraphLoading && !resolvedAgentGraph;\n const isRefreshingGraph = isGraphLoading && Boolean(resolvedAgentGraph);\n\n const [updateConnectionPerms] = useUpdateConnectionPermissionsMutation();\n\n const handleNodeNavigate = useCallback(\n (nodeType: 'target' | 'agent', id: string) => {\n if (nodeType === 'target') {\n const targetParams = new URLSearchParams({\n tab: 'targets',\n selectedTargetId: id,\n });\n navigate(`/agents?${targetParams.toString()}`);\n return;\n }\n navigate(`/agents/${id}`);\n },\n [navigate]\n );\n\n const handleUpdatePermissions = useCallback(\n (connectionId: string, permissions: string[], scopes: string[]) => {\n void updateConnectionPerms({\n variables: { connectionId, input: { permissions, scopes } },\n });\n },\n [updateConnectionPerms]\n );\n\n if (permissionsLoading)\n return (\n <div className=\"flex items-center justify-center min-h-[400px]\">\n <p className=\"text-text-secondary\">Loading permissions...</p>\n </div>\n );\n if (!hasPermission(VIBE_PERMISSIONS.AGENT_READ))\n return (\n <div className=\"flex items-center justify-center min-h-[400px]\">\n <div className=\"text-center space-y-2\">\n <h2 className=\"text-lg font-semibold text-foreground\">Access Denied</h2>\n <p className=\"text-sm text-text-secondary\">\n You don't have permission to access this page.\n </p>\n </div>\n </div>\n );\n\n return (\n <MotionPage>\n <PageHeader\n title={tr('nav.agentGraph', 'Agent Graph')}\n description={tr(\n 'agentGraph.description',\n 'Visualize and manage connections between targets and agents.'\n )}\n />\n\n {isInitialLoad && (\n <LoadingState message={tr('agentGraph.loading', 'Loading agent graph...')} />\n )}\n\n {/* Non-fatal error: show banner but don't hide graph if data is available */}\n {!isGraphLoading && error && graphTargets.length === 0 && (\n <ErrorState\n title={tr('agentGraph.failedLoad', 'Failed to load agent graph')}\n message={error.message}\n />\n )}\n\n {!isGraphLoading && !error && graphTargets.length === 0 && !scopeValue && (\n <EmptyState\n icon={<Network className=\"w-8 h-8 text-text-secondary\" />}\n title={tr('agentGraph.noTargetsConnected', 'No targets connected')}\n description={tr(\n 'agentGraph.noTargetsDescription',\n 'Register an agent on a target to start visualizing your infrastructure topology.'\n )}\n action={\n <GetHelpButton prompt=\"What is the Agent Graph in VibeControls and what does it show?\" />\n }\n />\n )}\n\n {/* Scope controls + graph: shown whenever we have data, or when a scope filter is\n active (so the user can always clear the filter and recover the full view) */}\n {(graphTargets.length > 0 || scopeValue || isRefreshingGraph) && (\n <>\n {/* Filters — always rendered so user can clear an active scope filter */}\n <div className=\"flex items-center gap-3 mt-4\">\n <div className=\"flex items-center gap-2\">\n <GitBranch size={16} className=\"text-text-tertiary\" />\n <span className=\"text-sm font-medium text-text-secondary\">\n {tr('agentGraph.countSummary', '{{targets}} targets, {{connections}} connections', {\n targets: graphTargets.length,\n connections: graphConnections.length,\n })}\n </span>\n\n {isRefreshingGraph && (\n <span\n role=\"status\"\n aria-live=\"polite\"\n className=\"inline-flex items-center gap-1.5 rounded-full border border-border-default bg-bg-surface px-2.5 py-1 text-xs font-medium text-text-secondary\"\n >\n <Loader2 className=\"h-3.5 w-3.5 animate-spin text-action-primary-bg\" />\n {tr('agentGraph.refreshing', 'Refreshing graph...')}\n </span>\n )}\n </div>\n <div className=\"flex-1\" />\n <div className=\"flex items-center gap-2\">\n <label className=\"text-xs font-medium text-text-secondary\">\n {tr('agentGraph.scopeLabel', 'Scope:')}\n </label>\n <SearchableSelect\n value={scopeValue}\n onChange={(v: string) => {\n setScopeValue(v);\n // If selecting a target, clear rootAgentId; if agent, set it\n if (v.startsWith('target:')) {\n setRootAgentId(null);\n } else {\n setRootAgentId(v || null);\n }\n }}\n options={scopeOptions}\n placeholder={tr('agentGraph.scopeAll', 'All targets & agents')}\n clearable\n disabled={isGraphLoading}\n dropdownAlign=\"right\"\n />\n </div>\n </div>\n\n {!isGraphLoading && error && (\n <ErrorState\n title={tr('agentGraph.failedRefresh', 'Failed to refresh agent graph')}\n message={error.message}\n />\n )}\n\n {!isGraphLoading && graphTargets.length === 0 && scopeValue && (\n <EmptyState\n icon={<Network className=\"w-8 h-8 text-text-secondary\" />}\n title={tr('agentGraph.noScopeResults', 'No results for this scope')}\n description={tr(\n 'agentGraph.noScopeDescription',\n 'No targets match the selected scope. Clear the filter to view all targets.'\n )}\n />\n )}\n\n {(graphTargets.length > 0 || isRefreshingGraph) && (\n <div\n className=\"mt-4 relative\"\n style={{ height: 'calc(100vh - 280px)', minHeight: '400px' }}\n aria-busy={isRefreshingGraph}\n >\n <AgentGraphView\n targets={\n graphTargets as Array<{\n id: string;\n name: string;\n type: string;\n status: string;\n host?: string | null;\n agents: Array<{ id: string; name: string; version: string; isActive: boolean }>;\n }>\n }\n connections={\n graphConnections as Array<{\n id: string;\n protocol: string;\n status: string;\n permissions?: string[];\n scopes?: string[];\n label?: string | null;\n description?: string | null;\n sourceAgent: { id: string; name: string };\n target: { id: string; name: string; type: string };\n }>\n }\n onUpdatePermissions={handleUpdatePermissions}\n availablePermissions={availablePermissions}\n availableScopes={availableScopes}\n onNodeClick={handleNodeNavigate}\n fullHeight\n />\n {isRefreshingGraph && (\n <div className=\"absolute inset-0 z-10 flex items-center justify-center bg-bg-surface/60 backdrop-blur-[1px]\">\n <div className=\"inline-flex items-center gap-2 rounded-md border border-border-default bg-bg-surface px-3 py-2 text-sm text-text-secondary shadow-md\">\n <Loader2 className=\"h-4 w-4 animate-spin text-action-primary-bg\" />\n <span>\n {scopeValue\n ? tr('agentGraph.loadingScope', 'Applying selected scope...')\n : tr('agentGraph.refreshing', 'Refreshing graph...')}\n </span>\n </div>\n </div>\n )}\n </div>\n )}\n </>\n )}\n </MotionPage>\n );\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tabbed landing page for /vibecontrols/agents — exposed as "Targets & Agents"
|
|
3
|
+
* in the UI. Combines the previously-separate Targets, Agents, and Agent Graph
|
|
4
|
+
* screens into a single tabbed landing so users can move fluidly between
|
|
5
|
+
* managing hosts (targets), installed agents, and the topology view without
|
|
6
|
+
* losing context.
|
|
7
|
+
*
|
|
8
|
+
* Tab state is synced to `?tab=` so deep-links (e.g. `?tab=graph`) survive
|
|
9
|
+
* reloads; the default tab (`targets`) omits the query param for clean URLs.
|
|
10
|
+
*/
|
|
11
|
+
export declare function AgentsLandingPage(): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
//# sourceMappingURL=AgentsLandingPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AgentsLandingPage.d.ts","sourceRoot":"","sources":["../../src/pages/AgentsLandingPage.tsx"],"names":[],"mappings":"AAaA;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,4CAyFhC"}
|