@burdenoff/microfe-vibecontrols 2026.1008.2 → 2026.1010.2
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/dist/VibeControlsRoot.js +0 -2
- package/dist/VibeControlsRoutes.js +0 -2
- package/dist/components/actions/ActionCard.js +0 -2
- package/dist/components/actions/ActionForm.js +0 -2
- package/dist/components/actions/ActionSchedulesList.js +0 -2
- package/dist/components/actions/ActionTypeBadge.js +0 -2
- package/dist/components/actions/ActionWebhookEndpoint.js +0 -2
- package/dist/components/actions/ExecutionHistory.js +0 -2
- package/dist/components/actions/RemoteExecutionEnableNotice.js +0 -2
- package/dist/components/agent-manager/AgentManagerAdminBar.js +0 -2
- package/dist/components/agent-manager/AgentManagerBookmarksDrawer.js +0 -2
- package/dist/components/agent-manager/AgentManagerBulkActions.js +0 -2
- package/dist/components/agent-manager/AgentManagerCenter.js +0 -2
- package/dist/components/agent-manager/AgentManagerChatPane.js +0 -2
- package/dist/components/agent-manager/AgentManagerDetailPanel.js +0 -2
- package/dist/components/agent-manager/AgentManagerInputArea.js +0 -2
- package/dist/components/agent-manager/AgentManagerLayout.js +0 -2
- package/dist/components/agent-manager/AgentManagerMessageItem.js +0 -2
- package/dist/components/agent-manager/AgentManagerMessageList.js +0 -2
- package/dist/components/agent-manager/AgentManagerSessionItem.js +0 -2
- package/dist/components/agent-manager/AgentManagerSessionList.js +0 -2
- package/dist/components/agent-manager/AgentManagerSidebar.js +0 -2
- package/dist/components/agent-manager/AgentManagerStreamingIndicator.js +0 -2
- package/dist/components/agent-manager/AgentManagerTab.js +0 -2
- package/dist/components/agent-manager/AgentManagerTabBar.js +0 -2
- package/dist/components/agent-manager/BridleConfigPanel.js +0 -2
- package/dist/components/agent-manager/ChatInsertPicker.js +0 -2
- package/dist/components/agent-manager/FilePickerModal.js +0 -2
- package/dist/components/agent-manager/PluginInstallModal.js +0 -2
- package/dist/components/agent-manager/ProfilesPanel.js +0 -2
- package/dist/components/agent-manager/controls/AutonomySelector.js +0 -2
- package/dist/components/agent-manager/controls/ContextLevelToggle.js +0 -2
- package/dist/components/agent-manager/controls/FileAttachButton.js +0 -2
- package/dist/components/agent-manager/controls/McpServerSelector.js +0 -2
- package/dist/components/agent-manager/controls/ModelSelector.js +0 -2
- package/dist/components/agent-manager/controls/SdkSelector.js +0 -2
- package/dist/components/agent-manager/controls/VoiceToggle.js +0 -2
- package/dist/components/agent-manager/controls/createDropHandlers.js +0 -2
- package/dist/components/agent-manager/detail/SessionConfigPanel.js +0 -2
- package/dist/components/agent-manager/detail/SessionLogsPanel.js +0 -2
- package/dist/components/agent-manager/detail/SessionStatsPanel.js +0 -2
- package/dist/components/agent-manager/detail/SessionToolsPanel.js +0 -2
- package/dist/components/agent-manager/dialogs/ExportSessionDialog.js +0 -2
- package/dist/components/agent-manager/dialogs/NewSessionDialog.js +0 -2
- package/dist/components/agent-manager/dialogs/RenameSessionDialog.js +0 -2
- package/dist/components/agent-manager/dialogs/SessionSearchDialog.js +0 -2
- package/dist/components/agent-manager/modelDefaults.js +0 -2
- package/dist/components/agents/AgentCard.js +0 -2
- package/dist/components/agents/AgentConnectionRecovery.js +0 -2
- package/dist/components/agents/AgentForm.js +0 -2
- package/dist/components/agents/AgentList.js +0 -2
- package/dist/components/agents/AgentMaintenanceTab.js +0 -2
- package/dist/components/agents/AgentStatusBadge.js +0 -2
- package/dist/components/agents/AgentStorageConfig.js +0 -2
- package/dist/components/agents/AgentVisibilityCard.js +0 -2
- package/dist/components/agents/ConfigureAgentDialog.js +0 -2
- package/dist/components/agents/ConnectionLogPanel.js +0 -2
- package/dist/components/agents/CreateSessionDialog.js +0 -2
- package/dist/components/agents/GatewayAuthCard.js +0 -2
- package/dist/components/agents/OpenInBrowserEditorButton.js +0 -2
- package/dist/components/agents/OpenInEditorMenu.js +0 -2
- package/dist/components/agents/PluginUIPanel.js +0 -2
- package/dist/components/agents/RemoteTaskPermissionsCard.js +0 -2
- package/dist/components/agents/VibeOpenInEditorMenu.js +0 -2
- package/dist/components/agents/agentStatus.js +0 -2
- package/dist/components/agents/backup/AgentBackupTab.js +0 -2
- package/dist/components/agents/idePresets.js +0 -2
- package/dist/components/ai/AIContextsTab.js +0 -2
- package/dist/components/ai/AIKeysTab.js +0 -2
- package/dist/components/ai/AIModeToggle.js +0 -2
- package/dist/components/ai/AIOverviewTab.js +0 -2
- package/dist/components/ai/AIPlanPanel.js +0 -2
- package/dist/components/ai/AIPlaygroundTab.js +0 -2
- package/dist/components/ai/AIPromptsTab.js +0 -2
- package/dist/components/ai/AIProviderCredentialsCard.js +0 -2
- package/dist/components/ai/AIQueueTab.js +0 -2
- package/dist/components/ai/AISessionsTab.js +0 -2
- package/dist/components/ai/AIStatsTab.js +0 -2
- package/dist/components/ai/AITasksTab.js +0 -2
- package/dist/components/ai/AITemplatesTab.js +0 -2
- package/dist/components/ai/AiSectionTabs.js +0 -2
- package/dist/components/ai/BridleTab.js +0 -2
- package/dist/components/ai/ClaudeCredentialsCard.js +0 -2
- package/dist/components/ai/InstructionFilesManager.js +0 -2
- package/dist/components/ai/PluginHarnessPicker.js +0 -2
- package/dist/components/ai/aiProviderCredentials.js +0 -2
- package/dist/components/aliases/AliasManager.js +0 -2
- package/dist/components/aliases/aliasReservedNames.js +0 -2
- package/dist/components/analytics/AnalyticsBreakdownChart.js +0 -2
- package/dist/components/analytics/AnalyticsBreakdownTable.js +0 -2
- package/dist/components/analytics/AnalyticsEntityTabs.js +0 -2
- package/dist/components/analytics/AnalyticsFilterBar.js +0 -2
- package/dist/components/analytics/AnalyticsKpiGrid.js +0 -2
- package/dist/components/analytics/AnalyticsTimeSeriesChart.js +0 -2
- package/dist/components/analytics/SandboxAnalyticsSection.js +0 -2
- package/dist/components/analytics/types.js +0 -2
- package/dist/components/assistant/AIAssistantPanel.js +0 -2
- package/dist/components/assistant/AiCreditsMeter.js +0 -2
- package/dist/components/assistant/ProductMarkdown.js +0 -2
- package/dist/components/assistant/assistantProduct.js +0 -2
- package/dist/components/assistant/recordAdapters.js +0 -2
- package/dist/components/audit/AuditExportButton.js +0 -2
- package/dist/components/audit/AuditLogDetail.js +0 -2
- package/dist/components/audit/AuditLogFilters.js +0 -2
- package/dist/components/audit/AuditLogStats.js +0 -2
- package/dist/components/audit/AuditLogTable.js +0 -2
- package/dist/components/catalog/CatalogCard.js +0 -2
- package/dist/components/catalog/CatalogForm.js +0 -2
- package/dist/components/common/ActionAgentTargetNotice.js +0 -2
- package/dist/components/common/CommandEditor.js +0 -2
- package/dist/components/common/actionAgentTarget.js +0 -2
- package/dist/components/common/commandHighlight.js +0 -2
- package/dist/components/components/ComponentHealthCell.js +0 -2
- package/dist/components/components/ComponentTierBadge.js +0 -2
- package/dist/components/components/ComponentsTable.js +0 -2
- package/dist/components/docs/DocsCompileStatus.js +0 -2
- package/dist/components/docs/DocsEditPanel.js +0 -2
- package/dist/components/docs/DocsEmptyState.js +0 -2
- package/dist/components/docs/DocsFullScreenViewer.js +0 -2
- package/dist/components/docs/DocsPageEditor.js +0 -2
- package/dist/components/docs/DocsPageTree.js +0 -2
- package/dist/components/docs/DocsPreviewPanel.js +0 -2
- package/dist/components/docs/DocsRevisionHistory.js +0 -2
- package/dist/components/docs/DocsSettingsPanel.js +0 -2
- package/dist/components/docs/DocsTabPanel.js +0 -2
- package/dist/components/docs/previewHtml.js +0 -2
- package/dist/components/docs/types.js +0 -2
- package/dist/components/gitops/CIDurationChart.js +0 -2
- package/dist/components/gitops/CIFailedRuns.js +0 -2
- package/dist/components/gitops/CIPipelineRunsTable.js +0 -2
- package/dist/components/gitops/CISuccessRateChart.js +0 -2
- package/dist/components/gitops/CITab.js +0 -2
- package/dist/components/gitops/CIWorkflowList.js +0 -2
- package/dist/components/gitops/GitOpsProviderPicker.js +0 -2
- package/dist/components/gitops/GitOpsSetup.js +0 -2
- package/dist/components/gitops/GitOpsSkeleton.js +0 -2
- package/dist/components/gitops/GitOpsStatusBadge.js +0 -2
- package/dist/components/gitops/ProviderIcon.js +0 -2
- package/dist/components/gitops/RepoActivityCard.js +0 -2
- package/dist/components/gitops/RepoIssuesCard.js +0 -2
- package/dist/components/gitops/RepoLanguagesCard.js +0 -2
- package/dist/components/gitops/RepoOverviewCard.js +0 -2
- package/dist/components/gitops/RepoPullRequestsCard.js +0 -2
- package/dist/components/gitops/RepoSecurityCard.js +0 -2
- package/dist/components/gitops/RepoStatsTab.js +0 -2
- package/dist/components/gitops/VibeGitOpsTab.js +0 -2
- package/dist/components/gitops/types.js +0 -2
- package/dist/components/graph/ConnectionPermissionsDialog.js +0 -2
- package/dist/components/graph/MeshAgentNode.js +0 -2
- package/dist/components/graph/MeshDeployWizard.js +0 -2
- package/dist/components/graph/MeshGraphView.js +0 -2
- package/dist/components/graph/MeshNodeActions.js +0 -2
- package/dist/components/graph/MeshRequestPanel.js +0 -2
- package/dist/components/graph/meshTypes.js +0 -2
- package/dist/components/graph/nodeIcons.js +0 -2
- package/dist/components/idp-components/ComponentCard.js +0 -2
- package/dist/components/idp-components/ComponentForm.js +0 -2
- package/dist/components/idp-components/DependencyGraphTab.js +0 -2
- package/dist/components/logs/LogViewer.js +0 -2
- package/dist/components/notes/NoteCard.js +0 -2
- package/dist/components/notes/NoteEditor.js +0 -2
- package/dist/components/notes/NoteList.js +0 -2
- package/dist/components/notes/NotesTabPanel.js +0 -2
- package/dist/components/overview/FleetActivityAreaChart.js +0 -2
- package/dist/components/overview/FleetActivityChart.js +0 -2
- package/dist/components/overview/FleetHealthCard.js +0 -2
- package/dist/components/overview/QuickActionsCard.js +0 -2
- package/dist/components/overview/useFleetAnalytics.js +0 -2
- package/dist/components/plugins/AddTabDialog.js +0 -2
- package/dist/components/plugins/FleetRolloutDialog.js +0 -2
- package/dist/components/plugins/PluginIframeMount.js +0 -2
- package/dist/components/plugins/useFleetPluginMatrix.js +0 -2
- package/dist/components/scorecard/MetricTrend.js +0 -2
- package/dist/components/scorecard/ScorecardEmptyState.js +0 -2
- package/dist/components/scorecard/ScorecardPanel.js +0 -2
- package/dist/components/scorecard/ScorecardsOverviewPanel.js +0 -2
- package/dist/components/scorecard/scorecardConstants.js +0 -2
- package/dist/components/security/SecurityRunButton.js +0 -2
- package/dist/components/security/SecurityScanList.js +0 -2
- package/dist/components/security/SecurityTabPanel.js +0 -2
- package/dist/components/security/agentClient.js +0 -2
- package/dist/components/security/hooks.js +0 -2
- package/dist/components/security/types.js +0 -2
- package/dist/components/sessions/CollaboratorsList.js +0 -2
- package/dist/components/sessions/ControlStatusBar.js +0 -2
- package/dist/components/sessions/EntityInfoPopover.js +0 -2
- package/dist/components/sessions/SessionCard.js +0 -2
- package/dist/components/sessions/SessionGroup.js +0 -2
- package/dist/components/sessions/SessionInfoPanel.js +0 -2
- package/dist/components/sessions/SessionList.js +0 -2
- package/dist/components/sessions/SessionPublicLinkPanel.js +0 -2
- package/dist/components/sessions/SessionShareDialog.js +0 -2
- package/dist/components/sessions/SessionStatusBadge.js +0 -2
- package/dist/components/sessions/SessionWorkbenchDrawer.js +0 -2
- package/dist/components/sessions/SessionsCommandPalette.js +0 -2
- package/dist/components/sessions/SharedTerminalPanel.js +0 -2
- package/dist/components/sessions/ShortcutCheatsheet.js +0 -2
- package/dist/components/sessions/TerminalIframe.js +0 -2
- package/dist/components/sessions/TerminalPanel.js +0 -2
- package/dist/components/sessions/groupSessions.js +0 -2
- package/dist/components/sessions/sessionShortcuts.js +0 -2
- package/dist/components/settings/AdvancedSection.js +0 -2
- package/dist/components/settings/IdePreferencesSection.js +0 -2
- package/dist/components/settings/NotificationsSection.js +0 -2
- package/dist/components/settings/SettingsForm.js +0 -2
- package/dist/components/settings/WorkspaceDefaultsSection.js +0 -2
- package/dist/components/shared/ActionMenu.js +0 -2
- package/dist/components/shared/AgentEventsConnector.js +0 -2
- package/dist/components/shared/AgentSelector.js +0 -2
- package/dist/components/shared/AgentSetupBanner.js +0 -2
- package/dist/components/shared/Card.js +0 -2
- package/dist/components/shared/ConfirmDialog.js +0 -2
- package/dist/components/shared/EmptyState.js +0 -2
- package/dist/components/shared/EnableRemoteTaskDialog.js +0 -2
- package/dist/components/shared/EntityTagPicker.js +0 -2
- package/dist/components/shared/EntityVibeLinkControl.js +0 -2
- package/dist/components/shared/ErrorState.js +0 -2
- package/dist/components/shared/FilterDropdown.js +0 -2
- package/dist/components/shared/GetHelpButton.js +0 -2
- package/dist/components/shared/InstallTabs.js +0 -2
- package/dist/components/shared/LinkToVibePanel.js +0 -2
- package/dist/components/shared/LoadingState.js +0 -2
- package/dist/components/shared/MotionTabPanel.js +0 -2
- package/dist/components/shared/NotificationToast.js +0 -2
- package/dist/components/shared/PageHeader.js +0 -2
- package/dist/components/shared/PageSkeleton.js +0 -2
- package/dist/components/shared/PlatformIcon.js +0 -2
- package/dist/components/shared/PluginGate.js +0 -2
- package/dist/components/shared/PromptDialog.js +0 -2
- package/dist/components/shared/QuotaExhaustedDialog.js +0 -2
- package/dist/components/shared/RequireAgentReachable.js +0 -2
- package/dist/components/shared/SearchInput.js +0 -2
- package/dist/components/shared/SearchableSelect.js +0 -2
- package/dist/components/shared/SelectionCheckbox.js +0 -2
- package/dist/components/shared/SessionNotificationBanner.js +0 -2
- package/dist/components/shared/StatCard.js +0 -2
- package/dist/components/shared/StatusBadge.js +0 -2
- package/dist/components/shared/TagFilter.js +0 -2
- package/dist/components/shared/cardMotion.js +0 -2
- package/dist/components/shared/platformIconPaths.js +0 -2
- package/dist/components/sharing/EntityShareButton.js +0 -2
- package/dist/components/sharing/NoteShareDialog.js +0 -2
- package/dist/components/sharing/SharedWithMePanel.js +0 -2
- package/dist/components/sharing/VibeShareButton.js +0 -2
- package/dist/components/sharing/entityShareOps.js +0 -2
- package/dist/components/sharing/shareControllerTypes.js +0 -2
- package/dist/components/sharing/shareRegistry.js +0 -2
- package/dist/components/sharing/useEntityShareController.js +0 -2
- package/dist/components/sharing/useNoteShareController.js +0 -2
- package/dist/components/sharing/useVibeShareController.js +0 -2
- package/dist/components/targets/TargetCard.js +0 -2
- package/dist/components/templates/PublishTemplateForm.js +0 -2
- package/dist/components/templates/TemplateCard.js +0 -2
- package/dist/components/templates/TemplateVariableEditor.js +0 -2
- package/dist/components/templates/TemplateWizard.js +0 -2
- package/dist/components/tunnels/DomainVerificationBadge.js +0 -2
- package/dist/components/tunnels/ProviderBadge.js +0 -2
- package/dist/components/tunnels/TunnelCard.js +0 -2
- package/dist/components/tunnels/TunnelConnectionCard.js +0 -2
- package/dist/components/tunnels/TunnelCopyButton.js +0 -2
- package/dist/components/tunnels/TunnelCreateWizard.js +0 -2
- package/dist/components/tunnels/TunnelMetricTiles.js +0 -2
- package/dist/components/tunnels/TunnelPublicAccessPanel.js +0 -2
- package/dist/components/tunnels/TunnelSparkline.js +0 -2
- package/dist/components/tunnels/TunnelStatusBadge.js +0 -2
- package/dist/components/tunnels/tunnelEndpoints.js +0 -2
- package/dist/components/tunnels/tunnelMetrics.js +0 -2
- package/dist/components/vibe/VibeAgentEmptyState.js +0 -2
- package/dist/components/vibe/VibeAgentSwitcher.js +0 -2
- package/dist/components/vibe/VibeEnvVarsPanel.js +0 -2
- package/dist/components/vibe/VibeLinkedEntitiesPanel.js +0 -2
- package/dist/components/vibe/VibeLlmContextAdminPanel.js +0 -2
- package/dist/components/vibe/VibeLlmContextTabPanel.js +0 -2
- package/dist/components/vibecalendar/LogsDrawer.js +0 -2
- package/dist/components/vibecalendar/ScheduleTaskModal.js +0 -2
- package/dist/components/vibecalendar/VibeCalAgendaView.js +0 -2
- package/dist/components/vibecalendar/VibeCalDayView.js +0 -2
- package/dist/components/vibecalendar/VibeCalMonthView.js +0 -2
- package/dist/components/vibecalendar/VibeCalWeekView.js +0 -2
- package/dist/components/vibecalendar/VibeCalendarHeader.js +0 -2
- package/dist/components/vibecalendar/VibeTaskBlock.js +0 -2
- package/dist/components/vibecalendar/expandOccurrences.js +0 -2
- package/dist/components/vibecalendar/types.js +0 -2
- package/dist/components/vibedeck/VibeDeckButtonForm.js +0 -2
- package/dist/components/vibedeck/VibeDeckButtonTile.js +0 -2
- package/dist/components/vibedeck/VibeDeckExecutionLog.js +0 -2
- package/dist/components/vibedeck/VibeDeckForm.js +0 -2
- package/dist/components/vibedeck/VibeDeckGrid.js +0 -2
- package/dist/components/vibedeck/VibeDeckPublicLinkPanel.js +0 -2
- package/dist/components/vibedeck/VibeDeckShareDialog.js +0 -2
- package/dist/components/vibedeck/VibeDeckSwitcher.js +0 -2
- package/dist/components/vibes/DeleteVibeDialog.js +0 -2
- package/dist/components/vibes/VibeCard.js +0 -2
- package/dist/components/vibes/VibeList.js +0 -2
- package/dist/components/vibes/icons.js +0 -2
- package/dist/components/webhooks/types.js +0 -2
- package/dist/config/assistantUsecases.js +0 -2
- package/dist/config/index.js +0 -2
- package/dist/constants/aiTabs.js +0 -2
- package/dist/constants/permissions.js +0 -2
- package/dist/constants/pluginCatalog.js +0 -2
- package/dist/generated/wspace-operations.js +0 -2
- package/dist/generated/wspace-types.js +0 -2
- package/dist/hooks/useActiveAgentProfile.js +0 -2
- package/dist/hooks/useAgentConnectivity.js +0 -2
- package/dist/hooks/useAgentEvents.js +0 -2
- package/dist/hooks/useAgentManagerKeyboard.js +0 -2
- package/dist/hooks/useAgentManagerStreaming.js +0 -2
- package/dist/hooks/useAiCreditsQuota.js +0 -2
- package/dist/hooks/useCachedInitialData.js +0 -2
- package/dist/hooks/useDraftEntityTags.js +0 -2
- package/dist/hooks/useEntityTags.js +0 -2
- package/dist/hooks/useGitops.js +0 -2
- package/dist/hooks/useInitialDataLoader.js +0 -2
- package/dist/hooks/useOfferedAssistantMode.js +0 -2
- package/dist/hooks/useOpenAssistantHelp.js +0 -2
- package/dist/hooks/usePluginAvailability.js +0 -2
- package/dist/hooks/useQueryBackedTab.js +0 -2
- package/dist/hooks/useTenantContext.js +0 -2
- package/dist/hooks/useTerminalCapabilityUrl.js +0 -2
- package/dist/hooks/useToggleAgentBookmark.js +0 -2
- package/dist/hooks/useVoiceMode.js +0 -2
- package/dist/hooks/useWorkspaceWriteAccess.js +0 -2
- package/dist/lib/apolloCache.js +0 -2
- package/dist/lib/toast.js +0 -2
- package/dist/lib/vibeFeatures.js +0 -2
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js +0 -2
- package/dist/node_modules/@apollo/client/errors/ServerError.js +0 -2
- package/dist/node_modules/@apollo/client/errors/ServerParseError.js +0 -2
- package/dist/node_modules/@apollo/client/errors/utils.js +0 -2
- package/dist/node_modules/@apollo/client/link/batch/batchLink.js +0 -2
- package/dist/node_modules/@apollo/client/link/batch/batching.js +0 -2
- package/dist/node_modules/@apollo/client/link/batch-http/BaseBatchHttpLink.js +0 -2
- package/dist/node_modules/@apollo/client/link/batch-http/batchHttpLink.js +0 -2
- package/dist/node_modules/@apollo/client/link/client-awareness/ClientAwarenessLink.js +0 -2
- package/dist/node_modules/@apollo/client/link/core/ApolloLink.js +0 -2
- package/dist/node_modules/@apollo/client/link/http/checkFetcher.js +0 -2
- package/dist/node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js +0 -2
- package/dist/node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js +0 -2
- package/dist/node_modules/@apollo/client/link/http/selectURI.js +0 -2
- package/dist/node_modules/@apollo/client/link/utils/createOperation.js +0 -2
- package/dist/node_modules/@apollo/client/link/utils/filterOperationVariables.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/caching/sizes.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/graphql/print.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/caches.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/compact.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/memoize.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js +0 -2
- package/dist/node_modules/@apollo/client/utilities/invariant/index.js +0 -2
- package/dist/node_modules/@apollo/client/version.js +0 -2
- package/dist/node_modules/@wry/caches/lib/weak.js +0 -2
- package/dist/node_modules/@wry/trie/lib/index.js +0 -2
- package/dist/node_modules/clsx/dist/clsx.js +0 -2
- package/dist/node_modules/d3-array/src/ascending.js +0 -2
- package/dist/node_modules/d3-array/src/bisect.js +0 -2
- package/dist/node_modules/d3-array/src/bisector.js +0 -2
- package/dist/node_modules/d3-array/src/descending.js +0 -2
- package/dist/node_modules/d3-array/src/max.js +0 -2
- package/dist/node_modules/d3-array/src/min.js +0 -2
- package/dist/node_modules/d3-array/src/number.js +0 -2
- package/dist/node_modules/d3-array/src/quantile.js +0 -2
- package/dist/node_modules/d3-array/src/quickselect.js +0 -2
- package/dist/node_modules/d3-array/src/range.js +0 -2
- package/dist/node_modules/d3-array/src/sort.js +0 -2
- package/dist/node_modules/d3-array/src/ticks.js +0 -2
- package/dist/node_modules/d3-color/src/color.js +0 -2
- package/dist/node_modules/d3-color/src/define.js +0 -2
- package/dist/node_modules/d3-format/src/defaultLocale.js +0 -2
- package/dist/node_modules/d3-format/src/exponent.js +0 -2
- package/dist/node_modules/d3-format/src/formatDecimal.js +0 -2
- package/dist/node_modules/d3-format/src/formatGroup.js +0 -2
- package/dist/node_modules/d3-format/src/formatNumerals.js +0 -2
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js +0 -2
- package/dist/node_modules/d3-format/src/formatRounded.js +0 -2
- package/dist/node_modules/d3-format/src/formatSpecifier.js +0 -2
- package/dist/node_modules/d3-format/src/formatTrim.js +0 -2
- package/dist/node_modules/d3-format/src/formatTypes.js +0 -2
- package/dist/node_modules/d3-format/src/identity.js +0 -2
- package/dist/node_modules/d3-format/src/locale.js +0 -2
- package/dist/node_modules/d3-format/src/precisionFixed.js +0 -2
- package/dist/node_modules/d3-format/src/precisionPrefix.js +0 -2
- package/dist/node_modules/d3-format/src/precisionRound.js +0 -2
- package/dist/node_modules/d3-interpolate/src/array.js +0 -2
- package/dist/node_modules/d3-interpolate/src/basis.js +0 -2
- package/dist/node_modules/d3-interpolate/src/basisClosed.js +0 -2
- package/dist/node_modules/d3-interpolate/src/color.js +0 -2
- package/dist/node_modules/d3-interpolate/src/constant.js +0 -2
- package/dist/node_modules/d3-interpolate/src/date.js +0 -2
- package/dist/node_modules/d3-interpolate/src/number.js +0 -2
- package/dist/node_modules/d3-interpolate/src/numberArray.js +0 -2
- package/dist/node_modules/d3-interpolate/src/object.js +0 -2
- package/dist/node_modules/d3-interpolate/src/piecewise.js +0 -2
- package/dist/node_modules/d3-interpolate/src/rgb.js +0 -2
- package/dist/node_modules/d3-interpolate/src/round.js +0 -2
- package/dist/node_modules/d3-interpolate/src/string.js +0 -2
- package/dist/node_modules/d3-interpolate/src/value.js +0 -2
- package/dist/node_modules/d3-path/src/path.js +0 -2
- package/dist/node_modules/d3-scale/src/band.js +0 -2
- package/dist/node_modules/d3-scale/src/constant.js +0 -2
- package/dist/node_modules/d3-scale/src/continuous.js +0 -2
- package/dist/node_modules/d3-scale/src/diverging.js +0 -2
- package/dist/node_modules/d3-scale/src/identity.js +0 -2
- package/dist/node_modules/d3-scale/src/init.js +0 -2
- package/dist/node_modules/d3-scale/src/linear.js +0 -2
- package/dist/node_modules/d3-scale/src/log.js +0 -2
- package/dist/node_modules/d3-scale/src/nice.js +0 -2
- package/dist/node_modules/d3-scale/src/number.js +0 -2
- package/dist/node_modules/d3-scale/src/ordinal.js +0 -2
- package/dist/node_modules/d3-scale/src/pow.js +0 -2
- package/dist/node_modules/d3-scale/src/quantile.js +0 -2
- package/dist/node_modules/d3-scale/src/quantize.js +0 -2
- package/dist/node_modules/d3-scale/src/radial.js +0 -2
- package/dist/node_modules/d3-scale/src/sequential.js +0 -2
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js +0 -2
- package/dist/node_modules/d3-scale/src/symlog.js +0 -2
- package/dist/node_modules/d3-scale/src/threshold.js +0 -2
- package/dist/node_modules/d3-scale/src/tickFormat.js +0 -2
- package/dist/node_modules/d3-scale/src/time.js +0 -2
- package/dist/node_modules/d3-scale/src/utcTime.js +0 -2
- package/dist/node_modules/d3-shape/src/area.js +0 -2
- package/dist/node_modules/d3-shape/src/array.js +0 -2
- package/dist/node_modules/d3-shape/src/constant.js +0 -2
- package/dist/node_modules/d3-shape/src/curve/basis.js +0 -2
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js +0 -2
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js +0 -2
- package/dist/node_modules/d3-shape/src/curve/bump.js +0 -2
- package/dist/node_modules/d3-shape/src/curve/linear.js +0 -2
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js +0 -2
- package/dist/node_modules/d3-shape/src/curve/monotone.js +0 -2
- package/dist/node_modules/d3-shape/src/curve/natural.js +0 -2
- package/dist/node_modules/d3-shape/src/curve/step.js +0 -2
- package/dist/node_modules/d3-shape/src/line.js +0 -2
- package/dist/node_modules/d3-shape/src/math.js +0 -2
- package/dist/node_modules/d3-shape/src/noop.js +0 -2
- package/dist/node_modules/d3-shape/src/offset/expand.js +0 -2
- package/dist/node_modules/d3-shape/src/offset/none.js +0 -2
- package/dist/node_modules/d3-shape/src/offset/silhouette.js +0 -2
- package/dist/node_modules/d3-shape/src/offset/wiggle.js +0 -2
- package/dist/node_modules/d3-shape/src/order/none.js +0 -2
- package/dist/node_modules/d3-shape/src/path.js +0 -2
- package/dist/node_modules/d3-shape/src/point.js +0 -2
- package/dist/node_modules/d3-shape/src/stack.js +0 -2
- package/dist/node_modules/d3-shape/src/symbol/circle.js +0 -2
- package/dist/node_modules/d3-shape/src/symbol/cross.js +0 -2
- package/dist/node_modules/d3-shape/src/symbol/diamond.js +0 -2
- package/dist/node_modules/d3-shape/src/symbol/square.js +0 -2
- package/dist/node_modules/d3-shape/src/symbol/star.js +0 -2
- package/dist/node_modules/d3-shape/src/symbol/triangle.js +0 -2
- package/dist/node_modules/d3-shape/src/symbol/wye.js +0 -2
- package/dist/node_modules/d3-shape/src/symbol.js +0 -2
- package/dist/node_modules/d3-time/src/day.js +0 -2
- package/dist/node_modules/d3-time/src/duration.js +0 -2
- package/dist/node_modules/d3-time/src/hour.js +0 -2
- package/dist/node_modules/d3-time/src/interval.js +0 -2
- package/dist/node_modules/d3-time/src/millisecond.js +0 -2
- package/dist/node_modules/d3-time/src/minute.js +0 -2
- package/dist/node_modules/d3-time/src/month.js +0 -2
- package/dist/node_modules/d3-time/src/second.js +0 -2
- package/dist/node_modules/d3-time/src/ticks.js +0 -2
- package/dist/node_modules/d3-time/src/week.js +0 -2
- package/dist/node_modules/d3-time/src/year.js +0 -2
- package/dist/node_modules/d3-time-format/src/defaultLocale.js +0 -2
- package/dist/node_modules/d3-time-format/src/locale.js +0 -2
- package/dist/node_modules/dagre/index.js +0 -2
- package/dist/node_modules/dagre/lib/acyclic.js +0 -2
- package/dist/node_modules/dagre/lib/add-border-segments.js +0 -2
- package/dist/node_modules/dagre/lib/coordinate-system.js +0 -2
- package/dist/node_modules/dagre/lib/data/list.js +0 -2
- package/dist/node_modules/dagre/lib/debug.js +0 -2
- package/dist/node_modules/dagre/lib/graphlib.js +0 -2
- package/dist/node_modules/dagre/lib/greedy-fas.js +0 -2
- package/dist/node_modules/dagre/lib/layout.js +0 -2
- package/dist/node_modules/dagre/lib/lodash.js +0 -2
- package/dist/node_modules/dagre/lib/nesting-graph.js +0 -2
- package/dist/node_modules/dagre/lib/normalize.js +0 -2
- package/dist/node_modules/dagre/lib/order/add-subgraph-constraints.js +0 -2
- package/dist/node_modules/dagre/lib/order/barycenter.js +0 -2
- package/dist/node_modules/dagre/lib/order/build-layer-graph.js +0 -2
- package/dist/node_modules/dagre/lib/order/cross-count.js +0 -2
- package/dist/node_modules/dagre/lib/order/index.js +0 -2
- package/dist/node_modules/dagre/lib/order/init-order.js +0 -2
- package/dist/node_modules/dagre/lib/order/resolve-conflicts.js +0 -2
- package/dist/node_modules/dagre/lib/order/sort-subgraph.js +0 -2
- package/dist/node_modules/dagre/lib/order/sort.js +0 -2
- package/dist/node_modules/dagre/lib/parent-dummy-chains.js +0 -2
- package/dist/node_modules/dagre/lib/position/bk.js +0 -2
- package/dist/node_modules/dagre/lib/position/index.js +0 -2
- package/dist/node_modules/dagre/lib/rank/feasible-tree.js +0 -2
- package/dist/node_modules/dagre/lib/rank/index.js +0 -2
- package/dist/node_modules/dagre/lib/rank/network-simplex.js +0 -2
- package/dist/node_modules/dagre/lib/rank/util.js +0 -2
- package/dist/node_modules/dagre/lib/util.js +0 -2
- package/dist/node_modules/dagre/lib/version.js +0 -2
- package/dist/node_modules/decimal.js-light/decimal.js +0 -2
- package/dist/node_modules/eventemitter3/index.js +0 -2
- package/dist/node_modules/fast-equals/dist/es/index.js +0 -2
- package/dist/node_modules/graphlib/index.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/components.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/dfs.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/dijkstra-all.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/dijkstra.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/find-cycles.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/floyd-warshall.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/index.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/is-acyclic.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/postorder.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/preorder.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/prim.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/tarjan.js +0 -2
- package/dist/node_modules/graphlib/lib/alg/topsort.js +0 -2
- package/dist/node_modules/graphlib/lib/data/priority-queue.js +0 -2
- package/dist/node_modules/graphlib/lib/graph.js +0 -2
- package/dist/node_modules/graphlib/lib/index.js +0 -2
- package/dist/node_modules/graphlib/lib/json.js +0 -2
- package/dist/node_modules/graphlib/lib/lodash.js +0 -2
- package/dist/node_modules/graphlib/lib/version.js +0 -2
- package/dist/node_modules/internmap/src/index.js +0 -2
- package/dist/node_modules/lodash/_DataView.js +0 -2
- package/dist/node_modules/lodash/_Hash.js +0 -2
- package/dist/node_modules/lodash/_ListCache.js +0 -2
- package/dist/node_modules/lodash/_Map.js +0 -2
- package/dist/node_modules/lodash/_MapCache.js +0 -2
- package/dist/node_modules/lodash/_Promise.js +0 -2
- package/dist/node_modules/lodash/_Set.js +0 -2
- package/dist/node_modules/lodash/_SetCache.js +0 -2
- package/dist/node_modules/lodash/_Stack.js +0 -2
- package/dist/node_modules/lodash/_Symbol.js +0 -2
- package/dist/node_modules/lodash/_Uint8Array.js +0 -2
- package/dist/node_modules/lodash/_WeakMap.js +0 -2
- package/dist/node_modules/lodash/_apply.js +0 -2
- package/dist/node_modules/lodash/_arrayEach.js +0 -2
- package/dist/node_modules/lodash/_arrayEvery.js +0 -2
- package/dist/node_modules/lodash/_arrayFilter.js +0 -2
- package/dist/node_modules/lodash/_arrayIncludes.js +0 -2
- package/dist/node_modules/lodash/_arrayIncludesWith.js +0 -2
- package/dist/node_modules/lodash/_arrayLikeKeys.js +0 -2
- package/dist/node_modules/lodash/_arrayMap.js +0 -2
- package/dist/node_modules/lodash/_arrayPush.js +0 -2
- package/dist/node_modules/lodash/_arrayReduce.js +0 -2
- package/dist/node_modules/lodash/_arraySome.js +0 -2
- package/dist/node_modules/lodash/_asciiSize.js +0 -2
- package/dist/node_modules/lodash/_asciiToArray.js +0 -2
- package/dist/node_modules/lodash/_assignMergeValue.js +0 -2
- package/dist/node_modules/lodash/_assignValue.js +0 -2
- package/dist/node_modules/lodash/_assocIndexOf.js +0 -2
- package/dist/node_modules/lodash/_baseAssign.js +0 -2
- package/dist/node_modules/lodash/_baseAssignIn.js +0 -2
- package/dist/node_modules/lodash/_baseAssignValue.js +0 -2
- package/dist/node_modules/lodash/_baseClone.js +0 -2
- package/dist/node_modules/lodash/_baseCreate.js +0 -2
- package/dist/node_modules/lodash/_baseEach.js +0 -2
- package/dist/node_modules/lodash/_baseEvery.js +0 -2
- package/dist/node_modules/lodash/_baseExtremum.js +0 -2
- package/dist/node_modules/lodash/_baseFilter.js +0 -2
- package/dist/node_modules/lodash/_baseFindIndex.js +0 -2
- package/dist/node_modules/lodash/_baseFlatten.js +0 -2
- package/dist/node_modules/lodash/_baseFor.js +0 -2
- package/dist/node_modules/lodash/_baseForOwn.js +0 -2
- package/dist/node_modules/lodash/_baseGet.js +0 -2
- package/dist/node_modules/lodash/_baseGetAllKeys.js +0 -2
- package/dist/node_modules/lodash/_baseGetTag.js +0 -2
- package/dist/node_modules/lodash/_baseGt.js +0 -2
- package/dist/node_modules/lodash/_baseHas.js +0 -2
- package/dist/node_modules/lodash/_baseHasIn.js +0 -2
- package/dist/node_modules/lodash/_baseIndexOf.js +0 -2
- package/dist/node_modules/lodash/_baseIsArguments.js +0 -2
- package/dist/node_modules/lodash/_baseIsEqual.js +0 -2
- package/dist/node_modules/lodash/_baseIsEqualDeep.js +0 -2
- package/dist/node_modules/lodash/_baseIsMap.js +0 -2
- package/dist/node_modules/lodash/_baseIsMatch.js +0 -2
- package/dist/node_modules/lodash/_baseIsNaN.js +0 -2
- package/dist/node_modules/lodash/_baseIsNative.js +0 -2
- package/dist/node_modules/lodash/_baseIsSet.js +0 -2
- package/dist/node_modules/lodash/_baseIsTypedArray.js +0 -2
- package/dist/node_modules/lodash/_baseIteratee.js +0 -2
- package/dist/node_modules/lodash/_baseKeys.js +0 -2
- package/dist/node_modules/lodash/_baseKeysIn.js +0 -2
- package/dist/node_modules/lodash/_baseLt.js +0 -2
- package/dist/node_modules/lodash/_baseMap.js +0 -2
- package/dist/node_modules/lodash/_baseMatches.js +0 -2
- package/dist/node_modules/lodash/_baseMatchesProperty.js +0 -2
- package/dist/node_modules/lodash/_baseMerge.js +0 -2
- package/dist/node_modules/lodash/_baseMergeDeep.js +0 -2
- package/dist/node_modules/lodash/_baseOrderBy.js +0 -2
- package/dist/node_modules/lodash/_basePick.js +0 -2
- package/dist/node_modules/lodash/_basePickBy.js +0 -2
- package/dist/node_modules/lodash/_baseProperty.js +0 -2
- package/dist/node_modules/lodash/_basePropertyDeep.js +0 -2
- package/dist/node_modules/lodash/_baseRange.js +0 -2
- package/dist/node_modules/lodash/_baseReduce.js +0 -2
- package/dist/node_modules/lodash/_baseRest.js +0 -2
- package/dist/node_modules/lodash/_baseSet.js +0 -2
- package/dist/node_modules/lodash/_baseSetToString.js +0 -2
- package/dist/node_modules/lodash/_baseSlice.js +0 -2
- package/dist/node_modules/lodash/_baseSome.js +0 -2
- package/dist/node_modules/lodash/_baseSortBy.js +0 -2
- package/dist/node_modules/lodash/_baseTimes.js +0 -2
- package/dist/node_modules/lodash/_baseToString.js +0 -2
- package/dist/node_modules/lodash/_baseTrim.js +0 -2
- package/dist/node_modules/lodash/_baseUnary.js +0 -2
- package/dist/node_modules/lodash/_baseUniq.js +0 -2
- package/dist/node_modules/lodash/_baseValues.js +0 -2
- package/dist/node_modules/lodash/_baseZipObject.js +0 -2
- package/dist/node_modules/lodash/_cacheHas.js +0 -2
- package/dist/node_modules/lodash/_castFunction.js +0 -2
- package/dist/node_modules/lodash/_castPath.js +0 -2
- package/dist/node_modules/lodash/_castSlice.js +0 -2
- package/dist/node_modules/lodash/_cloneArrayBuffer.js +0 -2
- package/dist/node_modules/lodash/_cloneBuffer.js +0 -2
- package/dist/node_modules/lodash/_cloneDataView.js +0 -2
- package/dist/node_modules/lodash/_cloneRegExp.js +0 -2
- package/dist/node_modules/lodash/_cloneSymbol.js +0 -2
- package/dist/node_modules/lodash/_cloneTypedArray.js +0 -2
- package/dist/node_modules/lodash/_compareAscending.js +0 -2
- package/dist/node_modules/lodash/_compareMultiple.js +0 -2
- package/dist/node_modules/lodash/_copyArray.js +0 -2
- package/dist/node_modules/lodash/_copyObject.js +0 -2
- package/dist/node_modules/lodash/_copySymbols.js +0 -2
- package/dist/node_modules/lodash/_copySymbolsIn.js +0 -2
- package/dist/node_modules/lodash/_coreJsData.js +0 -2
- package/dist/node_modules/lodash/_createAssigner.js +0 -2
- package/dist/node_modules/lodash/_createBaseEach.js +0 -2
- package/dist/node_modules/lodash/_createBaseFor.js +0 -2
- package/dist/node_modules/lodash/_createCaseFirst.js +0 -2
- package/dist/node_modules/lodash/_createFind.js +0 -2
- package/dist/node_modules/lodash/_createRange.js +0 -2
- package/dist/node_modules/lodash/_createSet.js +0 -2
- package/dist/node_modules/lodash/_defineProperty.js +0 -2
- package/dist/node_modules/lodash/_equalArrays.js +0 -2
- package/dist/node_modules/lodash/_equalByTag.js +0 -2
- package/dist/node_modules/lodash/_equalObjects.js +0 -2
- package/dist/node_modules/lodash/_flatRest.js +0 -2
- package/dist/node_modules/lodash/_freeGlobal.js +0 -2
- package/dist/node_modules/lodash/_getAllKeys.js +0 -2
- package/dist/node_modules/lodash/_getAllKeysIn.js +0 -2
- package/dist/node_modules/lodash/_getMapData.js +0 -2
- package/dist/node_modules/lodash/_getMatchData.js +0 -2
- package/dist/node_modules/lodash/_getNative.js +0 -2
- package/dist/node_modules/lodash/_getPrototype.js +0 -2
- package/dist/node_modules/lodash/_getRawTag.js +0 -2
- package/dist/node_modules/lodash/_getSymbols.js +0 -2
- package/dist/node_modules/lodash/_getSymbolsIn.js +0 -2
- package/dist/node_modules/lodash/_getTag.js +0 -2
- package/dist/node_modules/lodash/_getValue.js +0 -2
- package/dist/node_modules/lodash/_hasPath.js +0 -2
- package/dist/node_modules/lodash/_hasUnicode.js +0 -2
- package/dist/node_modules/lodash/_hashClear.js +0 -2
- package/dist/node_modules/lodash/_hashDelete.js +0 -2
- package/dist/node_modules/lodash/_hashGet.js +0 -2
- package/dist/node_modules/lodash/_hashHas.js +0 -2
- package/dist/node_modules/lodash/_hashSet.js +0 -2
- package/dist/node_modules/lodash/_initCloneArray.js +0 -2
- package/dist/node_modules/lodash/_initCloneByTag.js +0 -2
- package/dist/node_modules/lodash/_initCloneObject.js +0 -2
- package/dist/node_modules/lodash/_isFlattenable.js +0 -2
- package/dist/node_modules/lodash/_isIndex.js +0 -2
- package/dist/node_modules/lodash/_isIterateeCall.js +0 -2
- package/dist/node_modules/lodash/_isKey.js +0 -2
- package/dist/node_modules/lodash/_isKeyable.js +0 -2
- package/dist/node_modules/lodash/_isMasked.js +0 -2
- package/dist/node_modules/lodash/_isPrototype.js +0 -2
- package/dist/node_modules/lodash/_isStrictComparable.js +0 -2
- package/dist/node_modules/lodash/_listCacheClear.js +0 -2
- package/dist/node_modules/lodash/_listCacheDelete.js +0 -2
- package/dist/node_modules/lodash/_listCacheGet.js +0 -2
- package/dist/node_modules/lodash/_listCacheHas.js +0 -2
- package/dist/node_modules/lodash/_listCacheSet.js +0 -2
- package/dist/node_modules/lodash/_mapCacheClear.js +0 -2
- package/dist/node_modules/lodash/_mapCacheDelete.js +0 -2
- package/dist/node_modules/lodash/_mapCacheGet.js +0 -2
- package/dist/node_modules/lodash/_mapCacheHas.js +0 -2
- package/dist/node_modules/lodash/_mapCacheSet.js +0 -2
- package/dist/node_modules/lodash/_mapToArray.js +0 -2
- package/dist/node_modules/lodash/_matchesStrictComparable.js +0 -2
- package/dist/node_modules/lodash/_memoizeCapped.js +0 -2
- package/dist/node_modules/lodash/_nativeCreate.js +0 -2
- package/dist/node_modules/lodash/_nativeKeys.js +0 -2
- package/dist/node_modules/lodash/_nativeKeysIn.js +0 -2
- package/dist/node_modules/lodash/_nodeUtil.js +0 -2
- package/dist/node_modules/lodash/_objectToString.js +0 -2
- package/dist/node_modules/lodash/_overArg.js +0 -2
- package/dist/node_modules/lodash/_overRest.js +0 -2
- package/dist/node_modules/lodash/_root.js +0 -2
- package/dist/node_modules/lodash/_safeGet.js +0 -2
- package/dist/node_modules/lodash/_setCacheAdd.js +0 -2
- package/dist/node_modules/lodash/_setCacheHas.js +0 -2
- package/dist/node_modules/lodash/_setToArray.js +0 -2
- package/dist/node_modules/lodash/_setToString.js +0 -2
- package/dist/node_modules/lodash/_shortOut.js +0 -2
- package/dist/node_modules/lodash/_stackClear.js +0 -2
- package/dist/node_modules/lodash/_stackDelete.js +0 -2
- package/dist/node_modules/lodash/_stackGet.js +0 -2
- package/dist/node_modules/lodash/_stackHas.js +0 -2
- package/dist/node_modules/lodash/_stackSet.js +0 -2
- package/dist/node_modules/lodash/_strictIndexOf.js +0 -2
- package/dist/node_modules/lodash/_stringSize.js +0 -2
- package/dist/node_modules/lodash/_stringToArray.js +0 -2
- package/dist/node_modules/lodash/_stringToPath.js +0 -2
- package/dist/node_modules/lodash/_toKey.js +0 -2
- package/dist/node_modules/lodash/_toSource.js +0 -2
- package/dist/node_modules/lodash/_trimmedEndIndex.js +0 -2
- package/dist/node_modules/lodash/_unicodeSize.js +0 -2
- package/dist/node_modules/lodash/_unicodeToArray.js +0 -2
- package/dist/node_modules/lodash/clone.js +0 -2
- package/dist/node_modules/lodash/cloneDeep.js +0 -2
- package/dist/node_modules/lodash/constant.js +0 -2
- package/dist/node_modules/lodash/debounce.js +0 -2
- package/dist/node_modules/lodash/defaults.js +0 -2
- package/dist/node_modules/lodash/each.js +0 -2
- package/dist/node_modules/lodash/eq.js +0 -2
- package/dist/node_modules/lodash/every.js +0 -2
- package/dist/node_modules/lodash/filter.js +0 -2
- package/dist/node_modules/lodash/find.js +0 -2
- package/dist/node_modules/lodash/findIndex.js +0 -2
- package/dist/node_modules/lodash/flatMap.js +0 -2
- package/dist/node_modules/lodash/flatten.js +0 -2
- package/dist/node_modules/lodash/forEach.js +0 -2
- package/dist/node_modules/lodash/forIn.js +0 -2
- package/dist/node_modules/lodash/get.js +0 -2
- package/dist/node_modules/lodash/has.js +0 -2
- package/dist/node_modules/lodash/hasIn.js +0 -2
- package/dist/node_modules/lodash/identity.js +0 -2
- package/dist/node_modules/lodash/isArguments.js +0 -2
- package/dist/node_modules/lodash/isArray.js +0 -2
- package/dist/node_modules/lodash/isArrayLike.js +0 -2
- package/dist/node_modules/lodash/isArrayLikeObject.js +0 -2
- package/dist/node_modules/lodash/isBoolean.js +0 -2
- package/dist/node_modules/lodash/isBuffer.js +0 -2
- package/dist/node_modules/lodash/isEmpty.js +0 -2
- package/dist/node_modules/lodash/isEqual.js +0 -2
- package/dist/node_modules/lodash/isFunction.js +0 -2
- package/dist/node_modules/lodash/isLength.js +0 -2
- package/dist/node_modules/lodash/isMap.js +0 -2
- package/dist/node_modules/lodash/isNaN.js +0 -2
- package/dist/node_modules/lodash/isNil.js +0 -2
- package/dist/node_modules/lodash/isNumber.js +0 -2
- package/dist/node_modules/lodash/isObject.js +0 -2
- package/dist/node_modules/lodash/isObjectLike.js +0 -2
- package/dist/node_modules/lodash/isPlainObject.js +0 -2
- package/dist/node_modules/lodash/isSet.js +0 -2
- package/dist/node_modules/lodash/isString.js +0 -2
- package/dist/node_modules/lodash/isSymbol.js +0 -2
- package/dist/node_modules/lodash/isTypedArray.js +0 -2
- package/dist/node_modules/lodash/isUndefined.js +0 -2
- package/dist/node_modules/lodash/keys.js +0 -2
- package/dist/node_modules/lodash/keysIn.js +0 -2
- package/dist/node_modules/lodash/last.js +0 -2
- package/dist/node_modules/lodash/map.js +0 -2
- package/dist/node_modules/lodash/mapValues.js +0 -2
- package/dist/node_modules/lodash/max.js +0 -2
- package/dist/node_modules/lodash/maxBy.js +0 -2
- package/dist/node_modules/lodash/memoize.js +0 -2
- package/dist/node_modules/lodash/merge.js +0 -2
- package/dist/node_modules/lodash/min.js +0 -2
- package/dist/node_modules/lodash/minBy.js +0 -2
- package/dist/node_modules/lodash/noop.js +0 -2
- package/dist/node_modules/lodash/now.js +0 -2
- package/dist/node_modules/lodash/pick.js +0 -2
- package/dist/node_modules/lodash/property.js +0 -2
- package/dist/node_modules/lodash/range.js +0 -2
- package/dist/node_modules/lodash/reduce.js +0 -2
- package/dist/node_modules/lodash/size.js +0 -2
- package/dist/node_modules/lodash/some.js +0 -2
- package/dist/node_modules/lodash/sortBy.js +0 -2
- package/dist/node_modules/lodash/stubArray.js +0 -2
- package/dist/node_modules/lodash/stubFalse.js +0 -2
- package/dist/node_modules/lodash/throttle.js +0 -2
- package/dist/node_modules/lodash/toFinite.js +0 -2
- package/dist/node_modules/lodash/toInteger.js +0 -2
- package/dist/node_modules/lodash/toNumber.js +0 -2
- package/dist/node_modules/lodash/toPlainObject.js +0 -2
- package/dist/node_modules/lodash/toString.js +0 -2
- package/dist/node_modules/lodash/transform.js +0 -2
- package/dist/node_modules/lodash/union.js +0 -2
- package/dist/node_modules/lodash/uniqBy.js +0 -2
- package/dist/node_modules/lodash/uniqueId.js +0 -2
- package/dist/node_modules/lodash/upperFirst.js +0 -2
- package/dist/node_modules/lodash/values.js +0 -2
- package/dist/node_modules/lodash/zipObject.js +0 -2
- package/dist/node_modules/object-assign/index.js +0 -2
- package/dist/node_modules/prop-types/checkPropTypes.js +0 -2
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js +0 -2
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js +0 -2
- package/dist/node_modules/prop-types/index.js +0 -2
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js +0 -2
- package/dist/node_modules/prop-types/lib/has.js +0 -2
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js +0 -2
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js +0 -2
- package/dist/node_modules/prop-types/node_modules/react-is/index.js +0 -2
- package/dist/node_modules/react-is/cjs/react-is.development.js +0 -2
- package/dist/node_modules/react-is/cjs/react-is.production.min.js +0 -2
- package/dist/node_modules/react-is/index.js +0 -2
- package/dist/node_modules/react-smooth/es6/Animate.js +0 -2
- package/dist/node_modules/react-smooth/es6/AnimateManager.js +0 -2
- package/dist/node_modules/react-smooth/es6/configUpdate.js +0 -2
- package/dist/node_modules/react-smooth/es6/easing.js +0 -2
- package/dist/node_modules/react-smooth/es6/index.js +0 -2
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js +0 -2
- package/dist/node_modules/react-smooth/es6/util.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/Area.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/Bar.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/Brush.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js +0 -2
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js +0 -2
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js +0 -2
- package/dist/node_modules/recharts/es6/chart/AreaChart.js +0 -2
- package/dist/node_modules/recharts/es6/chart/PieChart.js +0 -2
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js +0 -2
- package/dist/node_modules/recharts/es6/component/Cell.js +0 -2
- package/dist/node_modules/recharts/es6/component/Cursor.js +0 -2
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js +0 -2
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js +0 -2
- package/dist/node_modules/recharts/es6/component/Label.js +0 -2
- package/dist/node_modules/recharts/es6/component/LabelList.js +0 -2
- package/dist/node_modules/recharts/es6/component/Legend.js +0 -2
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js +0 -2
- package/dist/node_modules/recharts/es6/component/Text.js +0 -2
- package/dist/node_modules/recharts/es6/component/Tooltip.js +0 -2
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js +0 -2
- package/dist/node_modules/recharts/es6/container/Layer.js +0 -2
- package/dist/node_modules/recharts/es6/container/Surface.js +0 -2
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js +0 -2
- package/dist/node_modules/recharts/es6/polar/Pie.js +0 -2
- package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js +0 -2
- package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js +0 -2
- package/dist/node_modules/recharts/es6/shape/Cross.js +0 -2
- package/dist/node_modules/recharts/es6/shape/Curve.js +0 -2
- package/dist/node_modules/recharts/es6/shape/Dot.js +0 -2
- package/dist/node_modules/recharts/es6/shape/Polygon.js +0 -2
- package/dist/node_modules/recharts/es6/shape/Rectangle.js +0 -2
- package/dist/node_modules/recharts/es6/shape/Sector.js +0 -2
- package/dist/node_modules/recharts/es6/shape/Symbols.js +0 -2
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js +0 -2
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js +0 -2
- package/dist/node_modules/recharts/es6/util/BarUtils.js +0 -2
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js +0 -2
- package/dist/node_modules/recharts/es6/util/ChartUtils.js +0 -2
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js +0 -2
- package/dist/node_modules/recharts/es6/util/DOMUtils.js +0 -2
- package/dist/node_modules/recharts/es6/util/DataUtils.js +0 -2
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js +0 -2
- package/dist/node_modules/recharts/es6/util/Events.js +0 -2
- package/dist/node_modules/recharts/es6/util/Global.js +0 -2
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js +0 -2
- package/dist/node_modules/recharts/es6/util/LogUtils.js +0 -2
- package/dist/node_modules/recharts/es6/util/PolarUtils.js +0 -2
- package/dist/node_modules/recharts/es6/util/ReactUtils.js +0 -2
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js +0 -2
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js +0 -2
- package/dist/node_modules/recharts/es6/util/TickUtils.js +0 -2
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js +0 -2
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js +0 -2
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js +0 -2
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js +0 -2
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js +0 -2
- package/dist/node_modules/recharts/es6/util/getLegendProps.js +0 -2
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js +0 -2
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js +0 -2
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js +0 -2
- package/dist/node_modules/recharts/es6/util/types.js +0 -2
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js +0 -2
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js +0 -2
- package/dist/node_modules/recharts-scale/es6/util/utils.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/config.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/throwError.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js +0 -2
- package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js +0 -2
- package/dist/node_modules/rxjs/node_modules/tslib/tslib.es6.js +0 -2
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js +0 -2
- package/dist/node_modules/victory-vendor/es/d3-scale.js +0 -2
- package/dist/pages/ActionsPage.js +0 -2
- package/dist/pages/AgentDetailsPage.js +0 -2
- package/dist/pages/AgentGraphPage.js +0 -2
- package/dist/pages/AgentsLandingPage.js +0 -2
- package/dist/pages/AgentsPage.js +0 -2
- package/dist/pages/AnalyticsPage.js +0 -2
- package/dist/pages/CatalogDetailPage.js +0 -2
- package/dist/pages/CatalogDocsPage.js +0 -2
- package/dist/pages/CatalogPage.js +0 -2
- package/dist/pages/ComponentDetailPage.js +0 -2
- package/dist/pages/ComponentDocsPage.js +0 -2
- package/dist/pages/ComponentsPage.js +0 -2
- package/dist/pages/EnvTopologyPage.js +0 -2
- package/dist/pages/GettingStartedPage.js +0 -2
- package/dist/pages/HealthPage.js +0 -2
- package/dist/pages/LogsPage.js +0 -2
- package/dist/pages/NoteDetailsPage.js +0 -2
- package/dist/pages/OverviewPage.js +0 -2
- package/dist/pages/PluginDetailPage.js +0 -2
- package/dist/pages/PluginsCatalogPage.js +0 -2
- package/dist/pages/ScheduledJobDetailPage.js +0 -2
- package/dist/pages/SessionDetailsPage.js +0 -2
- package/dist/pages/SessionsPage.js +0 -2
- package/dist/pages/SettingsPage.js +0 -2
- package/dist/pages/SharedSessionPage.js +0 -2
- package/dist/pages/SharedVibeDeckPage.js +0 -2
- package/dist/pages/TargetDetailsPage.js +0 -2
- package/dist/pages/TargetsPage.js +0 -2
- package/dist/pages/TemplateDetailPage.js +0 -2
- package/dist/pages/TemplatesPage.js +0 -2
- package/dist/pages/TunnelsLandingPage.js +0 -2
- package/dist/pages/VibeAuditPage.js +0 -2
- package/dist/pages/VibeCalendarPage.js +0 -2
- package/dist/pages/VibeDeckPage.js +0 -2
- package/dist/pages/VibeDetailsPage.js +0 -2
- package/dist/pages/VibeDocsPage.js +0 -2
- package/dist/pages/VibeTaskDetailPage.js +0 -2
- package/dist/pages/VibesPage.js +0 -2
- package/dist/pages/WebhooksPage.js +0 -2
- package/dist/pages/ai/AIBookmarksPage.js +0 -2
- package/dist/pages/ai/AIBuilderPage.js +0 -2
- package/dist/pages/ai/AIPage.js +0 -2
- package/dist/pages/ai/AISessionDetailPage.js +0 -2
- package/dist/pages/ai/AgentManagerPage.js +0 -2
- package/dist/pages/tunnels/AuditTab.js +0 -2
- package/dist/pages/tunnels/DomainsTab.js +0 -2
- package/dist/pages/tunnels/ProvidersTab.js +0 -2
- package/dist/pages/tunnels/SessionsTab.js +0 -2
- package/dist/pages/tunnels/TunnelDetailsPage.js +0 -2
- package/dist/pages/tunnels/TunnelsTab.js +0 -2
- package/dist/pages/tunnels/UsageTab.js +0 -2
- package/dist/pages/tunnels/tabs/TunnelAuditTab.js +0 -2
- package/dist/pages/tunnels/tabs/TunnelCliTab.js +0 -2
- package/dist/pages/tunnels/tabs/TunnelDomainsTab.js +0 -2
- package/dist/pages/tunnels/tabs/TunnelEndpointsTab.js +0 -2
- package/dist/pages/tunnels/tabs/TunnelOverviewTab.js +0 -2
- package/dist/pages/tunnels/tabs/TunnelSessionsTab.js +0 -2
- package/dist/pages/tunnels/tabs/TunnelSettingsTab.js +0 -2
- package/dist/pages/tunnels/tabs/TunnelUsageTab.js +0 -2
- package/dist/plugin.js +0 -2
- package/dist/providers/AgentEventsProvider.js +0 -2
- package/dist/providers/QuotaExhaustedProvider.js +0 -2
- package/dist/providers/VibeControlsProvider.js +0 -2
- package/dist/services/agentRemoteTaskGates.js +0 -2
- package/dist/services/aiApi.js +0 -2
- package/dist/services/assistantApi.js +0 -2
- package/dist/services/createSandboxAssistantTransport.js +0 -2
- package/dist/services/gitopsApi.js +0 -2
- package/dist/services/iframeToken.js +0 -2
- package/dist/services/planApi.js +0 -2
- package/dist/services/schedulerApi.js +0 -2
- package/dist/shared/hooks/useField.js +0 -2
- package/dist/shared/hooks/useTr.js +0 -2
- package/dist/store/agentManagerStore.js +0 -2
- package/dist/store/vibeControlsStore.js +0 -2
- package/dist/translations/en.js +0 -2
- package/dist/types/assistant.js +0 -2
- package/dist/utils/agentApiPath.js +0 -2
- package/dist/utils/agentHealth.js +0 -2
- package/dist/utils/agentStatus.js +0 -2
- package/dist/utils/agentVisibility.js +0 -2
- package/dist/utils/aiCredits.js +0 -2
- package/dist/utils/aiCreditsLedger.js +0 -2
- package/dist/utils/aiSessionNotFound.js +0 -2
- package/dist/utils/assistantPrompt.js +0 -2
- package/dist/utils/onboardingUtils.js +0 -2
- package/dist/utils/pageContext.js +0 -2
- package/dist/utils/quotaUtils.js +0 -2
- package/dist/utils/randomSessionName.js +0 -2
- package/dist/utils/relativeTime.js +0 -2
- package/dist/utils/shareUrl.js +0 -2
- package/package.json +4 -3
- package/dist/VibeControlsRoot.js.map +0 -1
- package/dist/VibeControlsRoutes.js.map +0 -1
- package/dist/components/actions/ActionCard.js.map +0 -1
- package/dist/components/actions/ActionForm.js.map +0 -1
- package/dist/components/actions/ActionSchedulesList.js.map +0 -1
- package/dist/components/actions/ActionTypeBadge.js.map +0 -1
- package/dist/components/actions/ActionWebhookEndpoint.js.map +0 -1
- package/dist/components/actions/ExecutionHistory.js.map +0 -1
- package/dist/components/actions/RemoteExecutionEnableNotice.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerAdminBar.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerBookmarksDrawer.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerBulkActions.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerCenter.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerChatPane.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerDetailPanel.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerInputArea.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerLayout.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerMessageItem.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerMessageList.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerSessionItem.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerSessionList.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerSidebar.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerStreamingIndicator.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerTab.js.map +0 -1
- package/dist/components/agent-manager/AgentManagerTabBar.js.map +0 -1
- package/dist/components/agent-manager/BridleConfigPanel.js.map +0 -1
- package/dist/components/agent-manager/ChatInsertPicker.js.map +0 -1
- package/dist/components/agent-manager/FilePickerModal.js.map +0 -1
- package/dist/components/agent-manager/PluginInstallModal.js.map +0 -1
- package/dist/components/agent-manager/ProfilesPanel.js.map +0 -1
- package/dist/components/agent-manager/controls/AutonomySelector.js.map +0 -1
- package/dist/components/agent-manager/controls/ContextLevelToggle.js.map +0 -1
- package/dist/components/agent-manager/controls/FileAttachButton.js.map +0 -1
- package/dist/components/agent-manager/controls/McpServerSelector.js.map +0 -1
- package/dist/components/agent-manager/controls/ModelSelector.js.map +0 -1
- package/dist/components/agent-manager/controls/SdkSelector.js.map +0 -1
- package/dist/components/agent-manager/controls/VoiceToggle.js.map +0 -1
- package/dist/components/agent-manager/controls/createDropHandlers.js.map +0 -1
- package/dist/components/agent-manager/detail/SessionConfigPanel.js.map +0 -1
- package/dist/components/agent-manager/detail/SessionLogsPanel.js.map +0 -1
- package/dist/components/agent-manager/detail/SessionStatsPanel.js.map +0 -1
- package/dist/components/agent-manager/detail/SessionToolsPanel.js.map +0 -1
- package/dist/components/agent-manager/dialogs/ExportSessionDialog.js.map +0 -1
- package/dist/components/agent-manager/dialogs/NewSessionDialog.js.map +0 -1
- package/dist/components/agent-manager/dialogs/RenameSessionDialog.js.map +0 -1
- package/dist/components/agent-manager/dialogs/SessionSearchDialog.js.map +0 -1
- package/dist/components/agent-manager/modelDefaults.js.map +0 -1
- package/dist/components/agents/AgentCard.js.map +0 -1
- package/dist/components/agents/AgentConnectionRecovery.js.map +0 -1
- package/dist/components/agents/AgentForm.js.map +0 -1
- package/dist/components/agents/AgentList.js.map +0 -1
- package/dist/components/agents/AgentMaintenanceTab.js.map +0 -1
- package/dist/components/agents/AgentStatusBadge.js.map +0 -1
- package/dist/components/agents/AgentStorageConfig.js.map +0 -1
- package/dist/components/agents/AgentVisibilityCard.js.map +0 -1
- package/dist/components/agents/ConfigureAgentDialog.js.map +0 -1
- package/dist/components/agents/ConnectionLogPanel.js.map +0 -1
- package/dist/components/agents/CreateSessionDialog.js.map +0 -1
- package/dist/components/agents/GatewayAuthCard.js.map +0 -1
- package/dist/components/agents/OpenInBrowserEditorButton.js.map +0 -1
- package/dist/components/agents/OpenInEditorMenu.js.map +0 -1
- package/dist/components/agents/PluginUIPanel.js.map +0 -1
- package/dist/components/agents/RemoteTaskPermissionsCard.js.map +0 -1
- package/dist/components/agents/VibeOpenInEditorMenu.js.map +0 -1
- package/dist/components/agents/agentStatus.js.map +0 -1
- package/dist/components/agents/backup/AgentBackupTab.js.map +0 -1
- package/dist/components/agents/idePresets.js.map +0 -1
- package/dist/components/ai/AIContextsTab.js.map +0 -1
- package/dist/components/ai/AIKeysTab.js.map +0 -1
- package/dist/components/ai/AIModeToggle.js.map +0 -1
- package/dist/components/ai/AIOverviewTab.js.map +0 -1
- package/dist/components/ai/AIPlanPanel.js.map +0 -1
- package/dist/components/ai/AIPlaygroundTab.js.map +0 -1
- package/dist/components/ai/AIPromptsTab.js.map +0 -1
- package/dist/components/ai/AIProviderCredentialsCard.js.map +0 -1
- package/dist/components/ai/AIQueueTab.js.map +0 -1
- package/dist/components/ai/AISessionsTab.js.map +0 -1
- package/dist/components/ai/AIStatsTab.js.map +0 -1
- package/dist/components/ai/AITasksTab.js.map +0 -1
- package/dist/components/ai/AITemplatesTab.js.map +0 -1
- package/dist/components/ai/AiSectionTabs.js.map +0 -1
- package/dist/components/ai/BridleTab.js.map +0 -1
- package/dist/components/ai/ClaudeCredentialsCard.js.map +0 -1
- package/dist/components/ai/InstructionFilesManager.js.map +0 -1
- package/dist/components/ai/PluginHarnessPicker.js.map +0 -1
- package/dist/components/ai/aiProviderCredentials.js.map +0 -1
- package/dist/components/aliases/AliasManager.js.map +0 -1
- package/dist/components/aliases/aliasReservedNames.js.map +0 -1
- package/dist/components/analytics/AnalyticsBreakdownChart.js.map +0 -1
- package/dist/components/analytics/AnalyticsBreakdownTable.js.map +0 -1
- package/dist/components/analytics/AnalyticsEntityTabs.js.map +0 -1
- package/dist/components/analytics/AnalyticsFilterBar.js.map +0 -1
- package/dist/components/analytics/AnalyticsKpiGrid.js.map +0 -1
- package/dist/components/analytics/AnalyticsTimeSeriesChart.js.map +0 -1
- package/dist/components/analytics/SandboxAnalyticsSection.js.map +0 -1
- package/dist/components/analytics/types.js.map +0 -1
- package/dist/components/assistant/AIAssistantPanel.js.map +0 -1
- package/dist/components/assistant/AiCreditsMeter.js.map +0 -1
- package/dist/components/assistant/ProductMarkdown.js.map +0 -1
- package/dist/components/assistant/assistantProduct.js.map +0 -1
- package/dist/components/assistant/recordAdapters.js.map +0 -1
- package/dist/components/audit/AuditExportButton.js.map +0 -1
- package/dist/components/audit/AuditLogDetail.js.map +0 -1
- package/dist/components/audit/AuditLogFilters.js.map +0 -1
- package/dist/components/audit/AuditLogStats.js.map +0 -1
- package/dist/components/audit/AuditLogTable.js.map +0 -1
- package/dist/components/catalog/CatalogCard.js.map +0 -1
- package/dist/components/catalog/CatalogForm.js.map +0 -1
- package/dist/components/common/ActionAgentTargetNotice.js.map +0 -1
- package/dist/components/common/CommandEditor.js.map +0 -1
- package/dist/components/common/actionAgentTarget.js.map +0 -1
- package/dist/components/common/commandHighlight.js.map +0 -1
- package/dist/components/components/ComponentHealthCell.js.map +0 -1
- package/dist/components/components/ComponentTierBadge.js.map +0 -1
- package/dist/components/components/ComponentsTable.js.map +0 -1
- package/dist/components/docs/DocsCompileStatus.js.map +0 -1
- package/dist/components/docs/DocsEditPanel.js.map +0 -1
- package/dist/components/docs/DocsEmptyState.js.map +0 -1
- package/dist/components/docs/DocsFullScreenViewer.js.map +0 -1
- package/dist/components/docs/DocsPageEditor.js.map +0 -1
- package/dist/components/docs/DocsPageTree.js.map +0 -1
- package/dist/components/docs/DocsPreviewPanel.js.map +0 -1
- package/dist/components/docs/DocsRevisionHistory.js.map +0 -1
- package/dist/components/docs/DocsSettingsPanel.js.map +0 -1
- package/dist/components/docs/DocsTabPanel.js.map +0 -1
- package/dist/components/docs/previewHtml.js.map +0 -1
- package/dist/components/docs/types.js.map +0 -1
- package/dist/components/gitops/CIDurationChart.js.map +0 -1
- package/dist/components/gitops/CIFailedRuns.js.map +0 -1
- package/dist/components/gitops/CIPipelineRunsTable.js.map +0 -1
- package/dist/components/gitops/CISuccessRateChart.js.map +0 -1
- package/dist/components/gitops/CITab.js.map +0 -1
- package/dist/components/gitops/CIWorkflowList.js.map +0 -1
- package/dist/components/gitops/GitOpsProviderPicker.js.map +0 -1
- package/dist/components/gitops/GitOpsSetup.js.map +0 -1
- package/dist/components/gitops/GitOpsSkeleton.js.map +0 -1
- package/dist/components/gitops/GitOpsStatusBadge.js.map +0 -1
- package/dist/components/gitops/ProviderIcon.js.map +0 -1
- package/dist/components/gitops/RepoActivityCard.js.map +0 -1
- package/dist/components/gitops/RepoIssuesCard.js.map +0 -1
- package/dist/components/gitops/RepoLanguagesCard.js.map +0 -1
- package/dist/components/gitops/RepoOverviewCard.js.map +0 -1
- package/dist/components/gitops/RepoPullRequestsCard.js.map +0 -1
- package/dist/components/gitops/RepoSecurityCard.js.map +0 -1
- package/dist/components/gitops/RepoStatsTab.js.map +0 -1
- package/dist/components/gitops/VibeGitOpsTab.js.map +0 -1
- package/dist/components/gitops/types.js.map +0 -1
- package/dist/components/graph/ConnectionPermissionsDialog.js.map +0 -1
- package/dist/components/graph/MeshAgentNode.js.map +0 -1
- package/dist/components/graph/MeshDeployWizard.js.map +0 -1
- package/dist/components/graph/MeshGraphView.js.map +0 -1
- package/dist/components/graph/MeshNodeActions.js.map +0 -1
- package/dist/components/graph/MeshRequestPanel.js.map +0 -1
- package/dist/components/graph/meshTypes.js.map +0 -1
- package/dist/components/graph/nodeIcons.js.map +0 -1
- package/dist/components/idp-components/ComponentCard.js.map +0 -1
- package/dist/components/idp-components/ComponentForm.js.map +0 -1
- package/dist/components/idp-components/DependencyGraphTab.js.map +0 -1
- package/dist/components/logs/LogViewer.js.map +0 -1
- package/dist/components/notes/NoteCard.js.map +0 -1
- package/dist/components/notes/NoteEditor.js.map +0 -1
- package/dist/components/notes/NoteList.js.map +0 -1
- package/dist/components/notes/NotesTabPanel.js.map +0 -1
- package/dist/components/overview/FleetActivityAreaChart.js.map +0 -1
- package/dist/components/overview/FleetActivityChart.js.map +0 -1
- package/dist/components/overview/FleetHealthCard.js.map +0 -1
- package/dist/components/overview/QuickActionsCard.js.map +0 -1
- package/dist/components/overview/useFleetAnalytics.js.map +0 -1
- package/dist/components/plugins/AddTabDialog.js.map +0 -1
- package/dist/components/plugins/FleetRolloutDialog.js.map +0 -1
- package/dist/components/plugins/PluginIframeMount.js.map +0 -1
- package/dist/components/plugins/useFleetPluginMatrix.js.map +0 -1
- package/dist/components/scorecard/MetricTrend.js.map +0 -1
- package/dist/components/scorecard/ScorecardEmptyState.js.map +0 -1
- package/dist/components/scorecard/ScorecardPanel.js.map +0 -1
- package/dist/components/scorecard/ScorecardsOverviewPanel.js.map +0 -1
- package/dist/components/scorecard/scorecardConstants.js.map +0 -1
- package/dist/components/security/SecurityRunButton.js.map +0 -1
- package/dist/components/security/SecurityScanList.js.map +0 -1
- package/dist/components/security/SecurityTabPanel.js.map +0 -1
- package/dist/components/security/agentClient.js.map +0 -1
- package/dist/components/security/hooks.js.map +0 -1
- package/dist/components/security/types.js.map +0 -1
- package/dist/components/sessions/CollaboratorsList.js.map +0 -1
- package/dist/components/sessions/ControlStatusBar.js.map +0 -1
- package/dist/components/sessions/EntityInfoPopover.js.map +0 -1
- package/dist/components/sessions/SessionCard.js.map +0 -1
- package/dist/components/sessions/SessionGroup.js.map +0 -1
- package/dist/components/sessions/SessionInfoPanel.js.map +0 -1
- package/dist/components/sessions/SessionList.js.map +0 -1
- package/dist/components/sessions/SessionPublicLinkPanel.js.map +0 -1
- package/dist/components/sessions/SessionShareDialog.js.map +0 -1
- package/dist/components/sessions/SessionStatusBadge.js.map +0 -1
- package/dist/components/sessions/SessionWorkbenchDrawer.js.map +0 -1
- package/dist/components/sessions/SessionsCommandPalette.js.map +0 -1
- package/dist/components/sessions/SharedTerminalPanel.js.map +0 -1
- package/dist/components/sessions/ShortcutCheatsheet.js.map +0 -1
- package/dist/components/sessions/TerminalIframe.js.map +0 -1
- package/dist/components/sessions/TerminalPanel.js.map +0 -1
- package/dist/components/sessions/groupSessions.js.map +0 -1
- package/dist/components/sessions/sessionShortcuts.js.map +0 -1
- package/dist/components/settings/AdvancedSection.js.map +0 -1
- package/dist/components/settings/IdePreferencesSection.js.map +0 -1
- package/dist/components/settings/NotificationsSection.js.map +0 -1
- package/dist/components/settings/SettingsForm.js.map +0 -1
- package/dist/components/settings/WorkspaceDefaultsSection.js.map +0 -1
- package/dist/components/shared/ActionMenu.js.map +0 -1
- package/dist/components/shared/AgentEventsConnector.js.map +0 -1
- package/dist/components/shared/AgentSelector.js.map +0 -1
- package/dist/components/shared/AgentSetupBanner.js.map +0 -1
- package/dist/components/shared/Card.js.map +0 -1
- package/dist/components/shared/ConfirmDialog.js.map +0 -1
- package/dist/components/shared/EmptyState.js.map +0 -1
- package/dist/components/shared/EnableRemoteTaskDialog.js.map +0 -1
- package/dist/components/shared/EntityTagPicker.js.map +0 -1
- package/dist/components/shared/EntityVibeLinkControl.js.map +0 -1
- package/dist/components/shared/ErrorState.js.map +0 -1
- package/dist/components/shared/FilterDropdown.js.map +0 -1
- package/dist/components/shared/GetHelpButton.js.map +0 -1
- package/dist/components/shared/InstallTabs.js.map +0 -1
- package/dist/components/shared/LinkToVibePanel.js.map +0 -1
- package/dist/components/shared/LoadingState.js.map +0 -1
- package/dist/components/shared/MotionTabPanel.js.map +0 -1
- package/dist/components/shared/NotificationToast.js.map +0 -1
- package/dist/components/shared/PageHeader.js.map +0 -1
- package/dist/components/shared/PageSkeleton.js.map +0 -1
- package/dist/components/shared/PlatformIcon.js.map +0 -1
- package/dist/components/shared/PluginGate.js.map +0 -1
- package/dist/components/shared/PromptDialog.js.map +0 -1
- package/dist/components/shared/QuotaExhaustedDialog.js.map +0 -1
- package/dist/components/shared/RequireAgentReachable.js.map +0 -1
- package/dist/components/shared/SearchInput.js.map +0 -1
- package/dist/components/shared/SearchableSelect.js.map +0 -1
- package/dist/components/shared/SelectionCheckbox.js.map +0 -1
- package/dist/components/shared/SessionNotificationBanner.js.map +0 -1
- package/dist/components/shared/StatCard.js.map +0 -1
- package/dist/components/shared/StatusBadge.js.map +0 -1
- package/dist/components/shared/TagFilter.js.map +0 -1
- package/dist/components/shared/cardMotion.js.map +0 -1
- package/dist/components/shared/platformIconPaths.js.map +0 -1
- package/dist/components/sharing/EntityShareButton.js.map +0 -1
- package/dist/components/sharing/NoteShareDialog.js.map +0 -1
- package/dist/components/sharing/SharedWithMePanel.js.map +0 -1
- package/dist/components/sharing/VibeShareButton.js.map +0 -1
- package/dist/components/sharing/entityShareOps.js.map +0 -1
- package/dist/components/sharing/shareControllerTypes.js.map +0 -1
- package/dist/components/sharing/shareRegistry.js.map +0 -1
- package/dist/components/sharing/useEntityShareController.js.map +0 -1
- package/dist/components/sharing/useNoteShareController.js.map +0 -1
- package/dist/components/sharing/useVibeShareController.js.map +0 -1
- package/dist/components/targets/TargetCard.js.map +0 -1
- package/dist/components/templates/PublishTemplateForm.js.map +0 -1
- package/dist/components/templates/TemplateCard.js.map +0 -1
- package/dist/components/templates/TemplateVariableEditor.js.map +0 -1
- package/dist/components/templates/TemplateWizard.js.map +0 -1
- package/dist/components/tunnels/DomainVerificationBadge.js.map +0 -1
- package/dist/components/tunnels/ProviderBadge.js.map +0 -1
- package/dist/components/tunnels/TunnelCard.js.map +0 -1
- package/dist/components/tunnels/TunnelConnectionCard.js.map +0 -1
- package/dist/components/tunnels/TunnelCopyButton.js.map +0 -1
- package/dist/components/tunnels/TunnelCreateWizard.js.map +0 -1
- package/dist/components/tunnels/TunnelMetricTiles.js.map +0 -1
- package/dist/components/tunnels/TunnelPublicAccessPanel.js.map +0 -1
- package/dist/components/tunnels/TunnelSparkline.js.map +0 -1
- package/dist/components/tunnels/TunnelStatusBadge.js.map +0 -1
- package/dist/components/tunnels/tunnelEndpoints.js.map +0 -1
- package/dist/components/tunnels/tunnelMetrics.js.map +0 -1
- package/dist/components/vibe/VibeAgentEmptyState.js.map +0 -1
- package/dist/components/vibe/VibeAgentSwitcher.js.map +0 -1
- package/dist/components/vibe/VibeEnvVarsPanel.js.map +0 -1
- package/dist/components/vibe/VibeLinkedEntitiesPanel.js.map +0 -1
- package/dist/components/vibe/VibeLlmContextAdminPanel.js.map +0 -1
- package/dist/components/vibe/VibeLlmContextTabPanel.js.map +0 -1
- package/dist/components/vibecalendar/LogsDrawer.js.map +0 -1
- package/dist/components/vibecalendar/ScheduleTaskModal.js.map +0 -1
- package/dist/components/vibecalendar/VibeCalAgendaView.js.map +0 -1
- package/dist/components/vibecalendar/VibeCalDayView.js.map +0 -1
- package/dist/components/vibecalendar/VibeCalMonthView.js.map +0 -1
- package/dist/components/vibecalendar/VibeCalWeekView.js.map +0 -1
- package/dist/components/vibecalendar/VibeCalendarHeader.js.map +0 -1
- package/dist/components/vibecalendar/VibeTaskBlock.js.map +0 -1
- package/dist/components/vibecalendar/expandOccurrences.js.map +0 -1
- package/dist/components/vibecalendar/types.js.map +0 -1
- package/dist/components/vibedeck/VibeDeckButtonForm.js.map +0 -1
- package/dist/components/vibedeck/VibeDeckButtonTile.js.map +0 -1
- package/dist/components/vibedeck/VibeDeckExecutionLog.js.map +0 -1
- package/dist/components/vibedeck/VibeDeckForm.js.map +0 -1
- package/dist/components/vibedeck/VibeDeckGrid.js.map +0 -1
- package/dist/components/vibedeck/VibeDeckPublicLinkPanel.js.map +0 -1
- package/dist/components/vibedeck/VibeDeckShareDialog.js.map +0 -1
- package/dist/components/vibedeck/VibeDeckSwitcher.js.map +0 -1
- package/dist/components/vibes/DeleteVibeDialog.js.map +0 -1
- package/dist/components/vibes/VibeCard.js.map +0 -1
- package/dist/components/vibes/VibeList.js.map +0 -1
- package/dist/components/vibes/icons.js.map +0 -1
- package/dist/components/webhooks/types.js.map +0 -1
- package/dist/config/assistantUsecases.js.map +0 -1
- package/dist/config/index.js.map +0 -1
- package/dist/constants/aiTabs.js.map +0 -1
- package/dist/constants/permissions.js.map +0 -1
- package/dist/constants/pluginCatalog.js.map +0 -1
- package/dist/generated/wspace-operations.js.map +0 -1
- package/dist/generated/wspace-types.js.map +0 -1
- package/dist/hooks/useActiveAgentProfile.js.map +0 -1
- package/dist/hooks/useAgentConnectivity.js.map +0 -1
- package/dist/hooks/useAgentEvents.js.map +0 -1
- package/dist/hooks/useAgentManagerKeyboard.js.map +0 -1
- package/dist/hooks/useAgentManagerStreaming.js.map +0 -1
- package/dist/hooks/useAiCreditsQuota.js.map +0 -1
- package/dist/hooks/useCachedInitialData.js.map +0 -1
- package/dist/hooks/useDraftEntityTags.js.map +0 -1
- package/dist/hooks/useEntityTags.js.map +0 -1
- package/dist/hooks/useGitops.js.map +0 -1
- package/dist/hooks/useInitialDataLoader.js.map +0 -1
- package/dist/hooks/useOfferedAssistantMode.js.map +0 -1
- package/dist/hooks/useOpenAssistantHelp.js.map +0 -1
- package/dist/hooks/usePluginAvailability.js.map +0 -1
- package/dist/hooks/useQueryBackedTab.js.map +0 -1
- package/dist/hooks/useTenantContext.js.map +0 -1
- package/dist/hooks/useTerminalCapabilityUrl.js.map +0 -1
- package/dist/hooks/useToggleAgentBookmark.js.map +0 -1
- package/dist/hooks/useVoiceMode.js.map +0 -1
- package/dist/hooks/useWorkspaceWriteAccess.js.map +0 -1
- package/dist/lib/apolloCache.js.map +0 -1
- package/dist/lib/toast.js.map +0 -1
- package/dist/lib/vibeFeatures.js.map +0 -1
- package/dist/node_modules/@apollo/client/errors/CombinedGraphQLErrors.js.map +0 -1
- package/dist/node_modules/@apollo/client/errors/ServerError.js.map +0 -1
- package/dist/node_modules/@apollo/client/errors/ServerParseError.js.map +0 -1
- package/dist/node_modules/@apollo/client/errors/utils.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/batch/batchLink.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/batch/batching.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/batch-http/BaseBatchHttpLink.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/batch-http/batchHttpLink.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/client-awareness/ClientAwarenessLink.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/core/ApolloLink.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/http/checkFetcher.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/http/parseAndCheckHttpResponse.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/http/selectHttpOptionsAndBody.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/http/selectURI.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/utils/createOperation.js.map +0 -1
- package/dist/node_modules/@apollo/client/link/utils/filterOperationVariables.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/caching/sizes.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/graphql/print.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/caches.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/checkDocument.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/compact.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getMainDefinition.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getMemoryInternals.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationDefinition.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/getOperationName.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/globals/global.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/globals/maybe.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/makeUniqueId.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/memoize.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/internal/stringifyForDisplay.js.map +0 -1
- package/dist/node_modules/@apollo/client/utilities/invariant/index.js.map +0 -1
- package/dist/node_modules/@apollo/client/version.js.map +0 -1
- package/dist/node_modules/@wry/caches/lib/weak.js.map +0 -1
- package/dist/node_modules/@wry/trie/lib/index.js.map +0 -1
- package/dist/node_modules/clsx/dist/clsx.js.map +0 -1
- package/dist/node_modules/d3-array/src/ascending.js.map +0 -1
- package/dist/node_modules/d3-array/src/bisect.js.map +0 -1
- package/dist/node_modules/d3-array/src/bisector.js.map +0 -1
- package/dist/node_modules/d3-array/src/descending.js.map +0 -1
- package/dist/node_modules/d3-array/src/max.js.map +0 -1
- package/dist/node_modules/d3-array/src/min.js.map +0 -1
- package/dist/node_modules/d3-array/src/number.js.map +0 -1
- package/dist/node_modules/d3-array/src/quantile.js.map +0 -1
- package/dist/node_modules/d3-array/src/quickselect.js.map +0 -1
- package/dist/node_modules/d3-array/src/range.js.map +0 -1
- package/dist/node_modules/d3-array/src/sort.js.map +0 -1
- package/dist/node_modules/d3-array/src/ticks.js.map +0 -1
- package/dist/node_modules/d3-color/src/color.js.map +0 -1
- package/dist/node_modules/d3-color/src/define.js.map +0 -1
- package/dist/node_modules/d3-format/src/defaultLocale.js.map +0 -1
- package/dist/node_modules/d3-format/src/exponent.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatDecimal.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatGroup.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatNumerals.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatPrefixAuto.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatRounded.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatSpecifier.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatTrim.js.map +0 -1
- package/dist/node_modules/d3-format/src/formatTypes.js.map +0 -1
- package/dist/node_modules/d3-format/src/identity.js.map +0 -1
- package/dist/node_modules/d3-format/src/locale.js.map +0 -1
- package/dist/node_modules/d3-format/src/precisionFixed.js.map +0 -1
- package/dist/node_modules/d3-format/src/precisionPrefix.js.map +0 -1
- package/dist/node_modules/d3-format/src/precisionRound.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/array.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/basis.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/basisClosed.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/color.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/constant.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/date.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/number.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/numberArray.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/object.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/piecewise.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/rgb.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/round.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/string.js.map +0 -1
- package/dist/node_modules/d3-interpolate/src/value.js.map +0 -1
- package/dist/node_modules/d3-path/src/path.js.map +0 -1
- package/dist/node_modules/d3-scale/src/band.js.map +0 -1
- package/dist/node_modules/d3-scale/src/constant.js.map +0 -1
- package/dist/node_modules/d3-scale/src/continuous.js.map +0 -1
- package/dist/node_modules/d3-scale/src/diverging.js.map +0 -1
- package/dist/node_modules/d3-scale/src/identity.js.map +0 -1
- package/dist/node_modules/d3-scale/src/init.js.map +0 -1
- package/dist/node_modules/d3-scale/src/linear.js.map +0 -1
- package/dist/node_modules/d3-scale/src/log.js.map +0 -1
- package/dist/node_modules/d3-scale/src/nice.js.map +0 -1
- package/dist/node_modules/d3-scale/src/number.js.map +0 -1
- package/dist/node_modules/d3-scale/src/ordinal.js.map +0 -1
- package/dist/node_modules/d3-scale/src/pow.js.map +0 -1
- package/dist/node_modules/d3-scale/src/quantile.js.map +0 -1
- package/dist/node_modules/d3-scale/src/quantize.js.map +0 -1
- package/dist/node_modules/d3-scale/src/radial.js.map +0 -1
- package/dist/node_modules/d3-scale/src/sequential.js.map +0 -1
- package/dist/node_modules/d3-scale/src/sequentialQuantile.js.map +0 -1
- package/dist/node_modules/d3-scale/src/symlog.js.map +0 -1
- package/dist/node_modules/d3-scale/src/threshold.js.map +0 -1
- package/dist/node_modules/d3-scale/src/tickFormat.js.map +0 -1
- package/dist/node_modules/d3-scale/src/time.js.map +0 -1
- package/dist/node_modules/d3-scale/src/utcTime.js.map +0 -1
- package/dist/node_modules/d3-shape/src/area.js.map +0 -1
- package/dist/node_modules/d3-shape/src/array.js.map +0 -1
- package/dist/node_modules/d3-shape/src/constant.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/basis.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/basisClosed.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/basisOpen.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/bump.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/linear.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/linearClosed.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/monotone.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/natural.js.map +0 -1
- package/dist/node_modules/d3-shape/src/curve/step.js.map +0 -1
- package/dist/node_modules/d3-shape/src/line.js.map +0 -1
- package/dist/node_modules/d3-shape/src/math.js.map +0 -1
- package/dist/node_modules/d3-shape/src/noop.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/expand.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/none.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/silhouette.js.map +0 -1
- package/dist/node_modules/d3-shape/src/offset/wiggle.js.map +0 -1
- package/dist/node_modules/d3-shape/src/order/none.js.map +0 -1
- package/dist/node_modules/d3-shape/src/path.js.map +0 -1
- package/dist/node_modules/d3-shape/src/point.js.map +0 -1
- package/dist/node_modules/d3-shape/src/stack.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/circle.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/cross.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/diamond.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/square.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/star.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/triangle.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol/wye.js.map +0 -1
- package/dist/node_modules/d3-shape/src/symbol.js.map +0 -1
- package/dist/node_modules/d3-time/src/day.js.map +0 -1
- package/dist/node_modules/d3-time/src/duration.js.map +0 -1
- package/dist/node_modules/d3-time/src/hour.js.map +0 -1
- package/dist/node_modules/d3-time/src/interval.js.map +0 -1
- package/dist/node_modules/d3-time/src/millisecond.js.map +0 -1
- package/dist/node_modules/d3-time/src/minute.js.map +0 -1
- package/dist/node_modules/d3-time/src/month.js.map +0 -1
- package/dist/node_modules/d3-time/src/second.js.map +0 -1
- package/dist/node_modules/d3-time/src/ticks.js.map +0 -1
- package/dist/node_modules/d3-time/src/week.js.map +0 -1
- package/dist/node_modules/d3-time/src/year.js.map +0 -1
- package/dist/node_modules/d3-time-format/src/defaultLocale.js.map +0 -1
- package/dist/node_modules/d3-time-format/src/locale.js.map +0 -1
- package/dist/node_modules/dagre/index.js.map +0 -1
- package/dist/node_modules/dagre/lib/acyclic.js.map +0 -1
- package/dist/node_modules/dagre/lib/add-border-segments.js.map +0 -1
- package/dist/node_modules/dagre/lib/coordinate-system.js.map +0 -1
- package/dist/node_modules/dagre/lib/data/list.js.map +0 -1
- package/dist/node_modules/dagre/lib/debug.js.map +0 -1
- package/dist/node_modules/dagre/lib/graphlib.js.map +0 -1
- package/dist/node_modules/dagre/lib/greedy-fas.js.map +0 -1
- package/dist/node_modules/dagre/lib/layout.js.map +0 -1
- package/dist/node_modules/dagre/lib/lodash.js.map +0 -1
- package/dist/node_modules/dagre/lib/nesting-graph.js.map +0 -1
- package/dist/node_modules/dagre/lib/normalize.js.map +0 -1
- package/dist/node_modules/dagre/lib/order/add-subgraph-constraints.js.map +0 -1
- package/dist/node_modules/dagre/lib/order/barycenter.js.map +0 -1
- package/dist/node_modules/dagre/lib/order/build-layer-graph.js.map +0 -1
- package/dist/node_modules/dagre/lib/order/cross-count.js.map +0 -1
- package/dist/node_modules/dagre/lib/order/index.js.map +0 -1
- package/dist/node_modules/dagre/lib/order/init-order.js.map +0 -1
- package/dist/node_modules/dagre/lib/order/resolve-conflicts.js.map +0 -1
- package/dist/node_modules/dagre/lib/order/sort-subgraph.js.map +0 -1
- package/dist/node_modules/dagre/lib/order/sort.js.map +0 -1
- package/dist/node_modules/dagre/lib/parent-dummy-chains.js.map +0 -1
- package/dist/node_modules/dagre/lib/position/bk.js.map +0 -1
- package/dist/node_modules/dagre/lib/position/index.js.map +0 -1
- package/dist/node_modules/dagre/lib/rank/feasible-tree.js.map +0 -1
- package/dist/node_modules/dagre/lib/rank/index.js.map +0 -1
- package/dist/node_modules/dagre/lib/rank/network-simplex.js.map +0 -1
- package/dist/node_modules/dagre/lib/rank/util.js.map +0 -1
- package/dist/node_modules/dagre/lib/util.js.map +0 -1
- package/dist/node_modules/dagre/lib/version.js.map +0 -1
- package/dist/node_modules/decimal.js-light/decimal.js.map +0 -1
- package/dist/node_modules/eventemitter3/index.js.map +0 -1
- package/dist/node_modules/fast-equals/dist/es/index.js.map +0 -1
- package/dist/node_modules/graphlib/index.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/components.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/dfs.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/dijkstra-all.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/dijkstra.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/find-cycles.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/floyd-warshall.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/index.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/is-acyclic.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/postorder.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/preorder.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/prim.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/tarjan.js.map +0 -1
- package/dist/node_modules/graphlib/lib/alg/topsort.js.map +0 -1
- package/dist/node_modules/graphlib/lib/data/priority-queue.js.map +0 -1
- package/dist/node_modules/graphlib/lib/graph.js.map +0 -1
- package/dist/node_modules/graphlib/lib/index.js.map +0 -1
- package/dist/node_modules/graphlib/lib/json.js.map +0 -1
- package/dist/node_modules/graphlib/lib/lodash.js.map +0 -1
- package/dist/node_modules/graphlib/lib/version.js.map +0 -1
- package/dist/node_modules/internmap/src/index.js.map +0 -1
- package/dist/node_modules/lodash/_DataView.js.map +0 -1
- package/dist/node_modules/lodash/_Hash.js.map +0 -1
- package/dist/node_modules/lodash/_ListCache.js.map +0 -1
- package/dist/node_modules/lodash/_Map.js.map +0 -1
- package/dist/node_modules/lodash/_MapCache.js.map +0 -1
- package/dist/node_modules/lodash/_Promise.js.map +0 -1
- package/dist/node_modules/lodash/_Set.js.map +0 -1
- package/dist/node_modules/lodash/_SetCache.js.map +0 -1
- package/dist/node_modules/lodash/_Stack.js.map +0 -1
- package/dist/node_modules/lodash/_Symbol.js.map +0 -1
- package/dist/node_modules/lodash/_Uint8Array.js.map +0 -1
- package/dist/node_modules/lodash/_WeakMap.js.map +0 -1
- package/dist/node_modules/lodash/_apply.js.map +0 -1
- package/dist/node_modules/lodash/_arrayEach.js.map +0 -1
- package/dist/node_modules/lodash/_arrayEvery.js.map +0 -1
- package/dist/node_modules/lodash/_arrayFilter.js.map +0 -1
- package/dist/node_modules/lodash/_arrayIncludes.js.map +0 -1
- package/dist/node_modules/lodash/_arrayIncludesWith.js.map +0 -1
- package/dist/node_modules/lodash/_arrayLikeKeys.js.map +0 -1
- package/dist/node_modules/lodash/_arrayMap.js.map +0 -1
- package/dist/node_modules/lodash/_arrayPush.js.map +0 -1
- package/dist/node_modules/lodash/_arrayReduce.js.map +0 -1
- package/dist/node_modules/lodash/_arraySome.js.map +0 -1
- package/dist/node_modules/lodash/_asciiSize.js.map +0 -1
- package/dist/node_modules/lodash/_asciiToArray.js.map +0 -1
- package/dist/node_modules/lodash/_assignMergeValue.js.map +0 -1
- package/dist/node_modules/lodash/_assignValue.js.map +0 -1
- package/dist/node_modules/lodash/_assocIndexOf.js.map +0 -1
- package/dist/node_modules/lodash/_baseAssign.js.map +0 -1
- package/dist/node_modules/lodash/_baseAssignIn.js.map +0 -1
- package/dist/node_modules/lodash/_baseAssignValue.js.map +0 -1
- package/dist/node_modules/lodash/_baseClone.js.map +0 -1
- package/dist/node_modules/lodash/_baseCreate.js.map +0 -1
- package/dist/node_modules/lodash/_baseEach.js.map +0 -1
- package/dist/node_modules/lodash/_baseEvery.js.map +0 -1
- package/dist/node_modules/lodash/_baseExtremum.js.map +0 -1
- package/dist/node_modules/lodash/_baseFilter.js.map +0 -1
- package/dist/node_modules/lodash/_baseFindIndex.js.map +0 -1
- package/dist/node_modules/lodash/_baseFlatten.js.map +0 -1
- package/dist/node_modules/lodash/_baseFor.js.map +0 -1
- package/dist/node_modules/lodash/_baseForOwn.js.map +0 -1
- package/dist/node_modules/lodash/_baseGet.js.map +0 -1
- package/dist/node_modules/lodash/_baseGetAllKeys.js.map +0 -1
- package/dist/node_modules/lodash/_baseGetTag.js.map +0 -1
- package/dist/node_modules/lodash/_baseGt.js.map +0 -1
- package/dist/node_modules/lodash/_baseHas.js.map +0 -1
- package/dist/node_modules/lodash/_baseHasIn.js.map +0 -1
- package/dist/node_modules/lodash/_baseIndexOf.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsArguments.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsEqual.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsEqualDeep.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsMap.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsMatch.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsNaN.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsNative.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsSet.js.map +0 -1
- package/dist/node_modules/lodash/_baseIsTypedArray.js.map +0 -1
- package/dist/node_modules/lodash/_baseIteratee.js.map +0 -1
- package/dist/node_modules/lodash/_baseKeys.js.map +0 -1
- package/dist/node_modules/lodash/_baseKeysIn.js.map +0 -1
- package/dist/node_modules/lodash/_baseLt.js.map +0 -1
- package/dist/node_modules/lodash/_baseMap.js.map +0 -1
- package/dist/node_modules/lodash/_baseMatches.js.map +0 -1
- package/dist/node_modules/lodash/_baseMatchesProperty.js.map +0 -1
- package/dist/node_modules/lodash/_baseMerge.js.map +0 -1
- package/dist/node_modules/lodash/_baseMergeDeep.js.map +0 -1
- package/dist/node_modules/lodash/_baseOrderBy.js.map +0 -1
- package/dist/node_modules/lodash/_basePick.js.map +0 -1
- package/dist/node_modules/lodash/_basePickBy.js.map +0 -1
- package/dist/node_modules/lodash/_baseProperty.js.map +0 -1
- package/dist/node_modules/lodash/_basePropertyDeep.js.map +0 -1
- package/dist/node_modules/lodash/_baseRange.js.map +0 -1
- package/dist/node_modules/lodash/_baseReduce.js.map +0 -1
- package/dist/node_modules/lodash/_baseRest.js.map +0 -1
- package/dist/node_modules/lodash/_baseSet.js.map +0 -1
- package/dist/node_modules/lodash/_baseSetToString.js.map +0 -1
- package/dist/node_modules/lodash/_baseSlice.js.map +0 -1
- package/dist/node_modules/lodash/_baseSome.js.map +0 -1
- package/dist/node_modules/lodash/_baseSortBy.js.map +0 -1
- package/dist/node_modules/lodash/_baseTimes.js.map +0 -1
- package/dist/node_modules/lodash/_baseToString.js.map +0 -1
- package/dist/node_modules/lodash/_baseTrim.js.map +0 -1
- package/dist/node_modules/lodash/_baseUnary.js.map +0 -1
- package/dist/node_modules/lodash/_baseUniq.js.map +0 -1
- package/dist/node_modules/lodash/_baseValues.js.map +0 -1
- package/dist/node_modules/lodash/_baseZipObject.js.map +0 -1
- package/dist/node_modules/lodash/_cacheHas.js.map +0 -1
- package/dist/node_modules/lodash/_castFunction.js.map +0 -1
- package/dist/node_modules/lodash/_castPath.js.map +0 -1
- package/dist/node_modules/lodash/_castSlice.js.map +0 -1
- package/dist/node_modules/lodash/_cloneArrayBuffer.js.map +0 -1
- package/dist/node_modules/lodash/_cloneBuffer.js.map +0 -1
- package/dist/node_modules/lodash/_cloneDataView.js.map +0 -1
- package/dist/node_modules/lodash/_cloneRegExp.js.map +0 -1
- package/dist/node_modules/lodash/_cloneSymbol.js.map +0 -1
- package/dist/node_modules/lodash/_cloneTypedArray.js.map +0 -1
- package/dist/node_modules/lodash/_compareAscending.js.map +0 -1
- package/dist/node_modules/lodash/_compareMultiple.js.map +0 -1
- package/dist/node_modules/lodash/_copyArray.js.map +0 -1
- package/dist/node_modules/lodash/_copyObject.js.map +0 -1
- package/dist/node_modules/lodash/_copySymbols.js.map +0 -1
- package/dist/node_modules/lodash/_copySymbolsIn.js.map +0 -1
- package/dist/node_modules/lodash/_coreJsData.js.map +0 -1
- package/dist/node_modules/lodash/_createAssigner.js.map +0 -1
- package/dist/node_modules/lodash/_createBaseEach.js.map +0 -1
- package/dist/node_modules/lodash/_createBaseFor.js.map +0 -1
- package/dist/node_modules/lodash/_createCaseFirst.js.map +0 -1
- package/dist/node_modules/lodash/_createFind.js.map +0 -1
- package/dist/node_modules/lodash/_createRange.js.map +0 -1
- package/dist/node_modules/lodash/_createSet.js.map +0 -1
- package/dist/node_modules/lodash/_defineProperty.js.map +0 -1
- package/dist/node_modules/lodash/_equalArrays.js.map +0 -1
- package/dist/node_modules/lodash/_equalByTag.js.map +0 -1
- package/dist/node_modules/lodash/_equalObjects.js.map +0 -1
- package/dist/node_modules/lodash/_flatRest.js.map +0 -1
- package/dist/node_modules/lodash/_freeGlobal.js.map +0 -1
- package/dist/node_modules/lodash/_getAllKeys.js.map +0 -1
- package/dist/node_modules/lodash/_getAllKeysIn.js.map +0 -1
- package/dist/node_modules/lodash/_getMapData.js.map +0 -1
- package/dist/node_modules/lodash/_getMatchData.js.map +0 -1
- package/dist/node_modules/lodash/_getNative.js.map +0 -1
- package/dist/node_modules/lodash/_getPrototype.js.map +0 -1
- package/dist/node_modules/lodash/_getRawTag.js.map +0 -1
- package/dist/node_modules/lodash/_getSymbols.js.map +0 -1
- package/dist/node_modules/lodash/_getSymbolsIn.js.map +0 -1
- package/dist/node_modules/lodash/_getTag.js.map +0 -1
- package/dist/node_modules/lodash/_getValue.js.map +0 -1
- package/dist/node_modules/lodash/_hasPath.js.map +0 -1
- package/dist/node_modules/lodash/_hasUnicode.js.map +0 -1
- package/dist/node_modules/lodash/_hashClear.js.map +0 -1
- package/dist/node_modules/lodash/_hashDelete.js.map +0 -1
- package/dist/node_modules/lodash/_hashGet.js.map +0 -1
- package/dist/node_modules/lodash/_hashHas.js.map +0 -1
- package/dist/node_modules/lodash/_hashSet.js.map +0 -1
- package/dist/node_modules/lodash/_initCloneArray.js.map +0 -1
- package/dist/node_modules/lodash/_initCloneByTag.js.map +0 -1
- package/dist/node_modules/lodash/_initCloneObject.js.map +0 -1
- package/dist/node_modules/lodash/_isFlattenable.js.map +0 -1
- package/dist/node_modules/lodash/_isIndex.js.map +0 -1
- package/dist/node_modules/lodash/_isIterateeCall.js.map +0 -1
- package/dist/node_modules/lodash/_isKey.js.map +0 -1
- package/dist/node_modules/lodash/_isKeyable.js.map +0 -1
- package/dist/node_modules/lodash/_isMasked.js.map +0 -1
- package/dist/node_modules/lodash/_isPrototype.js.map +0 -1
- package/dist/node_modules/lodash/_isStrictComparable.js.map +0 -1
- package/dist/node_modules/lodash/_listCacheClear.js.map +0 -1
- package/dist/node_modules/lodash/_listCacheDelete.js.map +0 -1
- package/dist/node_modules/lodash/_listCacheGet.js.map +0 -1
- package/dist/node_modules/lodash/_listCacheHas.js.map +0 -1
- package/dist/node_modules/lodash/_listCacheSet.js.map +0 -1
- package/dist/node_modules/lodash/_mapCacheClear.js.map +0 -1
- package/dist/node_modules/lodash/_mapCacheDelete.js.map +0 -1
- package/dist/node_modules/lodash/_mapCacheGet.js.map +0 -1
- package/dist/node_modules/lodash/_mapCacheHas.js.map +0 -1
- package/dist/node_modules/lodash/_mapCacheSet.js.map +0 -1
- package/dist/node_modules/lodash/_mapToArray.js.map +0 -1
- package/dist/node_modules/lodash/_matchesStrictComparable.js.map +0 -1
- package/dist/node_modules/lodash/_memoizeCapped.js.map +0 -1
- package/dist/node_modules/lodash/_nativeCreate.js.map +0 -1
- package/dist/node_modules/lodash/_nativeKeys.js.map +0 -1
- package/dist/node_modules/lodash/_nativeKeysIn.js.map +0 -1
- package/dist/node_modules/lodash/_nodeUtil.js.map +0 -1
- package/dist/node_modules/lodash/_objectToString.js.map +0 -1
- package/dist/node_modules/lodash/_overArg.js.map +0 -1
- package/dist/node_modules/lodash/_overRest.js.map +0 -1
- package/dist/node_modules/lodash/_root.js.map +0 -1
- package/dist/node_modules/lodash/_safeGet.js.map +0 -1
- package/dist/node_modules/lodash/_setCacheAdd.js.map +0 -1
- package/dist/node_modules/lodash/_setCacheHas.js.map +0 -1
- package/dist/node_modules/lodash/_setToArray.js.map +0 -1
- package/dist/node_modules/lodash/_setToString.js.map +0 -1
- package/dist/node_modules/lodash/_shortOut.js.map +0 -1
- package/dist/node_modules/lodash/_stackClear.js.map +0 -1
- package/dist/node_modules/lodash/_stackDelete.js.map +0 -1
- package/dist/node_modules/lodash/_stackGet.js.map +0 -1
- package/dist/node_modules/lodash/_stackHas.js.map +0 -1
- package/dist/node_modules/lodash/_stackSet.js.map +0 -1
- package/dist/node_modules/lodash/_strictIndexOf.js.map +0 -1
- package/dist/node_modules/lodash/_stringSize.js.map +0 -1
- package/dist/node_modules/lodash/_stringToArray.js.map +0 -1
- package/dist/node_modules/lodash/_stringToPath.js.map +0 -1
- package/dist/node_modules/lodash/_toKey.js.map +0 -1
- package/dist/node_modules/lodash/_toSource.js.map +0 -1
- package/dist/node_modules/lodash/_trimmedEndIndex.js.map +0 -1
- package/dist/node_modules/lodash/_unicodeSize.js.map +0 -1
- package/dist/node_modules/lodash/_unicodeToArray.js.map +0 -1
- package/dist/node_modules/lodash/clone.js.map +0 -1
- package/dist/node_modules/lodash/cloneDeep.js.map +0 -1
- package/dist/node_modules/lodash/constant.js.map +0 -1
- package/dist/node_modules/lodash/debounce.js.map +0 -1
- package/dist/node_modules/lodash/defaults.js.map +0 -1
- package/dist/node_modules/lodash/each.js.map +0 -1
- package/dist/node_modules/lodash/eq.js.map +0 -1
- package/dist/node_modules/lodash/every.js.map +0 -1
- package/dist/node_modules/lodash/filter.js.map +0 -1
- package/dist/node_modules/lodash/find.js.map +0 -1
- package/dist/node_modules/lodash/findIndex.js.map +0 -1
- package/dist/node_modules/lodash/flatMap.js.map +0 -1
- package/dist/node_modules/lodash/flatten.js.map +0 -1
- package/dist/node_modules/lodash/forEach.js.map +0 -1
- package/dist/node_modules/lodash/forIn.js.map +0 -1
- package/dist/node_modules/lodash/get.js.map +0 -1
- package/dist/node_modules/lodash/has.js.map +0 -1
- package/dist/node_modules/lodash/hasIn.js.map +0 -1
- package/dist/node_modules/lodash/identity.js.map +0 -1
- package/dist/node_modules/lodash/isArguments.js.map +0 -1
- package/dist/node_modules/lodash/isArray.js.map +0 -1
- package/dist/node_modules/lodash/isArrayLike.js.map +0 -1
- package/dist/node_modules/lodash/isArrayLikeObject.js.map +0 -1
- package/dist/node_modules/lodash/isBoolean.js.map +0 -1
- package/dist/node_modules/lodash/isBuffer.js.map +0 -1
- package/dist/node_modules/lodash/isEmpty.js.map +0 -1
- package/dist/node_modules/lodash/isEqual.js.map +0 -1
- package/dist/node_modules/lodash/isFunction.js.map +0 -1
- package/dist/node_modules/lodash/isLength.js.map +0 -1
- package/dist/node_modules/lodash/isMap.js.map +0 -1
- package/dist/node_modules/lodash/isNaN.js.map +0 -1
- package/dist/node_modules/lodash/isNil.js.map +0 -1
- package/dist/node_modules/lodash/isNumber.js.map +0 -1
- package/dist/node_modules/lodash/isObject.js.map +0 -1
- package/dist/node_modules/lodash/isObjectLike.js.map +0 -1
- package/dist/node_modules/lodash/isPlainObject.js.map +0 -1
- package/dist/node_modules/lodash/isSet.js.map +0 -1
- package/dist/node_modules/lodash/isString.js.map +0 -1
- package/dist/node_modules/lodash/isSymbol.js.map +0 -1
- package/dist/node_modules/lodash/isTypedArray.js.map +0 -1
- package/dist/node_modules/lodash/isUndefined.js.map +0 -1
- package/dist/node_modules/lodash/keys.js.map +0 -1
- package/dist/node_modules/lodash/keysIn.js.map +0 -1
- package/dist/node_modules/lodash/last.js.map +0 -1
- package/dist/node_modules/lodash/map.js.map +0 -1
- package/dist/node_modules/lodash/mapValues.js.map +0 -1
- package/dist/node_modules/lodash/max.js.map +0 -1
- package/dist/node_modules/lodash/maxBy.js.map +0 -1
- package/dist/node_modules/lodash/memoize.js.map +0 -1
- package/dist/node_modules/lodash/merge.js.map +0 -1
- package/dist/node_modules/lodash/min.js.map +0 -1
- package/dist/node_modules/lodash/minBy.js.map +0 -1
- package/dist/node_modules/lodash/noop.js.map +0 -1
- package/dist/node_modules/lodash/now.js.map +0 -1
- package/dist/node_modules/lodash/pick.js.map +0 -1
- package/dist/node_modules/lodash/property.js.map +0 -1
- package/dist/node_modules/lodash/range.js.map +0 -1
- package/dist/node_modules/lodash/reduce.js.map +0 -1
- package/dist/node_modules/lodash/size.js.map +0 -1
- package/dist/node_modules/lodash/some.js.map +0 -1
- package/dist/node_modules/lodash/sortBy.js.map +0 -1
- package/dist/node_modules/lodash/stubArray.js.map +0 -1
- package/dist/node_modules/lodash/stubFalse.js.map +0 -1
- package/dist/node_modules/lodash/throttle.js.map +0 -1
- package/dist/node_modules/lodash/toFinite.js.map +0 -1
- package/dist/node_modules/lodash/toInteger.js.map +0 -1
- package/dist/node_modules/lodash/toNumber.js.map +0 -1
- package/dist/node_modules/lodash/toPlainObject.js.map +0 -1
- package/dist/node_modules/lodash/toString.js.map +0 -1
- package/dist/node_modules/lodash/transform.js.map +0 -1
- package/dist/node_modules/lodash/union.js.map +0 -1
- package/dist/node_modules/lodash/uniqBy.js.map +0 -1
- package/dist/node_modules/lodash/uniqueId.js.map +0 -1
- package/dist/node_modules/lodash/upperFirst.js.map +0 -1
- package/dist/node_modules/lodash/values.js.map +0 -1
- package/dist/node_modules/lodash/zipObject.js.map +0 -1
- package/dist/node_modules/object-assign/index.js.map +0 -1
- package/dist/node_modules/prop-types/checkPropTypes.js.map +0 -1
- package/dist/node_modules/prop-types/factoryWithThrowingShims.js.map +0 -1
- package/dist/node_modules/prop-types/factoryWithTypeCheckers.js.map +0 -1
- package/dist/node_modules/prop-types/index.js.map +0 -1
- package/dist/node_modules/prop-types/lib/ReactPropTypesSecret.js.map +0 -1
- package/dist/node_modules/prop-types/lib/has.js.map +0 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js.map +0 -1
- package/dist/node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js.map +0 -1
- package/dist/node_modules/prop-types/node_modules/react-is/index.js.map +0 -1
- package/dist/node_modules/react-is/cjs/react-is.development.js.map +0 -1
- package/dist/node_modules/react-is/cjs/react-is.production.min.js.map +0 -1
- package/dist/node_modules/react-is/index.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/Animate.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/AnimateManager.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/configUpdate.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/easing.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/index.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/setRafTimeout.js.map +0 -1
- package/dist/node_modules/react-smooth/es6/util.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/Area.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/Bar.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/Brush.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/CartesianAxis.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/CartesianGrid.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/ErrorBar.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceArea.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceDot.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/ReferenceLine.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/XAxis.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/YAxis.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/getEquidistantTicks.js.map +0 -1
- package/dist/node_modules/recharts/es6/cartesian/getTicks.js.map +0 -1
- package/dist/node_modules/recharts/es6/chart/AccessibilityManager.js.map +0 -1
- package/dist/node_modules/recharts/es6/chart/AreaChart.js.map +0 -1
- package/dist/node_modules/recharts/es6/chart/PieChart.js.map +0 -1
- package/dist/node_modules/recharts/es6/chart/generateCategoricalChart.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Cell.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Cursor.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/DefaultLegendContent.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/DefaultTooltipContent.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Label.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/LabelList.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Legend.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/ResponsiveContainer.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Text.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/Tooltip.js.map +0 -1
- package/dist/node_modules/recharts/es6/component/TooltipBoundingBox.js.map +0 -1
- package/dist/node_modules/recharts/es6/container/Layer.js.map +0 -1
- package/dist/node_modules/recharts/es6/container/Surface.js.map +0 -1
- package/dist/node_modules/recharts/es6/context/chartLayoutContext.js.map +0 -1
- package/dist/node_modules/recharts/es6/polar/Pie.js.map +0 -1
- package/dist/node_modules/recharts/es6/polar/PolarAngleAxis.js.map +0 -1
- package/dist/node_modules/recharts/es6/polar/PolarRadiusAxis.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Cross.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Curve.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Dot.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Polygon.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Rectangle.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Sector.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Symbols.js.map +0 -1
- package/dist/node_modules/recharts/es6/shape/Trapezoid.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/ActiveShapeUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/BarUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/CartesianUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/ChartUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/CssPrefixUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/DOMUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/DataUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/DetectReferenceElementsDomain.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/Events.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/Global.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/IfOverflowMatches.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/LogUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/PolarUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/ReactUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/ReduceCSSCalc.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/ShallowEqual.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/TickUtils.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/calculateViewBox.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/cursor/getCursorPoints.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/cursor/getCursorRectangle.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/cursor/getRadialCursorPoints.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/getEveryNthWithCondition.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/getLegendProps.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/isDomainSpecifiedByUser.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/payload/getUniqPayload.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/tooltip/translate.js.map +0 -1
- package/dist/node_modules/recharts/es6/util/types.js.map +0 -1
- package/dist/node_modules/recharts-scale/es6/getNiceTickValues.js.map +0 -1
- package/dist/node_modules/recharts-scale/es6/util/arithmetic.js.map +0 -1
- package/dist/node_modules/recharts-scale/es6/util/utils.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/NotificationFactories.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Observable.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscriber.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/Subscription.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/config.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/empty.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/observable/throwError.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/scheduler/timeoutProvider.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/symbol/observable.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/UnsubscriptionError.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/arrRemove.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/createErrorClass.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/errorContext.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/identity.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/isFunction.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/noop.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/pipe.js.map +0 -1
- package/dist/node_modules/rxjs/dist/esm5/internal/util/reportUnhandledError.js.map +0 -1
- package/dist/node_modules/rxjs/node_modules/tslib/tslib.es6.js.map +0 -1
- package/dist/node_modules/tiny-invariant/dist/esm/tiny-invariant.js.map +0 -1
- package/dist/node_modules/victory-vendor/es/d3-scale.js.map +0 -1
- package/dist/pages/ActionsPage.js.map +0 -1
- package/dist/pages/AgentDetailsPage.js.map +0 -1
- package/dist/pages/AgentGraphPage.js.map +0 -1
- package/dist/pages/AgentsLandingPage.js.map +0 -1
- package/dist/pages/AgentsPage.js.map +0 -1
- package/dist/pages/AnalyticsPage.js.map +0 -1
- package/dist/pages/CatalogDetailPage.js.map +0 -1
- package/dist/pages/CatalogDocsPage.js.map +0 -1
- package/dist/pages/CatalogPage.js.map +0 -1
- package/dist/pages/ComponentDetailPage.js.map +0 -1
- package/dist/pages/ComponentDocsPage.js.map +0 -1
- package/dist/pages/ComponentsPage.js.map +0 -1
- package/dist/pages/EnvTopologyPage.js.map +0 -1
- package/dist/pages/GettingStartedPage.js.map +0 -1
- package/dist/pages/HealthPage.js.map +0 -1
- package/dist/pages/LogsPage.js.map +0 -1
- package/dist/pages/NoteDetailsPage.js.map +0 -1
- package/dist/pages/OverviewPage.js.map +0 -1
- package/dist/pages/PluginDetailPage.js.map +0 -1
- package/dist/pages/PluginsCatalogPage.js.map +0 -1
- package/dist/pages/ScheduledJobDetailPage.js.map +0 -1
- package/dist/pages/SessionDetailsPage.js.map +0 -1
- package/dist/pages/SessionsPage.js.map +0 -1
- package/dist/pages/SettingsPage.js.map +0 -1
- package/dist/pages/SharedSessionPage.js.map +0 -1
- package/dist/pages/SharedVibeDeckPage.js.map +0 -1
- package/dist/pages/TargetDetailsPage.js.map +0 -1
- package/dist/pages/TargetsPage.js.map +0 -1
- package/dist/pages/TemplateDetailPage.js.map +0 -1
- package/dist/pages/TemplatesPage.js.map +0 -1
- package/dist/pages/TunnelsLandingPage.js.map +0 -1
- package/dist/pages/VibeAuditPage.js.map +0 -1
- package/dist/pages/VibeCalendarPage.js.map +0 -1
- package/dist/pages/VibeDeckPage.js.map +0 -1
- package/dist/pages/VibeDetailsPage.js.map +0 -1
- package/dist/pages/VibeDocsPage.js.map +0 -1
- package/dist/pages/VibeTaskDetailPage.js.map +0 -1
- package/dist/pages/VibesPage.js.map +0 -1
- package/dist/pages/WebhooksPage.js.map +0 -1
- package/dist/pages/ai/AIBookmarksPage.js.map +0 -1
- package/dist/pages/ai/AIBuilderPage.js.map +0 -1
- package/dist/pages/ai/AIPage.js.map +0 -1
- package/dist/pages/ai/AISessionDetailPage.js.map +0 -1
- package/dist/pages/ai/AgentManagerPage.js.map +0 -1
- package/dist/pages/tunnels/AuditTab.js.map +0 -1
- package/dist/pages/tunnels/DomainsTab.js.map +0 -1
- package/dist/pages/tunnels/ProvidersTab.js.map +0 -1
- package/dist/pages/tunnels/SessionsTab.js.map +0 -1
- package/dist/pages/tunnels/TunnelDetailsPage.js.map +0 -1
- package/dist/pages/tunnels/TunnelsTab.js.map +0 -1
- package/dist/pages/tunnels/UsageTab.js.map +0 -1
- package/dist/pages/tunnels/tabs/TunnelAuditTab.js.map +0 -1
- package/dist/pages/tunnels/tabs/TunnelCliTab.js.map +0 -1
- package/dist/pages/tunnels/tabs/TunnelDomainsTab.js.map +0 -1
- package/dist/pages/tunnels/tabs/TunnelEndpointsTab.js.map +0 -1
- package/dist/pages/tunnels/tabs/TunnelOverviewTab.js.map +0 -1
- package/dist/pages/tunnels/tabs/TunnelSessionsTab.js.map +0 -1
- package/dist/pages/tunnels/tabs/TunnelSettingsTab.js.map +0 -1
- package/dist/pages/tunnels/tabs/TunnelUsageTab.js.map +0 -1
- package/dist/plugin.js.map +0 -1
- package/dist/providers/AgentEventsProvider.js.map +0 -1
- package/dist/providers/QuotaExhaustedProvider.js.map +0 -1
- package/dist/providers/VibeControlsProvider.js.map +0 -1
- package/dist/services/agentRemoteTaskGates.js.map +0 -1
- package/dist/services/aiApi.js.map +0 -1
- package/dist/services/assistantApi.js.map +0 -1
- package/dist/services/createSandboxAssistantTransport.js.map +0 -1
- package/dist/services/gitopsApi.js.map +0 -1
- package/dist/services/iframeToken.js.map +0 -1
- package/dist/services/planApi.js.map +0 -1
- package/dist/services/schedulerApi.js.map +0 -1
- package/dist/shared/hooks/useField.js.map +0 -1
- package/dist/shared/hooks/useTr.js.map +0 -1
- package/dist/store/agentManagerStore.js.map +0 -1
- package/dist/store/vibeControlsStore.js.map +0 -1
- package/dist/translations/en.js.map +0 -1
- package/dist/types/assistant.js.map +0 -1
- package/dist/utils/agentApiPath.js.map +0 -1
- package/dist/utils/agentHealth.js.map +0 -1
- package/dist/utils/agentStatus.js.map +0 -1
- package/dist/utils/agentVisibility.js.map +0 -1
- package/dist/utils/aiCredits.js.map +0 -1
- package/dist/utils/aiCreditsLedger.js.map +0 -1
- package/dist/utils/aiSessionNotFound.js.map +0 -1
- package/dist/utils/assistantPrompt.js.map +0 -1
- package/dist/utils/onboardingUtils.js.map +0 -1
- package/dist/utils/pageContext.js.map +0 -1
- package/dist/utils/quotaUtils.js.map +0 -1
- package/dist/utils/randomSessionName.js.map +0 -1
- package/dist/utils/relativeTime.js.map +0 -1
- package/dist/utils/shareUrl.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VibeLlmContextTabPanel.js","names":[],"sources":["../../../src/components/vibe/VibeLlmContextTabPanel.tsx"],"sourcesContent":["import type { ReactElement } from 'react';\nimport { Fragment, useEffect, useState } from 'react';\nimport { gql } from '@apollo/client';\nimport { useLazyQuery, useMutation, useQuery } from '@apollo/client/react';\nimport {\n AlertTriangle,\n Bot,\n Check,\n Clock,\n Copy,\n Eye,\n EyeOff,\n Info,\n Lock,\n RefreshCw,\n RotateCw,\n Trash2,\n X,\n} from 'lucide-react';\n\nimport { usePermissions } from '@burdenoff/fe-libs/shared/providers/shell';\n\nimport { VIBE_PERMISSIONS } from '@/constants/permissions';\n\nimport { VibeLlmContextAdminPanel } from './VibeLlmContextAdminPanel';\n\nconst ALL_INCLUDES = [\n 'core',\n 'agents',\n 'sessions',\n 'notes',\n 'catalogs',\n 'docs',\n 'config',\n 'security',\n 'plugins',\n] as const;\n\ntype IncludeKey = (typeof ALL_INCLUDES)[number];\n\ninterface VibeLlmContextSettings {\n vibeId: string;\n ttlSeconds: number;\n includeCredentials: boolean;\n includes: string[];\n customContextText: string | null;\n defaultAgentIdOverride: string | null;\n sessionsLimit: number;\n notesLimit: number;\n docsPagesLimit: number;\n securityRunsLimit: number;\n updatedAt: string;\n}\n\ninterface VibeLlmContextTokenRow {\n id: string;\n vibeId: string;\n userId: string;\n label: string | null;\n tokenFingerprint: string;\n includeCredentials: boolean;\n includes: string[];\n status: 'ACTIVE' | 'REVOKED';\n expiresAt: string;\n lastFetchedAt: string | null;\n fetchCount: number;\n createdAt: string;\n revokedAt: string | null;\n revokedReason: string | null;\n}\n\ninterface MintResult {\n tokenId: string;\n url: string;\n token: string;\n expiresAt: string;\n ttlSeconds: number;\n includes: string[];\n includeCredentials: boolean;\n label: string | null;\n tokenFingerprint: string;\n}\n\ninterface AuditRow {\n id: string;\n fetchedAt: string;\n remoteIp: string | null;\n userAgent: string | null;\n format: string;\n bytes: number;\n durationMs: number;\n status: number;\n}\n\nconst GET_SETTINGS = gql`\n query MyVibeLlmContextSettings($vibeId: ID!) {\n myVibeLlmContextSettings(vibeId: $vibeId) {\n vibeId\n ttlSeconds\n includeCredentials\n includes\n customContextText\n defaultAgentIdOverride\n sessionsLimit\n notesLimit\n docsPagesLimit\n securityRunsLimit\n updatedAt\n }\n }\n`;\n\nconst GET_TOKENS = gql`\n query MyVibeLlmContextTokens($vibeId: ID!) {\n myVibeLlmContextTokens(vibeId: $vibeId) {\n id\n vibeId\n userId\n label\n tokenFingerprint\n includeCredentials\n includes\n status\n expiresAt\n lastFetchedAt\n fetchCount\n createdAt\n revokedAt\n revokedReason\n }\n }\n`;\n\nconst SET_SETTINGS = gql`\n mutation SetMyVibeLlmContextSettings($vibeId: ID!, $input: VibeLlmContextSettingsInput!) {\n setMyVibeLlmContextSettings(vibeId: $vibeId, input: $input) {\n vibeId\n ttlSeconds\n includeCredentials\n includes\n customContextText\n defaultAgentIdOverride\n sessionsLimit\n notesLimit\n docsPagesLimit\n securityRunsLimit\n updatedAt\n }\n }\n`;\n\nconst GENERATE_URL = gql`\n mutation GenerateVibeLlmContextUrl($vibeId: ID!, $input: VibeLlmContextMintInput) {\n generateVibeLlmContextUrl(vibeId: $vibeId, input: $input) {\n tokenId\n url\n token\n expiresAt\n ttlSeconds\n includes\n includeCredentials\n label\n tokenFingerprint\n }\n }\n`;\n\nconst PREVIEW = gql`\n query MyVibeLlmContextPreview($vibeId: ID!, $input: VibeLlmContextMintInput) {\n myVibeLlmContextPreview(vibeId: $vibeId, input: $input) {\n json\n markdown\n includes\n includeCredentials\n }\n }\n`;\n\nconst REVOKE_TOKEN = gql`\n mutation RevokeVibeLlmContextToken($tokenId: ID!) {\n revokeVibeLlmContextToken(tokenId: $tokenId) {\n id\n status\n revokedAt\n }\n }\n`;\n\nconst ROTATE_TOKEN = gql`\n mutation RotateVibeLlmContextUrl($tokenId: ID!, $input: VibeLlmContextMintInput) {\n rotateVibeLlmContextUrl(tokenId: $tokenId, input: $input) {\n tokenId\n url\n token\n expiresAt\n ttlSeconds\n includes\n includeCredentials\n label\n tokenFingerprint\n }\n }\n`;\n\nconst REVOKE_ALL = gql`\n mutation RevokeAllMyVibeLlmContextTokens($vibeId: ID!) {\n revokeAllMyVibeLlmContextTokens(vibeId: $vibeId)\n }\n`;\n\nconst GET_AUDITS = gql`\n query MyVibeLlmContextTokenAudits($tokenId: ID!, $limit: Int) {\n myVibeLlmContextTokenAudits(tokenId: $tokenId, limit: $limit) {\n id\n fetchedAt\n remoteIp\n userAgent\n format\n bytes\n durationMs\n status\n }\n }\n`;\n\nconst TTL_PRESETS: Array<{ label: string; hours: number }> = [\n { label: '1 hour', hours: 1 },\n { label: '6 hours', hours: 6 },\n { label: '24 hours', hours: 24 },\n { label: '7 days', hours: 24 * 7 },\n];\n\nasync function copyToClipboard(text: string): Promise<void> {\n try {\n await navigator.clipboard.writeText(text);\n } catch {\n const ta = document.createElement('textarea');\n ta.value = text;\n ta.style.position = 'fixed';\n ta.style.opacity = '0';\n document.body.appendChild(ta);\n ta.select();\n document.execCommand('copy');\n document.body.removeChild(ta);\n }\n}\n\nfunction formatExpiry(expiresAt: string): string {\n const diff = new Date(expiresAt).getTime() - Date.now();\n if (diff < 0) return 'expired';\n const hours = Math.floor(diff / (1000 * 60 * 60));\n const mins = Math.floor((diff % (1000 * 60 * 60)) / (1000 * 60));\n if (hours > 24) return `${Math.floor(hours / 24)}d`;\n if (hours > 0) return `${hours}h ${mins}m`;\n return `${mins}m`;\n}\n\ninterface AttachedAgent {\n id: string;\n name: string;\n}\n\ninterface VibeLlmContextTabPanelProps {\n vibeId: string;\n attachedAgents?: AttachedAgent[];\n}\n\nexport function VibeLlmContextTabPanel({\n vibeId,\n attachedAgents = [],\n}: VibeLlmContextTabPanelProps): ReactElement {\n const { hasPermission } = usePermissions();\n const isAdmin = hasPermission(VIBE_PERMISSIONS.VIBE_MANAGE);\n const settingsQuery = useQuery<{ myVibeLlmContextSettings: VibeLlmContextSettings }>(\n GET_SETTINGS,\n {\n variables: { vibeId },\n fetchPolicy: 'cache-and-network',\n }\n );\n const tokensQuery = useQuery<{ myVibeLlmContextTokens: VibeLlmContextTokenRow[] }>(GET_TOKENS, {\n variables: { vibeId },\n fetchPolicy: 'cache-and-network',\n });\n const [saveSettings, saveSettingsState] = useMutation<\n { setMyVibeLlmContextSettings: VibeLlmContextSettings },\n {\n vibeId: string;\n input: {\n ttlSeconds?: number;\n includeCredentials?: boolean;\n includes?: string[];\n customContextText?: string | null;\n defaultAgentIdOverride?: string | null;\n sessionsLimit?: number;\n notesLimit?: number;\n docsPagesLimit?: number;\n securityRunsLimit?: number;\n };\n }\n >(SET_SETTINGS, { refetchQueries: ['MyVibeLlmContextSettings'] });\n const [generateUrl, generateUrlState] = useMutation<\n { generateVibeLlmContextUrl: MintResult },\n {\n vibeId: string;\n input?: {\n label?: string | null;\n ttlSeconds?: number | null;\n includeCredentials?: boolean | null;\n includes?: string[] | null;\n defaultAgentIdOverride?: string | null;\n } | null;\n }\n >(GENERATE_URL, { refetchQueries: ['MyVibeLlmContextTokens'] });\n const [revokeToken] = useMutation<\n { revokeVibeLlmContextToken: VibeLlmContextTokenRow },\n { tokenId: string }\n >(REVOKE_TOKEN, { refetchQueries: ['MyVibeLlmContextTokens'] });\n const [rotateToken] = useMutation<{ rotateVibeLlmContextUrl: MintResult }, { tokenId: string }>(\n ROTATE_TOKEN,\n { refetchQueries: ['MyVibeLlmContextTokens'] }\n );\n const [revokeAll] = useMutation<{ revokeAllMyVibeLlmContextTokens: number }, { vibeId: string }>(\n REVOKE_ALL,\n { refetchQueries: ['MyVibeLlmContextTokens'] }\n );\n\n const settings = settingsQuery.data?.myVibeLlmContextSettings;\n const tokens = tokensQuery.data?.myVibeLlmContextTokens ?? [];\n\n // Local editable copy of settings\n const [ttlHours, setTtlHours] = useState<number>(1);\n const [includeCreds, setIncludeCreds] = useState<boolean>(false);\n const [includesState, setIncludesState] = useState<Set<IncludeKey>>(new Set(ALL_INCLUDES));\n const [customText, setCustomText] = useState<string>('');\n const [defaultAgentOverride, setDefaultAgentOverride] = useState<string>('');\n const [label, setLabel] = useState<string>('');\n const [lastMint, setLastMint] = useState<MintResult | null>(null);\n const [copied, setCopied] = useState<boolean>(false);\n const [justSaved, setJustSaved] = useState<boolean>(false);\n const [auditPanelTokenId, setAuditPanelTokenId] = useState<string | null>(null);\n\n // ── In-app preview (assembles the snapshot for the current settings, no\n // token minted) — reuses the same JSON ⇄ Markdown views as the URL viewer.\n const [previewOpen, setPreviewOpen] = useState<boolean>(false);\n const [previewView, setPreviewView] = useState<'json' | 'markdown'>('json');\n const [runPreview, previewState] = useLazyQuery<\n {\n myVibeLlmContextPreview: {\n json: string;\n markdown: string;\n includes: string[];\n includeCredentials: boolean;\n };\n },\n {\n vibeId: string;\n input: {\n ttlSeconds: number;\n includeCredentials: boolean;\n includes: string[];\n defaultAgentIdOverride: string | null;\n };\n }\n >(PREVIEW, { fetchPolicy: 'network-only' });\n\n const openPreview = (): void => {\n setPreviewOpen(true);\n void runPreview({\n variables: {\n vibeId,\n input: {\n ttlSeconds: Math.max(60, Math.min(7 * 24 * 60 * 60, ttlHours * 60 * 60)),\n includeCredentials: includeCreds,\n includes: [...includesState],\n defaultAgentIdOverride: defaultAgentOverride || null,\n },\n },\n });\n };\n\n // Hydrate local form when server settings arrive. This is a side effect\n // (it writes component state), so it belongs in useEffect — not useMemo.\n useEffect(() => {\n if (!settings) return;\n setTtlHours(Math.max(1, Math.round((settings.ttlSeconds ?? 3600) / 3600)));\n setIncludeCreds(settings.includeCredentials);\n setIncludesState(new Set((settings.includes as IncludeKey[]) ?? ALL_INCLUDES));\n setCustomText(settings.customContextText ?? '');\n setDefaultAgentOverride(settings.defaultAgentIdOverride ?? '');\n }, [settings]);\n\n const onToggleInclude = (key: IncludeKey) => {\n setIncludesState((prev) => {\n const next = new Set(prev);\n if (next.has(key)) next.delete(key);\n else next.add(key);\n return next;\n });\n };\n\n const onSaveSettings = async () => {\n await saveSettings({\n variables: {\n vibeId,\n input: {\n ttlSeconds: Math.max(60, Math.min(7 * 24 * 60 * 60, ttlHours * 60 * 60)),\n includeCredentials: includeCreds,\n includes: Array.from(includesState),\n customContextText: customText,\n defaultAgentIdOverride: defaultAgentOverride || null,\n },\n },\n });\n setJustSaved(true);\n setTimeout(() => setJustSaved(false), 2000);\n };\n\n // Close the preview modal on Escape (WAI-ARIA dialog pattern). A document\n // listener avoids depending on the dialog div holding focus.\n useEffect(() => {\n if (!previewOpen) return;\n const onKey = (e: KeyboardEvent): void => {\n if (e.key === 'Escape') setPreviewOpen(false);\n };\n document.addEventListener('keydown', onKey);\n return () => document.removeEventListener('keydown', onKey);\n }, [previewOpen]);\n\n const onGenerate = async () => {\n const res = await generateUrl({\n variables: {\n vibeId,\n input: {\n label: label || null,\n ttlSeconds: Math.max(60, Math.min(7 * 24 * 60 * 60, ttlHours * 60 * 60)),\n includeCredentials: includeCreds,\n includes: Array.from(includesState),\n defaultAgentIdOverride: defaultAgentOverride || null,\n },\n },\n });\n if (res.data) {\n setLastMint(res.data.generateVibeLlmContextUrl);\n setCopied(false);\n setLabel('');\n }\n };\n\n const onRevokeAll = async () => {\n if (\n typeof window !== 'undefined' &&\n !window.confirm(\n 'Revoke ALL active URLs for this vibe? Every minted URL stops working immediately and cannot be un-revoked (use Rotate to issue a fresh one).'\n )\n ) {\n return;\n }\n await revokeAll({ variables: { vibeId } });\n };\n\n const onCopyResultUrl = async () => {\n if (!lastMint) return;\n await copyToClipboard(lastMint.url);\n setCopied(true);\n setTimeout(() => setCopied(false), 2000);\n };\n\n return (\n <div className=\"space-y-6 max-w-5xl\">\n {/* Header */}\n <div className=\"rounded-lg border border-status-warning-border bg-status-warning-bg/30 p-4\">\n <div className=\"flex items-start gap-3\">\n <Lock className=\"size-5 text-status-warning-text mt-0.5\" />\n <div className=\"text-sm text-text-primary\">\n <p className=\"font-medium mb-1\">\n LLM Context — share this vibe with any LLM via a signed URL\n </p>\n <p className=\"text-text-secondary\">\n Anyone with the URL can read the snapshot until it expires. When \"Include credentials\"\n is on, the snapshot exposes agent tunnel URLs + API keys. Default is redacted. Rotate\n or revoke any URL from the list below at any time.\n </p>\n </div>\n </div>\n </div>\n\n {/* Settings panel */}\n <section className=\"bg-bg-surface border border-border-default rounded-lg p-5 space-y-4\">\n <header className=\"flex items-center justify-between\">\n <div>\n <h3 className=\"text-base font-semibold text-text-primary\">Saved settings</h3>\n <p className=\"text-sm text-text-secondary\">\n Defaults used when you generate a URL. Snapshotted into each minted token, so future\n edits don't change already-minted URLs.\n </p>\n </div>\n <button\n type=\"button\"\n onClick={onSaveSettings}\n disabled={saveSettingsState.loading}\n className=\"inline-flex items-center gap-1.5 px-3 py-1.5 text-sm bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover disabled:opacity-50\"\n >\n {justSaved && !saveSettingsState.loading && <Check className=\"size-4\" />}\n {saveSettingsState.loading ? 'Saving…' : justSaved ? 'Saved' : 'Save settings'}\n </button>\n </header>\n\n {/* TTL */}\n <div>\n <label\n htmlFor=\"vibellmcontexttabpanel-44\"\n className=\"block text-sm font-medium text-text-primary mb-2\"\n >\n URL expiry\n </label>\n <div className=\"flex flex-wrap items-center gap-2\">\n {TTL_PRESETS.map((p) => (\n <button\n key={p.hours}\n type=\"button\"\n onClick={() => setTtlHours(p.hours)}\n className={`px-3 py-1.5 text-sm rounded-md border ${\n ttlHours === p.hours\n ? 'bg-action-primary-bg text-action-primary-text border-action-primary-bg'\n : 'bg-bg-sunken text-text-primary border-border-default'\n }`}\n >\n {p.label}\n </button>\n ))}\n <span className=\"text-sm text-text-secondary mx-1\">or custom hours:</span>\n <input\n id=\"vibellmcontexttabpanel-44\"\n aria-label=\"control\"\n type=\"number\"\n min={1}\n max={168}\n value={ttlHours}\n onChange={(e) => setTtlHours(Math.max(1, Math.min(168, Number(e.target.value) || 1)))}\n className=\"w-24 px-2 py-1.5 text-sm bg-bg-sunken border border-border-default rounded-md text-text-primary\"\n />\n </div>\n </div>\n\n {/* Credentials toggle */}\n <div>\n <label className=\"flex items-center gap-2 text-sm text-text-primary\">\n <input\n aria-label=\"control\"\n type=\"checkbox\"\n checked={includeCreds}\n onChange={(e) => setIncludeCreds(e.target.checked)}\n className=\"size-4\"\n />\n <span>Include credentials (tunnel URLs + agent API keys)</span>\n {includeCreds ? (\n <AlertTriangle\n className=\"size-4 text-status-warning-text\"\n aria-label=\"Credentials will be exposed in the snapshot\"\n />\n ) : (\n <EyeOff className=\"size-4 text-text-secondary\" aria-label=\"Credentials redacted\" />\n )}\n </label>\n {includeCreds && (\n <p className=\"mt-1.5 text-xs text-status-warning-text flex items-start gap-1.5\">\n <AlertTriangle className=\"size-3.5 mt-0.5 flex-shrink-0\" />\n <span>\n Anyone with a URL minted while this is on can read live agent tunnel URLs and API\n keys. Only enable for trusted recipients.\n </span>\n </p>\n )}\n </div>\n\n {/* Includes chips */}\n <div>\n <label\n htmlFor=\"vibellmcontexttabpanel-43\"\n className=\"block text-sm font-medium text-text-primary mb-2\"\n >\n Sections to include\n </label>\n <div className=\"flex flex-wrap gap-2\">\n {ALL_INCLUDES.map((key) => (\n <button\n key={key}\n type=\"button\"\n onClick={() => onToggleInclude(key)}\n className={`px-2.5 py-1 text-xs rounded-full border ${\n includesState.has(key)\n ? 'bg-action-primary-bg/10 text-action-primary-bg border-action-primary-bg'\n : 'bg-bg-sunken text-text-secondary border-border-default'\n }`}\n >\n {key}\n </button>\n ))}\n </div>\n <p className=\"text-xs text-text-secondary mt-2\">\n <b>plugins</b> / <b>agents</b> also pull each installed plugin's live context\n (graphiql, ai, session, git…) when a default agent is set.\n </p>\n </div>\n\n {/* Default agent override */}\n {attachedAgents.length > 0 && (\n <div>\n <label\n htmlFor=\"vibellmcontexttabpanel-43\"\n className=\"block text-sm font-medium text-text-primary mb-2\"\n >\n Default agent for context fetch\n </label>\n <select\n id=\"vibellmcontexttabpanel-43\"\n value={defaultAgentOverride}\n onChange={(e) => setDefaultAgentOverride(e.target.value)}\n className=\"w-full px-3 py-2 text-sm bg-bg-sunken border border-border-default rounded-md text-text-primary\"\n >\n <option value=\"\">(use my per-vibe default from settings)</option>\n {attachedAgents.map((a) => (\n <option key={a.id} value={a.id}>\n {a.name}\n </option>\n ))}\n </select>\n </div>\n )}\n\n {/* Custom context */}\n <div>\n <label\n htmlFor=\"vibellmcontexttabpanel-42\"\n className=\"block text-sm font-medium text-text-primary mb-2\"\n >\n Custom context text\n </label>\n <textarea\n id=\"vibellmcontexttabpanel-42\"\n aria-label=\"Free-form notes embedded in every snapshot you mint AFTER saving (existing tokens keep their original copy).\"\n value={customText}\n onChange={(e) => setCustomText(e.target.value.slice(0, 8192))}\n rows={5}\n placeholder=\"Free-form notes embedded in every snapshot you mint AFTER saving (existing tokens keep their original copy).\"\n className=\"w-full px-3 py-2 text-sm bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-placeholder\"\n />\n <p className=\"text-xs text-text-secondary mt-1\">{customText.length} / 8192 chars</p>\n </div>\n </section>\n\n {/* Generate panel */}\n <section className=\"bg-bg-surface border border-border-default rounded-lg p-5 space-y-4\">\n <header>\n <h3 className=\"text-base font-semibold text-text-primary\">Generate a new URL</h3>\n <p className=\"text-sm text-text-secondary\">\n Mints a fresh signed URL using your current settings. The full token is only shown once\n — copy it before navigating away. Use Rotate below if you lose it.\n </p>\n </header>\n <div className=\"flex flex-wrap items-end gap-2\">\n <div className=\"flex-1 min-w-[200px]\">\n <label\n htmlFor=\"vibellmcontexttabpanel-41\"\n className=\"block text-sm font-medium text-text-primary mb-1\"\n >\n Label (optional)\n </label>\n <input\n id=\"vibellmcontexttabpanel-41\"\n aria-label=\"e.g. Claude desktop\"\n type=\"text\"\n value={label}\n onChange={(e) => setLabel(e.target.value.slice(0, 120))}\n placeholder=\"e.g. Claude desktop\"\n className=\"w-full px-3 py-2 text-sm bg-bg-sunken border border-border-default rounded-md text-text-primary placeholder:text-text-placeholder\"\n />\n </div>\n <button\n type=\"button\"\n onClick={openPreview}\n disabled={previewState.loading}\n className=\"px-4 py-2 text-sm bg-bg-sunken text-text-primary border border-border-default rounded-md hover:bg-action-primary-bg-hover disabled:opacity-50 inline-flex items-center gap-1.5\"\n >\n <Eye className=\"size-4\" />\n {previewState.loading ? 'Loading…' : 'Preview'}\n </button>\n <button\n type=\"button\"\n onClick={onGenerate}\n disabled={generateUrlState.loading}\n className=\"px-4 py-2 text-sm bg-action-primary-bg text-action-primary-text rounded-md hover:bg-action-primary-bg-hover disabled:opacity-50\"\n >\n {generateUrlState.loading ? 'Generating…' : 'Generate URL'}\n </button>\n </div>\n\n {lastMint && (\n <div className=\"rounded-md border border-status-success-border bg-status-success-bg/20 p-3\">\n <div className=\"flex items-center gap-2 text-sm mb-2\">\n <Check className=\"size-4 text-status-success-text\" />\n <span className=\"font-medium text-text-primary\">URL generated</span>\n <span className=\"text-xs text-text-secondary\">\n expires in {formatExpiry(lastMint.expiresAt)}\n </span>\n </div>\n <div className=\"flex items-center gap-2\">\n <input\n readOnly\n value={lastMint.url}\n className=\"flex-1 px-2 py-1.5 text-xs bg-bg-sunken border border-border-default rounded font-mono text-text-primary\"\n aria-label=\"Generated LLM context URL\"\n />\n <button\n type=\"button\"\n onClick={onCopyResultUrl}\n className=\"px-2 py-1.5 text-xs bg-bg-sunken border border-border-default rounded text-text-primary\"\n aria-label=\"Copy URL\"\n >\n {copied ? (\n <Check className=\"size-4 text-status-success-text\" />\n ) : (\n <Copy className=\"size-4\" />\n )}\n </button>\n </div>\n </div>\n )}\n </section>\n\n {/* Active URLs list */}\n <section className=\"bg-bg-surface border border-border-default rounded-lg p-5 space-y-3\">\n <header className=\"flex items-center justify-between\">\n <div>\n <h3 className=\"text-base font-semibold text-text-primary\">Your active URLs</h3>\n <p className=\"text-sm text-text-secondary\">\n Tokens you minted for this vibe. Revoke and rotate work immediately; revoked tokens\n fail with 403 even if the JWT hasn't expired.\n </p>\n </div>\n <button\n type=\"button\"\n onClick={onRevokeAll}\n disabled={tokens.every((t) => t.status !== 'ACTIVE')}\n className=\"flex items-center gap-1 px-3 py-1.5 text-sm bg-status-error-bg/10 text-status-error-text border border-status-error-border rounded-md hover:bg-status-error-bg/20 disabled:opacity-40 disabled:cursor-not-allowed\"\n >\n <Trash2 className=\"size-4\" />\n Revoke all\n </button>\n </header>\n\n {tokensQuery.loading && tokens.length === 0 && (\n <div className=\"text-sm text-text-secondary py-4 flex items-center gap-2\">\n <RefreshCw className=\"size-4 animate-spin\" />\n Loading tokens…\n </div>\n )}\n {tokens.length === 0 && !tokensQuery.loading && (\n <div className=\"text-sm text-text-secondary py-4 flex items-center gap-2\">\n <Info className=\"size-4\" />\n No URLs minted yet for this vibe.\n </div>\n )}\n {tokens.length > 0 && (\n <div className=\"overflow-x-auto\">\n <table className=\"w-full text-sm\">\n <thead>\n <tr className=\"border-b border-border-default text-left text-xs text-text-secondary\">\n <th className=\"py-2 pr-3\">Label</th>\n <th className=\"py-2 pr-3\">Fingerprint</th>\n <th className=\"py-2 pr-3\">Sections</th>\n <th className=\"py-2 pr-3\">Creds</th>\n <th className=\"py-2 pr-3\">Status</th>\n <th className=\"py-2 pr-3\">Expires</th>\n <th className=\"py-2 pr-3\">Fetches</th>\n <th className=\"py-2 pr-3\">Actions</th>\n </tr>\n </thead>\n <tbody>\n {tokens.map((t) => (\n <Fragment key={t.id}>\n <tr className=\"border-b border-border-subtle align-top\">\n <td className=\"py-2 pr-3 text-text-primary\">{t.label ?? '—'}</td>\n <td className=\"py-2 pr-3 font-mono text-xs text-text-secondary\">\n {t.tokenFingerprint}\n </td>\n <td className=\"py-2 pr-3 text-text-secondary\">\n <span className=\"text-xs\">{t.includes.join(', ')}</span>\n </td>\n <td className=\"py-2 pr-3\">\n {t.includeCredentials ? (\n <span className=\"text-xs text-status-warning-text\">on</span>\n ) : (\n <span className=\"text-xs text-text-secondary\">off</span>\n )}\n </td>\n <td className=\"py-2 pr-3\">\n <span\n className={`text-xs px-1.5 py-0.5 rounded ${\n t.status === 'ACTIVE'\n ? 'bg-status-success-bg/20 text-status-success-text'\n : 'bg-bg-sunken text-text-secondary'\n }`}\n >\n {t.status}\n </span>\n </td>\n <td className=\"py-2 pr-3 text-xs text-text-secondary\">\n <span className=\"inline-flex items-center gap-1\">\n <Clock className=\"size-3\" />\n {formatExpiry(t.expiresAt)}\n </span>\n </td>\n <td className=\"py-2 pr-3 text-xs text-text-secondary\">{t.fetchCount}</td>\n <td className=\"py-2 pr-3\">\n <div className=\"flex gap-1\">\n <button\n type=\"button\"\n onClick={() =>\n setAuditPanelTokenId(auditPanelTokenId === t.id ? null : t.id)\n }\n title=\"Show fetch history\"\n aria-label=\"Show fetch history\"\n className=\"p-1.5 text-text-secondary hover:text-text-primary\"\n >\n <Info className=\"size-4\" />\n </button>\n {t.status === 'ACTIVE' && (\n <>\n <button\n type=\"button\"\n onClick={async () => {\n const res = await rotateToken({ variables: { tokenId: t.id } });\n if (res.data) {\n setLastMint(res.data.rotateVibeLlmContextUrl);\n setCopied(false);\n }\n }}\n title=\"Rotate (revoke + mint a new one with same settings)\"\n aria-label=\"Rotate URL\"\n className=\"p-1.5 text-text-secondary hover:text-text-primary\"\n >\n <RotateCw className=\"size-4\" />\n </button>\n <button\n type=\"button\"\n onClick={() => revokeToken({ variables: { tokenId: t.id } })}\n title=\"Revoke\"\n aria-label=\"Revoke URL\"\n className=\"p-1.5 text-status-error-text hover:opacity-80\"\n >\n <Trash2 className=\"size-4\" />\n </button>\n </>\n )}\n </div>\n </td>\n </tr>\n {auditPanelTokenId === t.id && (\n <tr>\n <td colSpan={8} className=\"py-2 pr-3 bg-bg-sunken/40\">\n <AuditListInline tokenId={t.id} />\n </td>\n </tr>\n )}\n </Fragment>\n ))}\n </tbody>\n </table>\n </div>\n )}\n </section>\n\n {/* Admin sub-panel — gated by vibe:manage permission */}\n {isAdmin && <VibeLlmContextAdminPanel vibeId={vibeId} />}\n\n {/* Help footer */}\n <p className=\"text-xs text-text-secondary flex items-center gap-1\">\n <Bot className=\"size-3\" />\n Tip: pipe the URL to any LLM with{' '}\n <code className=\"bg-bg-sunken px-1 rounded\">curl <url></code> or{' '}\n <code className=\"bg-bg-sunken px-1 rounded\">{`curl -H \"Accept: text/markdown\" <url>`}</code>{' '}\n for a markdown snapshot.\n </p>\n\n {/* In-app preview modal — assembled for the current settings, no token minted */}\n {previewOpen && (\n <div\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n setPreviewOpen(false);\n }\n }}\n className=\"fixed inset-0 z-50 flex items-center justify-center bg-bg-overlay p-4\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"LLM context preview\"\n onClick={() => setPreviewOpen(false)}\n >\n <div\n className=\"flex max-h-[85vh] w-full max-w-4xl flex-col rounded-lg border border-border-default bg-bg-surface shadow-xl\"\n onClick={(e) => e.stopPropagation()}\n >\n <header className=\"flex items-center gap-3 border-b border-border-default px-5 py-3\">\n <h3 className=\"text-base font-semibold text-text-primary\">Context preview</h3>\n <div className=\"flex gap-0.5 rounded-md bg-bg-sunken p-0.5\">\n <button\n type=\"button\"\n onClick={() => setPreviewView('json')}\n className={`px-3 py-1 text-xs rounded ${previewView === 'json' ? 'bg-action-primary-bg text-action-primary-text' : 'text-text-secondary'}`}\n >\n JSON\n </button>\n <button\n type=\"button\"\n onClick={() => setPreviewView('markdown')}\n className={`px-3 py-1 text-xs rounded ${previewView === 'markdown' ? 'bg-action-primary-bg text-action-primary-text' : 'text-text-secondary'}`}\n >\n Markdown\n </button>\n </div>\n <span className=\"ml-auto text-xs text-text-secondary\">\n Reflects your current settings · not minted\n </span>\n <button\n type=\"button\"\n onClick={() => setPreviewOpen(false)}\n aria-label=\"Close preview\"\n className=\"text-text-secondary hover:text-text-primary\"\n >\n <X className=\"size-4\" />\n </button>\n </header>\n <div className=\"min-h-0 flex-1 overflow-auto\">\n {previewState.loading ? (\n <p className=\"p-5 text-sm text-text-secondary\">Assembling preview…</p>\n ) : previewState.error ? (\n <p className=\"p-5 text-sm text-status-error-text\">\n Failed to load preview: {previewState.error.message}\n </p>\n ) : (\n <pre className=\"m-0 whitespace-pre-wrap break-words p-5 font-mono text-xs text-text-primary\">\n {previewView === 'json'\n ? previewState.data?.myVibeLlmContextPreview.json\n : previewState.data?.myVibeLlmContextPreview.markdown}\n </pre>\n )}\n </div>\n </div>\n </div>\n )}\n </div>\n );\n}\n\nfunction AuditListInline({ tokenId }: { tokenId: string }): ReactElement {\n const { data, loading } = useQuery<{ myVibeLlmContextTokenAudits: AuditRow[] }>(GET_AUDITS, {\n variables: { tokenId, limit: 100 },\n fetchPolicy: 'cache-and-network',\n });\n const rows = data?.myVibeLlmContextTokenAudits ?? [];\n return (\n <div className=\"text-xs\">\n {loading && rows.length === 0 ? (\n <span className=\"text-text-secondary\">Loading audit log…</span>\n ) : rows.length === 0 ? (\n <span className=\"text-text-secondary\">No fetches yet.</span>\n ) : (\n <table className=\"w-full\">\n <thead>\n <tr className=\"text-text-secondary\">\n <th className=\"text-left py-1 pr-2\">When</th>\n <th className=\"text-left py-1 pr-2\">IP</th>\n <th className=\"text-left py-1 pr-2\">Format</th>\n <th className=\"text-left py-1 pr-2\">Bytes</th>\n <th className=\"text-left py-1 pr-2\">Status</th>\n <th className=\"text-left py-1 pr-2\">UA</th>\n </tr>\n </thead>\n <tbody>\n {rows.map((r) => (\n <tr key={r.id} className=\"text-text-primary border-t border-border-subtle\">\n <td className=\"py-1 pr-2\">{new Date(r.fetchedAt).toLocaleString()}</td>\n <td className=\"py-1 pr-2 font-mono\">{r.remoteIp ?? '—'}</td>\n <td className=\"py-1 pr-2\">{r.format}</td>\n <td className=\"py-1 pr-2\">{r.bytes}</td>\n <td className=\"py-1 pr-2\">{r.status}</td>\n <td className=\"py-1 pr-2 truncate max-w-[260px]\" title={r.userAgent ?? ''}>\n {r.userAgent ?? '—'}\n </td>\n </tr>\n ))}\n </tbody>\n </table>\n )}\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LogsDrawer.js","names":[],"sources":["../../../src/components/vibecalendar/LogsDrawer.tsx"],"sourcesContent":["import { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { X, Loader2 } from 'lucide-react';\nimport type { VibeCalendarExecution } from './types';\n\ninterface LogsDrawerProps {\n isOpen: boolean;\n onClose: () => void;\n execution: VibeCalendarExecution | null;\n taskTitle: string;\n agentId: string;\n}\n\nexport function LogsDrawer({\n isOpen,\n onClose,\n execution,\n taskTitle,\n agentId: _agentId,\n}: LogsDrawerProps) {\n const { t } = useI18n();\n const tr = (key: string, fallback: string) => {\n const v = t(key);\n return v === key ? fallback : v;\n };\n // Agent task logs are no longer fetched directly from the calendar —\n // tasks reference a VibeControls Action and execution details come\n // from the scheduler's execution records. Show what the execution\n // record carries (output/error) and defer richer logs to a future\n // Action-aware logs query.\n const logsLoading = false;\n\n if (!isOpen) return null;\n\n // Execution records from the new simplified schema carry a single\n // `output` field (stdout + stderr combined) and an `error` field.\n const stdout = execution?.output ?? null;\n const stderr: string | null = null;\n const exitCode = execution?.exitCode ?? null;\n const error = execution?.error ?? null;\n\n return (\n <div className=\"fixed inset-0 z-50 flex justify-end\">\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n (onClose as (...a: unknown[]) => unknown)();\n }\n }}\n className=\"absolute inset-0 bg-bg-overlay\"\n onClick={onClose}\n />\n <div className=\"relative w-full max-w-full sm:max-w-2xl bg-bg-surface border-l border-border-default shadow-xl flex flex-col\">\n {/* Header */}\n <div className=\"flex items-center justify-between px-6 py-4 border-b border-border-default\">\n <div>\n <h2 className=\"text-lg font-semibold text-text-primary\">Task Logs</h2>\n <p className=\"text-sm text-text-secondary mt-0.5\">{taskTitle}</p>\n </div>\n <button type=\"button\" onClick={onClose} className=\"p-1 rounded hover:bg-bg-surface\">\n <X size={18} />\n </button>\n </div>\n\n {/* Content */}\n <div className=\"flex-1 overflow-auto p-6\">\n {logsLoading ? (\n <div className=\"flex items-center justify-center h-full gap-2\">\n <Loader2 size={16} className=\"animate-spin text-text-tertiary\" />\n <p className=\"text-sm text-text-secondary\">Fetching logs…</p>\n </div>\n ) : execution ? (\n <div className=\"space-y-4\">\n {/* Execution Info */}\n <div className=\"grid grid-cols-1 sm:grid-cols-2 gap-4\">\n <div>\n <span className=\"text-xs text-text-tertiary\">Status</span>\n <p className=\"text-sm font-medium text-text-primary\">{execution.status}</p>\n </div>\n <div>\n <span className=\"text-xs text-text-tertiary\">Started At</span>\n <p className=\"text-sm text-text-primary\">\n {execution.startedAt\n ? new Date(execution.startedAt).toLocaleString()\n : 'Unavailable'}\n </p>\n </div>\n {execution.completedAt && (\n <div>\n <span className=\"text-xs text-text-tertiary\">Completed At</span>\n <p className=\"text-sm text-text-primary\">\n {new Date(execution.completedAt).toLocaleString()}\n </p>\n </div>\n )}\n {exitCode !== null && exitCode !== undefined && (\n <div>\n <span className=\"text-xs text-text-tertiary\">Exit Code</span>\n <p\n className={`text-sm font-mono ${exitCode === 0 ? 'text-status-success-text' : 'text-status-error-text'}`}\n >\n {exitCode}\n </p>\n </div>\n )}\n </div>\n\n {/* stdout */}\n {stdout && (\n <div>\n <h3 className=\"text-sm font-medium text-text-secondary mb-1\">stdout</h3>\n <pre className=\"bg-bg-sunken border border-border-default rounded-lg p-3 text-xs font-mono text-text-primary overflow-auto max-h-60 whitespace-pre-wrap\">\n {stdout}\n </pre>\n </div>\n )}\n\n {/* stderr */}\n {stderr && (\n <div>\n <h3 className=\"text-sm font-medium text-status-error-text mb-1\">stderr</h3>\n <pre className=\"bg-status-error-bg-subtle border border-status-error-border/20 rounded-lg p-3 text-xs font-mono text-status-error-text overflow-auto max-h-60 whitespace-pre-wrap\">\n {stderr}\n </pre>\n </div>\n )}\n\n {/* Error */}\n {error && (\n <div>\n <h3 className=\"text-sm font-medium text-status-error-text mb-1\">Error</h3>\n <pre className=\"bg-status-error-bg-subtle border border-status-error-border/20 rounded-lg p-3 text-xs font-mono text-status-error-text overflow-auto max-h-40 whitespace-pre-wrap\">\n {error}\n </pre>\n </div>\n )}\n </div>\n ) : (\n <div className=\"flex items-center justify-center h-full\">\n <p className=\"text-sm text-text-secondary\">No execution data available</p>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;AAYA,SAAgB,EAAW,EACzB,WACA,YACA,cACA,cACA,SAAS,KACS;CAClB,IAAM,EAAE,SAAM,GAAS;AAYvB,KAAI,CAAC,EAAQ,QAAO;CAIpB,IAAM,IAAS,GAAW,UAAU,MAE9B,IAAW,GAAW,YAAY,MAClC,IAAQ,GAAW,SAAS;AAElC,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CACE,kBAAC,OAAD;GACE,MAAK;GACL,UAAU;GACV,YAAY,MAAM;AAChB,KAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,SACjC,EAAE,gBAAgB,EACjB,GAA0C;;GAG/C,WAAU;GACV,SAAS;GACT,CAAA,EACF,kBAAC,OAAD;GAAK,WAAU;aAAf,CAEE,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;KAAI,WAAU;eAA0C;KAAc,CAAA,EACtE,kBAAC,KAAD;KAAG,WAAU;eAAsC;KAAc,CAAA,CAC7D,EAAA,CAAA,EACN,kBAAC,UAAD;KAAQ,MAAK;KAAS,SAAS;KAAS,WAAU;eAChD,kBAAC,GAAD,EAAG,MAAM,IAAM,CAAA;KACR,CAAA,CACL;OAGN,kBAAC,OAAD;IAAK,WAAU;cAMT,IACF,kBAAC,OAAD;KAAK,WAAU;eAAf;MAEE,kBAAC,OAAD;OAAK,WAAU;iBAAf;QACE,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,QAAD;SAAM,WAAU;mBAA6B;SAAa,CAAA,EAC1D,kBAAC,KAAD;SAAG,WAAU;mBAAyC,EAAU;SAAW,CAAA,CACvE,EAAA,CAAA;QACN,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,QAAD;SAAM,WAAU;mBAA6B;SAAiB,CAAA,EAC9D,kBAAC,KAAD;SAAG,WAAU;mBACV,EAAU,YACP,IAAI,KAAK,EAAU,UAAU,CAAC,gBAAgB,GAC9C;SACF,CAAA,CACA,EAAA,CAAA;QACL,EAAU,eACT,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,QAAD;SAAM,WAAU;mBAA6B;SAAmB,CAAA,EAChE,kBAAC,KAAD;SAAG,WAAU;mBACV,IAAI,KAAK,EAAU,YAAY,CAAC,gBAAgB;SAC/C,CAAA,CACA,EAAA,CAAA;QAEP,KAAa,QACZ,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,QAAD;SAAM,WAAU;mBAA6B;SAAgB,CAAA,EAC7D,kBAAC,KAAD;SACE,WAAW,qBAAqB,MAAa,IAAI,6BAA6B;mBAE7E;SACC,CAAA,CACA,EAAA,CAAA;QAEJ;;MAGL,KACC,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;OAAI,WAAU;iBAA+C;OAAW,CAAA,EACxE,kBAAC,OAAD;OAAK,WAAU;iBACZ;OACG,CAAA,CACF,EAAA,CAAA;MAIP;MAUA,KACC,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;OAAI,WAAU;iBAAkD;OAAU,CAAA,EAC1E,kBAAC,OAAD;OAAK,WAAU;iBACZ;OACG,CAAA,CACF,EAAA,CAAA;MAEJ;SAEN,kBAAC,OAAD;KAAK,WAAU;eACb,kBAAC,KAAD;MAAG,WAAU;gBAA8B;MAA+B,CAAA;KACtE,CAAA;IAEJ,CAAA,CACF;KACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduleTaskModal.js","names":[],"sources":["../../../src/components/vibecalendar/ScheduleTaskModal.tsx"],"sourcesContent":["import { useState, useMemo } from 'react';\nimport { X, Zap, Search } from 'lucide-react';\nimport { useListActionsQuery } from '@/generated/wspace-operations';\nimport type { Action } from '@/generated/wspace-types';\nimport { useTr } from '../../shared/hooks/useTr';\nimport { ActionAgentTargetNotice } from '../common/ActionAgentTargetNotice';\n\ntype ActionPickItem = Pick<\n Action,\n | 'id'\n | 'name'\n | 'displayName'\n | 'description'\n | 'actionType'\n | 'triggerType'\n | 'targetAgentId'\n | 'targetPlatformFilter'\n>;\n\ninterface ScheduleTaskModalProps {\n isOpen: boolean;\n onClose: () => void;\n onSubmit: (input: ScheduleTaskInput) => void;\n // Legacy prop kept for compatibility; unused in Action-only mode.\n agents?: Array<{ id: string; name: string }>;\n loading?: boolean;\n // When provided, the picker is locked to this action (user navigated\n // in from \"Add to calendar\" on the Actions page). Otherwise the user\n // picks from a searchable dropdown of their actions.\n prefillActionId?: string;\n}\n\n/**\n * Calendar entries always delegate execution to a VibeControls Action.\n * Agent, command, script, and webhook fields come from the Action\n * definition at execution time — this modal only collects the calendar\n * metadata and the schedule.\n */\nexport interface ScheduleTaskInput {\n calendarId: string;\n title: string;\n description?: string;\n scheduleType: 'ONE_TIME' | 'CRON' | 'RRULE' | 'FIXED_INTERVAL';\n scheduledAt?: string;\n cronExpression?: string;\n rrule?: string;\n interval?: number;\n intervalUnit?: string;\n timezone: string;\n actionId: string;\n}\n\nconst INPUT_CLASS =\n 'w-full px-3 py-2 bg-bg-sunken border border-border-default rounded-lg text-sm text-text-primary placeholder-text-placeholder focus:outline-none focus:border-border-default';\nconst MONO_INPUT_CLASS = `${INPUT_CLASS} font-mono`;\nconst LABEL_CLASS = 'block text-sm font-medium text-text-secondary mb-1';\n\nexport function ScheduleTaskModal({\n isOpen,\n onClose,\n onSubmit,\n loading,\n prefillActionId,\n}: ScheduleTaskModalProps) {\n const tr = useTr();\n const [selectedActionId, setSelectedActionId] = useState<string>(prefillActionId ?? '');\n const [actionSearch, setActionSearch] = useState('');\n const [title, setTitle] = useState('');\n const [description, setDescription] = useState('');\n const [scheduleType, setScheduleType] = useState<\n 'ONE_TIME' | 'CRON' | 'RRULE' | 'FIXED_INTERVAL'\n >('ONE_TIME');\n const [scheduledAt, setScheduledAt] = useState('');\n const [cronExpression, setCronExpression] = useState('');\n const [interval, setInterval] = useState(60);\n const [intervalUnit, setIntervalUnit] = useState('minutes');\n const [timezone, setTimezone] = useState(Intl.DateTimeFormat().resolvedOptions().timeZone);\n\n const { data: actionsData, loading: actionsLoading } = useListActionsQuery({\n variables: { pagination: { limit: 100 } },\n skip: !isOpen,\n fetchPolicy: 'cache-and-network',\n });\n\n const allActions = useMemo<ActionPickItem[]>(\n () => (actionsData?.actions?.items ?? []) as ActionPickItem[],\n [actionsData?.actions?.items]\n );\n\n const filteredActions = useMemo(() => {\n if (!actionSearch.trim()) return allActions;\n const q = actionSearch.trim().toLowerCase();\n return allActions.filter(\n (a: ActionPickItem) =>\n a.name?.toLowerCase().includes(q) ||\n a.displayName?.toLowerCase().includes(q) ||\n a.description?.toLowerCase().includes(q)\n );\n }, [allActions, actionSearch]);\n\n const selectedAction = useMemo(\n () => allActions.find((a: ActionPickItem) => a.id === selectedActionId),\n [allActions, selectedActionId]\n );\n\n if (!isOpen) return null;\n\n const isActionLocked = Boolean(prefillActionId);\n const canSubmit = Boolean(selectedActionId) && !loading;\n\n const handleSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n if (!selectedActionId) return;\n onSubmit({\n calendarId: '',\n title,\n description: description || undefined,\n scheduleType,\n scheduledAt: scheduleType === 'ONE_TIME' ? new Date(scheduledAt).toISOString() : undefined,\n cronExpression: scheduleType === 'CRON' ? cronExpression : undefined,\n interval: scheduleType === 'FIXED_INTERVAL' ? interval : undefined,\n intervalUnit: scheduleType === 'FIXED_INTERVAL' ? intervalUnit : undefined,\n timezone,\n actionId: selectedActionId,\n });\n };\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center\">\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n (onClose as (...a: unknown[]) => unknown)();\n }\n }}\n className=\"absolute inset-0 bg-bg-overlay\"\n onClick={onClose}\n />\n <div className=\"relative bg-bg-surface border border-border-default rounded-xl shadow-xl w-full max-w-lg max-h-[90vh] overflow-y-auto\">\n {/* Header */}\n <div className=\"flex items-center justify-between px-6 py-4 border-b border-border-default\">\n <h2 className=\"text-lg font-semibold text-text-primary\">\n {isActionLocked\n ? tr('vibecontrols.calendar.schedule.addActionToCalendar', 'Add Action to Calendar')\n : tr(\n 'vibecontrols.calendar.schedule.scheduleActionOnCalendar',\n 'Schedule Action on Calendar'\n )}\n </h2>\n <button type=\"button\" onClick={onClose} className=\"p-1 rounded hover:bg-bg-surface\">\n <X size={18} />\n </button>\n </div>\n\n {/* Form */}\n <form onSubmit={handleSubmit} className=\"px-6 py-4 space-y-4\">\n {/* Action Picker — always required */}\n <div className=\"space-y-2\">\n <label className={LABEL_CLASS}>\n {tr('vibecontrols.calendar.schedule.actionToSchedule', 'Action to Schedule')} *\n </label>\n <p className=\"text-xs text-text-tertiary -mt-1\">\n Calendar entries trigger VibeControls Actions. Agent, command, and webhook details\n come from the Action definition.\n </p>\n\n {isActionLocked && selectedAction && (\n <div className=\"flex items-start gap-3 p-3 rounded-lg border border-border-default bg-bg-surface\">\n <div className=\"p-1.5 rounded-md bg-action-primary-bg/10 text-primary flex-shrink-0\">\n <Zap size={16} />\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-text-primary\">\n {selectedAction.displayName || selectedAction.name}\n </p>\n <p className=\"text-xs text-text-secondary mt-0.5\">\n {selectedAction.actionType} · {selectedAction.triggerType}\n </p>\n {selectedAction.description && (\n <p className=\"text-xs text-text-tertiary mt-1 line-clamp-2\">\n {selectedAction.description}\n </p>\n )}\n </div>\n </div>\n )}\n\n {isActionLocked && !selectedAction && actionsLoading && (\n <div className=\"p-3 rounded-lg border border-border-default bg-bg-surface text-xs text-text-secondary\">\n Loading action…\n </div>\n )}\n\n {isActionLocked && !selectedAction && !actionsLoading && (\n <div className=\"p-3 rounded-lg border border-status-error-border bg-status-error-bg-subtle text-xs text-status-error-text\">\n Action not found. It may have been deleted.\n </div>\n )}\n\n {!isActionLocked && (\n <>\n <div className=\"relative\">\n <Search\n size={16}\n className=\"absolute left-3 top-1/2 -translate-y-1/2 text-text-tertiary\"\n />\n <input\n aria-label=\"Search actions by name…\"\n type=\"text\"\n value={actionSearch}\n onChange={(e) => setActionSearch(e.target.value)}\n placeholder=\"Search actions by name…\"\n className={`${INPUT_CLASS} pl-9`}\n />\n </div>\n\n <div className=\"max-h-40 overflow-y-auto border border-border-default rounded-lg divide-y divide-border-default\">\n {actionsLoading && allActions.length === 0 && (\n <div className=\"px-3 py-4 text-xs text-text-secondary text-center\">\n Loading actions…\n </div>\n )}\n {!actionsLoading && allActions.length === 0 && (\n <div className=\"px-3 py-4 text-xs text-text-secondary text-center\">\n No actions yet. Create an Action in VibeControls first, then come back to\n schedule it.\n </div>\n )}\n {!actionsLoading && allActions.length > 0 && filteredActions.length === 0 && (\n <div className=\"px-3 py-4 text-xs text-text-secondary text-center\">\n No actions match \"{actionSearch}\".\n </div>\n )}\n {filteredActions.map((action: ActionPickItem) => {\n const isSelected = action.id === selectedActionId;\n return (\n <button\n key={action.id}\n type=\"button\"\n onClick={() => setSelectedActionId(action.id)}\n className={`w-full text-left px-3 py-2.5 hover:bg-bg-surface transition-colors ${\n isSelected ? 'bg-action-primary-bg/5' : ''\n }`}\n >\n <div className=\"flex items-start gap-2.5\">\n <div\n className={`p-1 rounded-md flex-shrink-0 ${\n isSelected\n ? 'bg-action-primary-bg/10 text-primary'\n : 'bg-bg-sunken text-text-tertiary'\n }`}\n >\n <Zap size={14} />\n </div>\n <div className=\"flex-1 min-w-0\">\n <p className=\"text-sm font-medium text-text-primary truncate\">\n {action.displayName || action.name}\n </p>\n <p className=\"text-xs text-text-tertiary mt-0.5\">\n {action.actionType} · {action.triggerType}\n </p>\n </div>\n {isSelected && (\n <span className=\"text-xs font-medium text-primary flex-shrink-0\">\n Selected\n </span>\n )}\n </div>\n </button>\n );\n })}\n </div>\n </>\n )}\n\n {/* Tell the user which agent this action runs on, and warn if that\n agent is unhealthy or gone — before the schedule is created. */}\n {selectedAction && <ActionAgentTargetNotice action={selectedAction} />}\n </div>\n\n {/* Title */}\n <div>\n <label className={LABEL_CLASS}>\n {tr('vibecontrols.calendar.schedule.title', 'Title')}\n </label>\n <input\n aria-label=\"e.g. Run test suite\"\n type=\"text\"\n value={title}\n onChange={(e) => setTitle(e.target.value)}\n placeholder=\"e.g. Run test suite\"\n className={INPUT_CLASS}\n required\n />\n </div>\n\n {/* Description */}\n <div>\n <label className={LABEL_CLASS}>\n {tr('vibecontrols.calendar.schedule.description', 'Description')}\n </label>\n <input\n aria-label=\"Optional description\"\n type=\"text\"\n value={description}\n onChange={(e) => setDescription(e.target.value)}\n placeholder=\"Optional description\"\n className={INPUT_CLASS}\n />\n </div>\n\n {/* Schedule Type */}\n <div>\n <label className={LABEL_CLASS}>\n {tr('vibecontrols.calendar.schedule.schedule', 'Schedule')}\n </label>\n <select\n value={scheduleType}\n onChange={(e) => setScheduleType(e.target.value as typeof scheduleType)}\n className={INPUT_CLASS}\n >\n <option value=\"ONE_TIME\">One Time</option>\n <option value=\"CRON\">Cron Expression</option>\n <option value=\"FIXED_INTERVAL\">Fixed Interval</option>\n </select>\n </div>\n\n {/* Schedule-specific fields */}\n {scheduleType === 'ONE_TIME' && (\n <div>\n <label className={LABEL_CLASS}>\n {tr('vibecontrols.calendar.schedule.runAt', 'Run At')}\n </label>\n <input\n aria-label=\"control\"\n type=\"datetime-local\"\n value={scheduledAt}\n onChange={(e) => setScheduledAt(e.target.value)}\n className={INPUT_CLASS}\n required\n />\n </div>\n )}\n\n {scheduleType === 'CRON' && (\n <div>\n <label htmlFor=\"scheduletaskmodal-40\" className={LABEL_CLASS}>\n Cron Expression\n </label>\n <input\n id=\"scheduletaskmodal-40\"\n aria-label=\"*/5 * * * * (every 5 minutes)\"\n type=\"text\"\n value={cronExpression}\n onChange={(e) => setCronExpression(e.target.value)}\n placeholder=\"*/5 * * * * (every 5 minutes)\"\n className={MONO_INPUT_CLASS}\n required\n />\n </div>\n )}\n\n {scheduleType === 'FIXED_INTERVAL' && (\n <div className=\"flex gap-2\">\n <div className=\"flex-1\">\n <label htmlFor=\"scheduletaskmodal-39\" className={LABEL_CLASS}>\n Every\n </label>\n <input\n id=\"scheduletaskmodal-39\"\n aria-label=\"control\"\n type=\"number\"\n value={interval}\n onChange={(e) => setInterval(Number(e.target.value))}\n min={1}\n className={INPUT_CLASS}\n required\n />\n </div>\n <div className=\"flex-1\">\n <label htmlFor=\"scheduletaskmodal-38\" className={LABEL_CLASS}>\n Unit\n </label>\n <select\n id=\"scheduletaskmodal-38\"\n value={intervalUnit}\n onChange={(e) => setIntervalUnit(e.target.value)}\n className={INPUT_CLASS}\n >\n <option value=\"seconds\">Seconds</option>\n <option value=\"minutes\">Minutes</option>\n <option value=\"hours\">Hours</option>\n <option value=\"days\">Days</option>\n </select>\n </div>\n </div>\n )}\n\n {/* Timezone */}\n <div>\n <label className={LABEL_CLASS}>\n {tr('vibecontrols.calendar.schedule.timezone', 'Timezone')}\n </label>\n <input\n aria-label=\"control\"\n type=\"text\"\n value={timezone}\n onChange={(e) => setTimezone(e.target.value)}\n className={INPUT_CLASS}\n />\n </div>\n\n {/* Actions */}\n <div className=\"flex items-center justify-end gap-3 pt-4 border-t border-border-default\">\n <button\n type=\"button\"\n onClick={onClose}\n className=\"px-4 py-2 text-sm text-text-secondary hover:text-text-primary transition-colors\"\n >\n {tr('vibecontrols.calendar.schedule.cancel', 'Cancel')}\n </button>\n <button\n type=\"submit\"\n disabled={!canSubmit}\n className=\"px-4 py-2 text-sm font-medium bg-action-primary-bg text-action-primary-text rounded-lg hover:opacity-90 transition-opacity disabled:opacity-50 disabled:cursor-not-allowed\"\n title={\n !selectedActionId\n ? tr('vibecontrols.calendar.schedule.selectActionFirst', 'Select an Action first')\n : undefined\n }\n >\n {loading\n ? tr('vibecontrols.calendar.schedule.creating', 'Creating...')\n : tr('vibecontrols.calendar.schedule.scheduleBtn', 'Schedule')}\n </button>\n </div>\n </form>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VibeCalAgendaView.js","names":[],"sources":["../../../src/components/vibecalendar/VibeCalAgendaView.tsx"],"sourcesContent":["import { Play, Eye, ChevronRight } from 'lucide-react';\nimport { STATUS_COLORS } from './types';\nimport type { CalendarOccurrence, VibeCalendarTask } from './types';\nimport { useTr } from '../../shared/hooks/useTr';\n\ninterface VibeCalAgendaViewProps {\n occurrences: CalendarOccurrence[];\n onTriggerNow?: (taskId: string) => void;\n onViewLogs: (task: VibeCalendarTask) => void;\n onViewDetail: (taskId: string) => void;\n}\n\nexport function VibeCalAgendaView({\n occurrences,\n onTriggerNow,\n onViewLogs,\n onViewDetail,\n}: VibeCalAgendaViewProps) {\n const tr = useTr();\n // Group by date\n const grouped = occurrences.reduce(\n (acc, occ) => {\n const dateKey = new Date(occ.occurrenceAt).toLocaleDateString('en-US', {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n });\n if (!acc[dateKey]) acc[dateKey] = [];\n acc[dateKey].push(occ);\n return acc;\n },\n {} as Record<string, CalendarOccurrence[]>\n );\n\n if (occurrences.length === 0) {\n return (\n <div className=\"flex-1 flex items-center justify-center\">\n <div className=\"text-center\">\n <p className=\"text-text-secondary text-sm\">\n {tr('vibecontrols.calendar.agenda.noTasks', 'No scheduled tasks in this range')}\n </p>\n </div>\n </div>\n );\n }\n\n return (\n <div className=\"flex-1 overflow-auto space-y-6\">\n {Object.entries(grouped).map(([dateLabel, dayOccurrences]) => (\n <div key={dateLabel}>\n <h3 className=\"text-sm font-semibold text-text-secondary mb-2 sticky top-0 bg-bg-surface py-1\">\n {dateLabel}\n </h3>\n <div className=\"space-y-2\">\n {dayOccurrences.map((occ, i) => {\n const task = occ.task;\n const statusColor =\n STATUS_COLORS[occ.execution?.status || task.status] || STATUS_COLORS.PENDING;\n const time = new Date(occ.occurrenceAt).toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n });\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n (() => onViewDetail(task.id))();\n }\n }}\n key={`${task.id}-${i}`}\n className={`flex items-center gap-4 p-3 rounded-lg border ${statusColor} hover:opacity-90 transition-opacity cursor-pointer`}\n onClick={() => onViewDetail(task.id)}\n >\n {/* Time */}\n <div className=\"w-16 text-sm font-mono text-text-secondary\">{time}</div>\n\n {/* Task Info */}\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"font-medium text-sm text-text-primary truncate\">{task.title}</h4>\n <div className=\"flex items-center gap-2 mt-0.5\">\n <span className=\"text-xs text-text-tertiary font-mono truncate\">\n {task.taskConfig.command || 'Script'}\n </span>\n <span className=\"text-xs text-text-tertiary\">\n {task.cronExpression ? 'Cron' : task.rrule ? 'Recurrence' : 'One Time'}\n </span>\n </div>\n </div>\n\n {/* Status */}\n <span className=\"text-xs px-2 py-0.5 rounded-full border\">\n {occ.execution?.status || task.status}\n </span>\n\n {/* Actions */}\n <div className=\"flex items-center gap-1\" onClick={(e) => e.stopPropagation()}>\n {onTriggerNow && (\n <button\n type=\"button\"\n onClick={() => onTriggerNow(task.id)}\n className=\"p-1.5 rounded hover:bg-bg-surface transition-colors\"\n title=\"Trigger Now\"\n >\n <Play size={14} />\n </button>\n )}\n <button\n type=\"button\"\n onClick={() => onViewLogs(task)}\n className=\"p-1.5 rounded hover:bg-bg-surface transition-colors\"\n title=\"View Logs\"\n >\n <Eye size={14} />\n </button>\n <ChevronRight size={14} className=\"text-text-tertiary\" />\n </div>\n </div>\n );\n })}\n </div>\n </div>\n ))}\n </div>\n );\n}\n"],"mappings":";;;;;AAYA,SAAgB,EAAkB,EAChC,gBACA,iBACA,eACA,mBACyB;CACzB,IAAM,IAAK,GAAO,EAEZ,IAAU,EAAY,QACzB,GAAK,MAAQ;EACZ,IAAM,IAAU,IAAI,KAAK,EAAI,aAAa,CAAC,mBAAmB,SAAS;GACrE,SAAS;GACT,OAAO;GACP,KAAK;GACL,MAAM;GACP,CAAC;AAGF,SAFK,EAAI,OAAU,EAAI,KAAW,EAAE,GACpC,EAAI,GAAS,KAAK,EAAI,EACf;IAET,EAAE,CACH;AAcD,QAZI,EAAY,WAAW,IAEvB,kBAAC,OAAD;EAAK,WAAU;YACb,kBAAC,OAAD;GAAK,WAAU;aACb,kBAAC,KAAD;IAAG,WAAU;cACV,EAAG,wCAAwC,mCAAmC;IAC7E,CAAA;GACA,CAAA;EACF,CAAA,GAKR,kBAAC,OAAD;EAAK,WAAU;YACZ,OAAO,QAAQ,EAAQ,CAAC,KAAK,CAAC,GAAW,OACxC,kBAAC,OAAD,EAAA,UAAA,CACE,kBAAC,MAAD;GAAI,WAAU;aACX;GACE,CAAA,EACL,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAe,KAAK,GAAK,MAAM;IAC9B,IAAM,IAAO,EAAI,MACX,IACJ,EAAc,EAAI,WAAW,UAAU,EAAK,WAAW,EAAc,SACjE,IAAO,IAAI,KAAK,EAAI,aAAa,CAAC,mBAAmB,SAAS;KAClE,MAAM;KACN,QAAQ;KACT,CAAC;AAEF,WACE,kBAAC,OAAD;KACE,MAAK;KACL,UAAU;KACV,YAAY,MAAM;AAChB,OAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,SACjC,EAAE,gBAAgB,EACX,EAAa,EAAK,GAAG;;KAIhC,WAAW,iDAAiD,EAAY;KACxE,eAAe,EAAa,EAAK,GAAG;eAXtC;MAcE,kBAAC,OAAD;OAAK,WAAU;iBAA8C;OAAW,CAAA;MAGxE,kBAAC,OAAD;OAAK,WAAU;iBAAf,CACE,kBAAC,MAAD;QAAI,WAAU;kBAAkD,EAAK;QAAW,CAAA,EAChF,kBAAC,OAAD;QAAK,WAAU;kBAAf,CACE,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAK,WAAW,WAAW;SACvB,CAAA,EACP,kBAAC,QAAD;SAAM,WAAU;mBACb,EAAK,iBAAiB,SAAS,EAAK,QAAQ,eAAe;SACvD,CAAA,CACH;UACF;;MAGN,kBAAC,QAAD;OAAM,WAAU;iBACb,EAAI,WAAW,UAAU,EAAK;OAC1B,CAAA;MAGP,kBAAC,OAAD;OAAK,WAAU;OAA0B,UAAU,MAAM,EAAE,iBAAiB;iBAA5E;QACG,KACC,kBAAC,UAAD;SACE,MAAK;SACL,eAAe,EAAa,EAAK,GAAG;SACpC,WAAU;SACV,OAAM;mBAEN,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;SACX,CAAA;QAEX,kBAAC,UAAD;SACE,MAAK;SACL,eAAe,EAAW,EAAK;SAC/B,WAAU;SACV,OAAM;mBAEN,kBAAC,GAAD,EAAK,MAAM,IAAM,CAAA;SACV,CAAA;QACT,kBAAC,GAAD;SAAc,MAAM;SAAI,WAAU;SAAuB,CAAA;QACrD;;MACF;OA/CC,GAAG,EAAK,GAAG,GAAG,IA+Cf;KAER;GACE,CAAA,CACF,EAAA,EA3EI,EA2EJ,CACN;EACE,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VibeCalDayView.js","names":[],"sources":["../../../src/components/vibecalendar/VibeCalDayView.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { Play, Eye, ChevronRight } from 'lucide-react';\nimport { STATUS_COLORS } from './types';\nimport type { CalendarOccurrence, VibeCalendarTask } from './types';\nimport { useTr } from '../../shared/hooks/useTr';\n\ninterface VibeCalDayViewProps {\n currentDate: Date;\n occurrences: CalendarOccurrence[];\n onTriggerNow?: (taskId: string) => void;\n onViewLogs: (task: VibeCalendarTask) => void;\n onViewDetail: (taskId: string) => void;\n}\n\nconst HOURS = Array.from({ length: 24 }, (_, i) => i);\n\nfunction formatHour(hour: number): string {\n if (hour === 0) return '12 AM';\n if (hour < 12) return `${hour} AM`;\n if (hour === 12) return '12 PM';\n return `${hour - 12} PM`;\n}\n\nexport function VibeCalDayView({\n currentDate,\n occurrences,\n onTriggerNow,\n onViewLogs,\n onViewDetail,\n}: VibeCalDayViewProps) {\n const tr = useTr();\n const today = new Date();\n\n const isToday =\n currentDate.getFullYear() === today.getFullYear() &&\n currentDate.getMonth() === today.getMonth() &&\n currentDate.getDate() === today.getDate();\n\n const nowHour = today.getHours();\n\n const getOccurrencesForHour = (hour: number): CalendarOccurrence[] =>\n occurrences.filter((occ) => {\n const d = new Date(occ.occurrenceAt);\n return (\n d.getFullYear() === currentDate.getFullYear() &&\n d.getMonth() === currentDate.getMonth() &&\n d.getDate() === currentDate.getDate() &&\n d.getHours() === hour\n );\n });\n\n // Count total tasks for the day\n const dayOccurrences = useMemo(\n () =>\n occurrences.filter((occ) => {\n const d = new Date(occ.occurrenceAt);\n return (\n d.getFullYear() === currentDate.getFullYear() &&\n d.getMonth() === currentDate.getMonth() &&\n d.getDate() === currentDate.getDate()\n );\n }),\n [occurrences, currentDate]\n );\n\n return (\n <div className=\"flex-1 flex flex-col overflow-hidden\">\n {/* Day summary header */}\n <div className=\"flex items-center justify-between px-4 py-2 border-b border-border-default flex-shrink-0\">\n <div className=\"flex items-center gap-3\">\n <div\n className={`flex flex-col items-center px-3 py-1.5 rounded-lg ${\n isToday ? 'bg-action-primary-bg text-action-primary-text' : 'bg-bg-sunken'\n }`}\n >\n <span className=\"text-xs font-medium\">\n {currentDate.toLocaleDateString('en-US', { weekday: 'short' })}\n </span>\n <span className=\"text-lg font-bold\">{currentDate.getDate()}</span>\n </div>\n <div>\n <span className=\"text-sm text-text-secondary\">\n {dayOccurrences.length}{' '}\n {dayOccurrences.length !== 1\n ? tr('vibecontrols.calendar.day.tasksScheduled', 'tasks scheduled')\n : tr('vibecontrols.calendar.day.taskScheduled', 'task scheduled')}\n </span>\n </div>\n </div>\n </div>\n\n {/* Time grid - scrollable */}\n <div className=\"flex-1 overflow-auto\">\n <div className=\"relative\">\n {HOURS.map((hour) => {\n const hourOccurrences = getOccurrencesForHour(hour);\n const isCurrent = isToday && hour === nowHour;\n\n return (\n <div\n key={hour}\n className={`flex border-b border-border-default ${\n isCurrent ? 'bg-[var(--color-accent-soft)]' : ''\n }`}\n style={{ minHeight: hourOccurrences.length > 0 ? 'auto' : '48px' }}\n >\n {/* Time label */}\n <div className=\"w-20 flex-shrink-0 text-right pr-3 pt-1.5 border-r border-border-default\">\n <span\n className={`text-xs ${isCurrent ? 'text-action-primary-text font-semibold' : 'text-text-tertiary'}`}\n >\n {formatHour(hour)}\n </span>\n {isCurrent && (\n <div className=\"mt-0.5 text-[10px] text-action-primary-text\">NOW</div>\n )}\n </div>\n\n {/* Tasks */}\n <div className=\"flex-1 p-1 space-y-1\">\n {hourOccurrences.map((occ, j) => {\n const task = occ.task;\n const statusColor =\n STATUS_COLORS[occ.execution?.status || task.status] || STATUS_COLORS.PENDING;\n const time = new Date(occ.occurrenceAt).toLocaleTimeString('en-US', {\n hour: '2-digit',\n minute: '2-digit',\n });\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n (() => onViewDetail(task.id))();\n }\n }}\n key={`${task.id}-${j}`}\n onClick={() => onViewDetail(task.id)}\n className={`flex items-center gap-3 px-3 py-2.5 rounded-lg border cursor-pointer ${statusColor} hover:opacity-90 transition-opacity`}\n >\n {/* Time */}\n <div className=\"w-14 text-xs font-mono text-text-secondary flex-shrink-0\">\n {time}\n </div>\n\n {/* Info */}\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"font-medium text-sm text-text-primary truncate\">\n {task.title}\n </h4>\n <div className=\"flex items-center gap-2 mt-0.5\">\n <span className=\"text-xs text-text-tertiary font-mono truncate\">\n {task.taskConfig.taskType === 'WEBHOOK'\n ? `${task.taskConfig.webhookMethod || 'POST'} ${task.taskConfig.webhookUrl}`\n : task.taskConfig.command || 'Script'}\n </span>\n <span className=\"text-xs text-text-tertiary flex-shrink-0\">\n {task.cronExpression\n ? 'Cron'\n : task.rrule\n ? 'Recurrence'\n : 'One Time'}\n </span>\n </div>\n </div>\n\n {/* Status badge */}\n <span className=\"text-xs px-2 py-0.5 rounded-full border flex-shrink-0\">\n {occ.execution?.status || task.status}\n </span>\n\n {/* Actions */}\n <div\n className=\"flex items-center gap-1 flex-shrink-0\"\n onClick={(e) => e.stopPropagation()}\n >\n {onTriggerNow && (\n <button\n type=\"button\"\n onClick={() => onTriggerNow(task.id)}\n className=\"p-1.5 rounded hover:bg-bg-surface transition-colors\"\n title=\"Trigger Now\"\n >\n <Play size={14} />\n </button>\n )}\n <button\n type=\"button\"\n onClick={() => onViewLogs(task)}\n className=\"p-1.5 rounded hover:bg-bg-surface transition-colors\"\n title=\"View Logs\"\n >\n <Eye size={14} />\n </button>\n <ChevronRight size={14} className=\"text-text-tertiary\" />\n </div>\n </div>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VibeCalMonthView.js","names":[],"sources":["../../../src/components/vibecalendar/VibeCalMonthView.tsx"],"sourcesContent":["import { VibeTaskBlock } from './VibeTaskBlock';\nimport type { CalendarOccurrence, VibeCalendarTask } from './types';\nimport { useTr } from '../../shared/hooks/useTr';\n\ninterface VibeCalMonthViewProps {\n currentDate: Date;\n occurrences: CalendarOccurrence[];\n onTriggerNow?: (taskId: string) => void;\n onViewLogs: (task: VibeCalendarTask) => void;\n onViewDetail: (taskId: string) => void;\n}\n\nconst DAYS_OF_WEEK = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\nexport function VibeCalMonthView({\n currentDate,\n occurrences,\n onTriggerNow,\n onViewLogs,\n onViewDetail,\n}: VibeCalMonthViewProps) {\n const tr = useTr();\n const year = currentDate.getFullYear();\n const month = currentDate.getMonth();\n const firstDay = new Date(year, month, 1);\n const lastDay = new Date(year, month + 1, 0);\n const startOffset = firstDay.getDay();\n const daysInMonth = lastDay.getDate();\n const today = new Date();\n\n // Build 6x7 grid\n const cells: (number | null)[] = [];\n for (let i = 0; i < startOffset; i++) cells.push(null);\n for (let d = 1; d <= daysInMonth; d++) cells.push(d);\n while (cells.length < 42) cells.push(null);\n\n const getOccurrencesForDay = (day: number): CalendarOccurrence[] => {\n return occurrences.filter((occ) => {\n const occDate = new Date(occ.occurrenceAt);\n return (\n occDate.getFullYear() === year && occDate.getMonth() === month && occDate.getDate() === day\n );\n });\n };\n\n const isToday = (day: number): boolean => {\n return today.getFullYear() === year && today.getMonth() === month && today.getDate() === day;\n };\n\n return (\n <div className=\"flex-1 overflow-auto\">\n {/* Day headers */}\n <div className=\"grid grid-cols-7 border-b border-border-default\">\n {DAYS_OF_WEEK.map((day) => (\n <div key={day} className=\"p-2 text-xs font-medium text-text-tertiary text-center\">\n {day}\n </div>\n ))}\n </div>\n\n {/* Calendar grid */}\n <div className=\"grid grid-cols-7 auto-rows-[minmax(100px,1fr)]\">\n {cells.map((day, i) => {\n const dayOccurrences = day ? getOccurrencesForDay(day) : [];\n const maxVisible = 3;\n const overflow = dayOccurrences.length - maxVisible;\n\n return (\n <div\n key={i}\n className={`border-b border-r border-border-default p-1 ${\n day === null ? 'bg-bg-sunken' : 'bg-bg-surface'\n } ${isToday(day!) ? 'bg-[var(--color-accent-soft)]' : ''}`}\n >\n {day !== null && (\n <>\n <span\n className={`inline-flex items-center justify-center size-6 text-xs rounded-full ${\n isToday(day)\n ? 'bg-action-primary-bg text-action-primary-text font-bold'\n : 'text-text-secondary'\n }`}\n >\n {day}\n </span>\n <div className=\"mt-1 space-y-0.5\">\n {dayOccurrences.slice(0, maxVisible).map((occ, j) => (\n <VibeTaskBlock\n key={`${occ.task.id}-${j}`}\n task={occ.task}\n compact\n onTriggerNow={onTriggerNow}\n onViewLogs={onViewLogs}\n onViewDetail={onViewDetail}\n />\n ))}\n {overflow > 0 && (\n <span className=\"text-xs text-text-tertiary pl-1\">\n +{overflow} {tr('vibecontrols.calendar.month.more', 'more')}\n </span>\n )}\n </div>\n </>\n )}\n </div>\n );\n })}\n </div>\n </div>\n );\n}\n"],"mappings":";;;;AAYA,IAAM,IAAe;CAAC;CAAO;CAAO;CAAO;CAAO;CAAO;CAAO;CAAM;AAEtE,SAAgB,EAAiB,EAC/B,gBACA,gBACA,iBACA,eACA,mBACwB;CACxB,IAAM,IAAK,GAAO,EACZ,IAAO,EAAY,aAAa,EAChC,IAAQ,EAAY,UAAU,EAC9B,IAAW,IAAI,KAAK,GAAM,GAAO,EAAE,EACnC,IAAU,IAAI,KAAK,GAAM,IAAQ,GAAG,EAAE,EACtC,IAAc,EAAS,QAAQ,EAC/B,IAAc,EAAQ,SAAS,EAC/B,oBAAQ,IAAI,MAAM,EAGlB,IAA2B,EAAE;AACnC,MAAK,IAAI,IAAI,GAAG,IAAI,GAAa,IAAK,GAAM,KAAK,KAAK;AACtD,MAAK,IAAI,IAAI,GAAG,KAAK,GAAa,IAAK,GAAM,KAAK,EAAE;AACpD,QAAO,EAAM,SAAS,IAAI,GAAM,KAAK,KAAK;CAE1C,IAAM,KAAwB,MACrB,EAAY,QAAQ,MAAQ;EACjC,IAAM,IAAU,IAAI,KAAK,EAAI,aAAa;AAC1C,SACE,EAAQ,aAAa,KAAK,KAAQ,EAAQ,UAAU,KAAK,KAAS,EAAQ,SAAS,KAAK;GAE1F,EAGE,KAAW,MACR,EAAM,aAAa,KAAK,KAAQ,EAAM,UAAU,KAAK,KAAS,EAAM,SAAS,KAAK;AAG3F,QACE,kBAAC,OAAD;EAAK,WAAU;YAAf,CAEE,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAa,KAAK,MACjB,kBAAC,OAAD;IAAe,WAAU;cACtB;IACG,EAFI,EAEJ,CACN;GACE,CAAA,EAGN,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAM,KAAK,GAAK,MAAM;IACrB,IAAM,IAAiB,IAAM,EAAqB,EAAI,GAAG,EAAE,EAErD,IAAW,EAAe,SAAS;AAEzC,WACE,kBAAC,OAAD;KAEE,WAAW,+CACT,MAAQ,OAAO,iBAAiB,gBACjC,GAAG,EAAQ,EAAK,GAAG,kCAAkC;eAErD,MAAQ,QACP,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,QAAD;MACE,WAAW,uEACT,EAAQ,EAAI,GACR,4DACA;gBAGL;MACI,CAAA,EACP,kBAAC,OAAD;MAAK,WAAU;gBAAf,CACG,EAAe,MAAM,GAAG,EAAW,CAAC,KAAK,GAAK,MAC7C,kBAAC,GAAD;OAEE,MAAM,EAAI;OACV,SAAA;OACc;OACF;OACE;OACd,EANK,GAAG,EAAI,KAAK,GAAG,GAAG,IAMvB,CACF,EACD,IAAW,KACV,kBAAC,QAAD;OAAM,WAAU;iBAAhB;QAAkD;QAC9C;QAAS;QAAE,EAAG,oCAAoC,OAAO;QACtD;SAEL;QACL,EAAA,CAAA;KAED,EAnCC,EAmCD;KAER;GACE,CAAA,CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VibeCalWeekView.js","names":[],"sources":["../../../src/components/vibecalendar/VibeCalWeekView.tsx"],"sourcesContent":["import { useMemo } from 'react';\nimport { Play, Eye } from 'lucide-react';\nimport { STATUS_COLORS } from './types';\nimport type { CalendarOccurrence, VibeCalendarTask } from './types';\nimport { useTr } from '../../shared/hooks/useTr';\n\ninterface VibeCalWeekViewProps {\n currentDate: Date;\n occurrences: CalendarOccurrence[];\n onTriggerNow?: (taskId: string) => void;\n onViewLogs: (task: VibeCalendarTask) => void;\n onViewDetail: (taskId: string) => void;\n}\n\nconst HOURS = Array.from({ length: 24 }, (_, i) => i);\nconst DAYS_SHORT = ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'];\n\nfunction formatHour(hour: number): string {\n if (hour === 0) return '12 AM';\n if (hour < 12) return `${hour} AM`;\n if (hour === 12) return '12 PM';\n return `${hour - 12} PM`;\n}\n\nexport function VibeCalWeekView({\n currentDate,\n occurrences,\n onTriggerNow,\n onViewLogs,\n onViewDetail,\n}: VibeCalWeekViewProps) {\n const tr = useTr();\n const today = new Date();\n\n // Calculate the week's dates (Sun-Sat)\n const weekDates = useMemo(() => {\n const start = new Date(currentDate);\n start.setDate(start.getDate() - start.getDay());\n return Array.from({ length: 7 }, (_, i) => {\n const d = new Date(start);\n d.setDate(d.getDate() + i);\n return d;\n });\n }, [currentDate]);\n\n const isToday = (date: Date): boolean =>\n date.getFullYear() === today.getFullYear() &&\n date.getMonth() === today.getMonth() &&\n date.getDate() === today.getDate();\n\n const getOccurrencesForSlot = (date: Date, hour: number): CalendarOccurrence[] =>\n occurrences.filter((occ) => {\n const d = new Date(occ.occurrenceAt);\n return (\n d.getFullYear() === date.getFullYear() &&\n d.getMonth() === date.getMonth() &&\n d.getDate() === date.getDate() &&\n d.getHours() === hour\n );\n });\n\n const nowHour = today.getHours();\n\n return (\n <div className=\"flex-1 flex flex-col overflow-hidden\">\n {/* Day column headers */}\n <div className=\"flex border-b border-border-default flex-shrink-0\">\n {/* Time gutter */}\n <div className=\"w-16 flex-shrink-0\" />\n {weekDates.map((date, i) => (\n <div\n key={i}\n className={`flex-1 text-center py-2 border-l border-border-default ${\n isToday(date) ? 'bg-[var(--color-accent-soft)]' : ''\n }`}\n >\n <div className=\"text-xs text-text-tertiary\">{DAYS_SHORT[i]}</div>\n <div\n className={`text-sm font-medium mt-0.5 ${\n isToday(date)\n ? 'inline-flex items-center justify-center size-7 rounded-full bg-action-primary-bg text-action-primary-text'\n : 'text-text-primary'\n }`}\n >\n {date.getDate()}\n </div>\n </div>\n ))}\n </div>\n\n {/* Time grid - scrollable */}\n <div className=\"flex-1 overflow-auto\">\n <div className=\"relative\">\n {HOURS.map((hour) => (\n <div key={hour} className=\"flex\" style={{ minHeight: '48px' }}>\n {/* Time label */}\n <div className=\"w-16 flex-shrink-0 text-right pr-2 pt-0.5\">\n <span className=\"text-xs text-text-tertiary\">{formatHour(hour)}</span>\n </div>\n\n {/* Day columns */}\n {weekDates.map((date, dayIdx) => {\n const slotOccurrences = getOccurrencesForSlot(date, hour);\n const isCurrent = isToday(date) && hour === nowHour;\n\n return (\n <div\n key={dayIdx}\n className={`flex-1 border-l border-t border-border-default p-0.5 ${\n isCurrent ? 'bg-[var(--color-accent-soft)]' : ''\n }`}\n >\n {slotOccurrences.map((occ, j) => {\n const task = occ.task;\n const statusColor =\n STATUS_COLORS[occ.execution?.status || task.status] ||\n STATUS_COLORS.PENDING;\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n (() => onViewDetail(task.id))();\n }\n }}\n key={`${task.id}-${j}`}\n onClick={() => onViewDetail(task.id)}\n className={`mb-0.5 px-1.5 py-1 rounded text-xs border cursor-pointer ${statusColor} hover:opacity-80 transition-opacity`}\n >\n <div className=\"flex items-center justify-between gap-1\">\n <span className=\"truncate font-medium\">{task.title}</span>\n <div\n className=\"flex items-center gap-0.5 flex-shrink-0\"\n onClick={(e) => e.stopPropagation()}\n >\n {onTriggerNow && (\n <button\n type=\"button\"\n onClick={() => onTriggerNow(task.id)}\n className=\"p-0.5 rounded hover:bg-bg-surface\"\n title=\"Trigger Now\"\n >\n <Play size={10} />\n </button>\n )}\n <button\n type=\"button\"\n onClick={() => onViewLogs(task)}\n className=\"p-0.5 rounded hover:bg-bg-surface\"\n title=\"View Logs\"\n >\n <Eye size={10} />\n </button>\n </div>\n </div>\n </div>\n );\n })}\n </div>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VibeCalendarHeader.js","names":[],"sources":["../../../src/components/vibecalendar/VibeCalendarHeader.tsx"],"sourcesContent":["import { ChevronLeft, ChevronRight, Plus, Calendar, List, LayoutGrid, Clock } from 'lucide-react';\nimport type { CalendarViewMode } from './types';\nimport { useTr } from '../../shared/hooks/useTr';\n\ninterface VibeCalendarHeaderProps {\n currentDate: Date;\n viewMode: CalendarViewMode;\n onDateChange: (date: Date) => void;\n onViewModeChange: (mode: CalendarViewMode) => void;\n onCreateTask?: () => void;\n}\n\nconst VIEW_OPTIONS: { mode: CalendarViewMode; label: string; icon: typeof Calendar }[] = [\n { mode: 'month', label: 'Month', icon: LayoutGrid },\n { mode: 'week', label: 'Week', icon: Calendar },\n { mode: 'day', label: 'Day', icon: Clock },\n { mode: 'agenda', label: 'Agenda', icon: List },\n];\n\nexport function VibeCalendarHeader({\n currentDate,\n viewMode,\n onDateChange,\n onViewModeChange,\n onCreateTask,\n}: VibeCalendarHeaderProps) {\n const tr = useTr();\n const navigateDate = (direction: 'prev' | 'next' | 'today') => {\n if (direction === 'today') {\n onDateChange(new Date());\n return;\n }\n\n const newDate = new Date(currentDate);\n const delta = direction === 'prev' ? -1 : 1;\n\n switch (viewMode) {\n case 'month':\n newDate.setMonth(newDate.getMonth() + delta);\n break;\n case 'week':\n newDate.setDate(newDate.getDate() + delta * 7);\n break;\n case 'day':\n newDate.setDate(newDate.getDate() + delta);\n break;\n case 'agenda':\n newDate.setMonth(newDate.getMonth() + delta);\n break;\n }\n\n onDateChange(newDate);\n };\n\n const formatDateLabel = (): string => {\n const options: Intl.DateTimeFormatOptions = { year: 'numeric' };\n\n switch (viewMode) {\n case 'month':\n return currentDate.toLocaleDateString('en-US', { month: 'long', year: 'numeric' });\n case 'week': {\n const weekStart = new Date(currentDate);\n weekStart.setDate(weekStart.getDate() - weekStart.getDay());\n const weekEnd = new Date(weekStart);\n weekEnd.setDate(weekEnd.getDate() + 6);\n return `${weekStart.toLocaleDateString('en-US', { month: 'short', day: 'numeric' })} - ${weekEnd.toLocaleDateString('en-US', { month: 'short', day: 'numeric', year: 'numeric' })}`;\n }\n case 'day':\n return currentDate.toLocaleDateString('en-US', {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric',\n });\n case 'agenda':\n return currentDate.toLocaleDateString('en-US', { month: 'long', year: 'numeric' });\n default:\n return currentDate.toLocaleDateString('en-US', options);\n }\n };\n\n return (\n <div className=\"flex flex-col gap-3 border-b border-border-default pb-4 lg:flex-row lg:items-center lg:justify-between\">\n {/* Left: Navigation */}\n <div className=\"flex flex-wrap items-center gap-2\">\n <button\n type=\"button\"\n onClick={() => navigateDate('today')}\n className=\"px-3 py-1.5 text-sm font-medium bg-bg-surface border border-border-default rounded-md hover:bg-bg-surface transition-colors\"\n >\n {tr('vibecontrols.calendar.header.today', 'Today')}\n </button>\n <div className=\"flex items-center gap-1\">\n <button\n type=\"button\"\n onClick={() => navigateDate('prev')}\n className=\"p-1.5 rounded-md hover:bg-bg-surface transition-colors\"\n >\n <ChevronLeft size={18} />\n </button>\n <button\n type=\"button\"\n onClick={() => navigateDate('next')}\n className=\"p-1.5 rounded-md hover:bg-bg-surface transition-colors\"\n >\n <ChevronRight size={18} />\n </button>\n </div>\n <h2 className=\"min-w-0 text-base font-semibold text-text-primary sm:ml-2 sm:text-lg\">\n {formatDateLabel()}\n </h2>\n </div>\n\n {/* Right: View Mode + Create */}\n <div className=\"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between lg:justify-end\">\n {/* View Mode Switcher */}\n <div className=\"grid grid-cols-2 gap-1 rounded-lg border border-border-default bg-bg-surface p-1 sm:flex sm:items-center sm:gap-0.5 sm:p-0.5\">\n {VIEW_OPTIONS.map(({ mode, label, icon: Icon }) => (\n <button\n type=\"button\"\n key={mode}\n onClick={() => onViewModeChange(mode)}\n className={`flex items-center justify-center gap-1.5 rounded-md px-2.5 py-1.5 text-xs transition-colors sm:px-3 sm:text-sm ${\n viewMode === mode\n ? 'bg-action-primary-bg text-action-primary-text'\n : 'text-text-secondary hover:text-text-primary hover:bg-bg-surface'\n }`}\n >\n <Icon size={14} />\n {label}\n </button>\n ))}\n </div>\n\n {/* Create Task Button */}\n {onCreateTask && (\n <button\n type=\"button\"\n onClick={onCreateTask}\n className=\"flex w-full items-center justify-center gap-2 rounded-lg bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text transition-opacity hover:opacity-90 sm:w-auto\"\n >\n <Plus size={16} />\n {tr('vibecontrols.calendar.header.scheduleTask', 'Schedule Task')}\n </button>\n )}\n </div>\n </div>\n );\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VibeTaskBlock.js","names":[],"sources":["../../../src/components/vibecalendar/VibeTaskBlock.tsx"],"sourcesContent":["import { Play, Eye } from 'lucide-react';\nimport { STATUS_COLORS } from './types';\nimport type { VibeCalendarTask } from './types';\nimport { useTr } from '../../shared/hooks/useTr';\n\ninterface VibeTaskBlockProps {\n task: VibeCalendarTask;\n compact?: boolean;\n onTriggerNow?: (taskId: string) => void;\n onViewLogs: (task: VibeCalendarTask) => void;\n onViewDetail: (taskId: string) => void;\n}\n\nexport function VibeTaskBlock({\n task,\n compact = false,\n onTriggerNow,\n onViewLogs,\n onViewDetail,\n}: VibeTaskBlockProps) {\n const tr = useTr();\n const statusColor = STATUS_COLORS[task.status] || STATUS_COLORS.PENDING;\n const commandPreview = task.taskConfig.command\n ? task.taskConfig.command.length > 40\n ? task.taskConfig.command.slice(0, 40) + '...'\n : task.taskConfig.command\n : task.taskConfig.script\n ? 'Script'\n : 'File Operation';\n\n if (compact) {\n return (\n <button\n type=\"button\"\n onClick={() => onViewDetail(task.id)}\n className={`w-full text-left px-2 py-1 rounded text-xs truncate border ${statusColor} hover:opacity-80 transition-opacity`}\n title={task.title}\n >\n {task.title}\n </button>\n );\n }\n\n return (\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n (() => onViewDetail(task.id))();\n }\n }}\n className={`relative p-3 rounded-lg border ${statusColor} hover:opacity-90 transition-opacity cursor-pointer`}\n onClick={() => onViewDetail(task.id)}\n >\n <div className=\"flex items-start justify-between gap-2\">\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"font-medium text-sm text-text-primary truncate\">{task.title}</h4>\n <p className=\"text-xs text-text-secondary mt-0.5 font-mono truncate\">{commandPreview}</p>\n <div className=\"flex items-center gap-2 mt-1.5\">\n {task.nextExecutionAt && (\n <span className=\"text-xs text-text-tertiary\">\n Next: {new Date(task.nextExecutionAt).toLocaleString()}\n </span>\n )}\n </div>\n </div>\n\n {/* Quick Actions */}\n <div className=\"flex items-center gap-1\" onClick={(e) => e.stopPropagation()}>\n {onTriggerNow && (\n <button\n type=\"button\"\n onClick={() => onTriggerNow(task.id)}\n className=\"p-1 rounded hover:bg-bg-surface transition-colors\"\n title=\"Trigger Now\"\n >\n <Play size={14} />\n </button>\n )}\n <button\n type=\"button\"\n onClick={() => onViewLogs(task)}\n className=\"p-1 rounded hover:bg-bg-surface transition-colors\"\n title=\"View Logs\"\n >\n <Eye size={14} />\n </button>\n </div>\n </div>\n </div>\n );\n}\n"],"mappings":";;;;;AAaA,SAAgB,EAAc,EAC5B,SACA,aAAU,IACV,iBACA,eACA,mBACqB;AACV,IAAO;CAClB,IAAM,IAAc,EAAc,EAAK,WAAW,EAAc,SAC1D,IAAiB,EAAK,WAAW,UACnC,EAAK,WAAW,QAAQ,SAAS,KAC/B,EAAK,WAAW,QAAQ,MAAM,GAAG,GAAG,GAAG,QACvC,EAAK,WAAW,UAClB,EAAK,WAAW,SACd,WACA;AAeN,QAbI,IAEA,kBAAC,UAAD;EACE,MAAK;EACL,eAAe,EAAa,EAAK,GAAG;EACpC,WAAW,8DAA8D,EAAY;EACrF,OAAO,EAAK;YAEX,EAAK;EACC,CAAA,GAKX,kBAAC,OAAD;EACE,MAAK;EACL,UAAU;EACV,YAAY,MAAM;AAChB,IAAI,EAAE,QAAQ,WAAW,EAAE,QAAQ,SACjC,EAAE,gBAAgB,EACX,EAAa,EAAK,GAAG;;EAGhC,WAAW,kCAAkC,EAAY;EACzD,eAAe,EAAa,EAAK,GAAG;YAEpC,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,OAAD;IAAK,WAAU;cAAf;KACE,kBAAC,MAAD;MAAI,WAAU;gBAAkD,EAAK;MAAW,CAAA;KAChF,kBAAC,KAAD;MAAG,WAAU;gBAAyD;MAAmB,CAAA;KACzF,kBAAC,OAAD;MAAK,WAAU;gBACZ,EAAK,mBACJ,kBAAC,QAAD;OAAM,WAAU;iBAAhB,CAA6C,UACpC,IAAI,KAAK,EAAK,gBAAgB,CAAC,gBAAgB,CACjD;;MAEL,CAAA;KACF;OAGN,kBAAC,OAAD;IAAK,WAAU;IAA0B,UAAU,MAAM,EAAE,iBAAiB;cAA5E,CACG,KACC,kBAAC,UAAD;KACE,MAAK;KACL,eAAe,EAAa,EAAK,GAAG;KACpC,WAAU;KACV,OAAM;eAEN,kBAAC,GAAD,EAAM,MAAM,IAAM,CAAA;KACX,CAAA,EAEX,kBAAC,UAAD;KACE,MAAK;KACL,eAAe,EAAW,EAAK;KAC/B,WAAU;KACV,OAAM;eAEN,kBAAC,GAAD,EAAK,MAAM,IAAM,CAAA;KACV,CAAA,CACL;MACF;;EACF,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"expandOccurrences.js","names":[],"sources":["../../../src/components/vibecalendar/expandOccurrences.ts"],"sourcesContent":["/**\n * Expand a ScheduledJob into a list of calendar occurrences that fall\n * within the provided date range. Used by VibeCalendarPage to render\n * jobs from the scheduler (and calendar-linked tasks) as events on the\n * month/week/day/agenda grids.\n *\n * Scope-limit: CRON and RRULE jobs only emit their `nextExecutionAt`\n * as a single occurrence because full client-side cron/rrule expansion\n * is out of scope. A follow-up can add a server-side\n * `scheduledJobsInRange` query that returns pre-expanded occurrences.\n */\n\nimport type { VibeCalendarTask, VibeCalendarExecution, CalendarOccurrence } from './types';\n\nexport interface SchedulerJobLike {\n id: string;\n name?: string | null;\n description?: string | null;\n status: string;\n scheduleType: string;\n cronExpression?: string | null;\n rrule?: string | null;\n interval?: unknown;\n scheduledAt?: string | null;\n nextExecutionAt?: string | null;\n lastExecutionAt?: string | null;\n actionId?: string | null;\n timezone?: string | null;\n startDate?: string | null;\n endDate?: string | null;\n}\n\nconst INTERVAL_UNIT_MS: Record<string, number> = {\n SECONDS: 1000,\n MINUTES: 60 * 1000,\n HOURS: 60 * 60 * 1000,\n DAYS: 24 * 60 * 60 * 1000,\n WEEKS: 7 * 24 * 60 * 60 * 1000,\n};\n\n/**\n * Read the interval JSON on a ScheduledJob (stored as `{ value, unit }`\n * by the backend) and return a step in milliseconds, or null if the\n * field is missing or malformed.\n */\nfunction intervalToMs(interval: unknown): number | null {\n if (!interval || typeof interval !== 'object') return null;\n const obj = interval as { value?: unknown; unit?: unknown };\n const value = typeof obj.value === 'number' ? obj.value : Number(obj.value);\n const unit = typeof obj.unit === 'string' ? obj.unit.toUpperCase() : '';\n const unitMs = INTERVAL_UNIT_MS[unit];\n if (!unitMs || !Number.isFinite(value) || value <= 0) return null;\n return value * unitMs;\n}\n\n/**\n * Build a minimal VibeCalendarTask shape from a ScheduledJob so the\n * existing calendar view components (VibeCalMonthView, VibeTaskBlock,\n * etc.) can render it without any component changes. Unused task\n * fields are filled with safe defaults.\n */\nexport function jobToVibeCalendarTask(job: SchedulerJobLike): VibeCalendarTask {\n const fallback = job.nextExecutionAt ?? job.scheduledAt ?? new Date().toISOString();\n return {\n id: job.id,\n // Discriminator so the page-level handlers know `id` is a\n // ScheduledJob id (lives in wspace-scheduler-svc) and NOT a\n // VibeCalendarTask id. See VibeCalendarTaskSource doc + the\n // handleTriggerNow/handleViewDetail branches in VibeCalendarPage.\n source: 'scheduledJob',\n title: job.name || 'Untitled job',\n description: job.description ?? null,\n calendarId: '',\n calendarEventId: '',\n agentId: '',\n taskConfig: {\n taskType: 'ACTION',\n command: job.actionId ? `Action: ${job.actionId}` : null,\n script: null,\n interpreter: null,\n cwd: null,\n env: null,\n timeout: null,\n webhookUrl: null,\n webhookMethod: null,\n webhookHeaders: null,\n webhookAuthType: null,\n webhookPayload: null,\n },\n cronExpression: job.cronExpression ?? null,\n rrule: job.rrule ?? null,\n scheduledAt: job.scheduledAt ?? null,\n timezone: job.timezone ?? 'UTC',\n nextExecutionAt: job.nextExecutionAt ?? null,\n lastExecutedAt: job.lastExecutionAt ?? null,\n status: job.status,\n totalExecutions: 0,\n consecutiveFailures: 0,\n createdAt: fallback,\n updatedAt: fallback,\n };\n}\n\n/**\n * Expand a single ScheduledJob into calendar occurrences that fall\n * within [rangeStart, rangeEnd]. See file header for CRON/RRULE caveat.\n */\nexport function expandJobToOccurrences(\n job: SchedulerJobLike,\n rangeStart: Date,\n rangeEnd: Date\n): CalendarOccurrence[] {\n const task = jobToVibeCalendarTask(job);\n const execution: VibeCalendarExecution | null = null;\n const out: CalendarOccurrence[] = [];\n const now = Date.now();\n\n const pushIfInRange = (iso: string | null | undefined) => {\n if (!iso) return;\n const t = Date.parse(iso);\n if (Number.isNaN(t)) return;\n if (t < rangeStart.getTime() || t > rangeEnd.getTime()) return;\n out.push({\n task,\n occurrenceAt: new Date(t).toISOString(),\n isPast: t < now,\n execution,\n });\n };\n\n switch (job.scheduleType) {\n case 'ONE_TIME': {\n pushIfInRange(job.scheduledAt ?? job.nextExecutionAt);\n break;\n }\n case 'FIXED_INTERVAL': {\n const stepMs = intervalToMs(job.interval);\n if (stepMs === null) {\n // Missing/invalid interval — fall back to just nextExecutionAt.\n pushIfInRange(job.nextExecutionAt);\n break;\n }\n // Anchor from the scheduled start (or nextExecutionAt), whichever\n // is earlier and non-null. Jobs with startDate honor it.\n const anchorIso = job.startDate ?? job.scheduledAt ?? job.nextExecutionAt;\n if (!anchorIso) break;\n const anchor = Date.parse(anchorIso);\n if (Number.isNaN(anchor)) break;\n\n // Step forward from the anchor until we enter the range, then\n // emit until we leave it or we hit the hard cap.\n let t = anchor;\n if (t < rangeStart.getTime()) {\n const delta = rangeStart.getTime() - t;\n const skips = Math.floor(delta / stepMs);\n t = t + skips * stepMs;\n }\n const endCap = job.endDate\n ? Math.min(rangeEnd.getTime(), Date.parse(job.endDate))\n : rangeEnd.getTime();\n let count = 0;\n while (t <= endCap && count < 500) {\n if (t >= rangeStart.getTime()) {\n out.push({\n task,\n occurrenceAt: new Date(t).toISOString(),\n isPast: t < now,\n execution,\n });\n }\n t += stepMs;\n count += 1;\n }\n break;\n }\n case 'CRON':\n case 'RRULE':\n default: {\n // Fallback: render only the next scheduled run. A full client-side\n // cron/rrule expander is out of scope; full range expansion depends\n // on a server-side range query (tracked in scheduler-svc backlog)\n // that returns pre-expanded occurrences so recurring jobs show every\n // run in the visible range.\n pushIfInRange(job.nextExecutionAt);\n break;\n }\n }\n\n return out;\n}\n\n/**\n * Convenience helper: expand a list of jobs into a merged, sorted list\n * of occurrences.\n */\nexport function expandJobsToOccurrences(\n jobs: SchedulerJobLike[],\n rangeStart: Date,\n rangeEnd: Date\n): CalendarOccurrence[] {\n const all: CalendarOccurrence[] = [];\n for (const job of jobs) {\n all.push(...expandJobToOccurrences(job, rangeStart, rangeEnd));\n }\n all.sort((a, b) => a.occurrenceAt.localeCompare(b.occurrenceAt));\n return all;\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","names":[],"sources":["../../../src/components/vibecalendar/types.ts"],"sourcesContent":["export type CalendarViewMode = 'month' | 'week' | 'day' | 'agenda';\n\n// Where a calendar tile's data originally came from. Set by\n// client-side mappers ONLY — never present on the GraphQL response.\n// Page handlers branch on this to pick the matching subgraph for\n// mutations and the matching detail route. Omitted = default\n// `vibeCalendarTask` (rows from wspace-calendar-svc).\nexport type VibeCalendarTaskSource = 'scheduledJob' | 'vibeCalendarTask';\n\nexport interface VibeCalendarTask {\n id: string;\n /**\n * Set by client-side mappers (e.g. `jobToVibeCalendarTask`). Reading\n * code branches on this to pick the correct mutation/route. Omitted\n * for real VibeCalendarTask rows fetched from wspace-calendar-svc —\n * treat `undefined` as `'vibeCalendarTask'`.\n */\n source?: VibeCalendarTaskSource;\n title: string;\n description: string | null;\n calendarId: string;\n calendarEventId: string;\n agentId: string;\n taskConfig: {\n taskType: string;\n command?: string | null;\n script?: string | null;\n interpreter?: string | null;\n cwd?: string | null;\n env?: Record<string, string> | null;\n timeout?: number | null;\n webhookUrl?: string | null;\n webhookMethod?: string | null;\n webhookHeaders?: Record<string, string> | null;\n webhookAuthType?: string | null;\n webhookPayload?: Record<string, unknown> | null;\n };\n cronExpression: string | null;\n rrule: string | null;\n scheduledAt: string | null;\n timezone: string;\n nextExecutionAt: string | null;\n lastExecutedAt: string | null;\n status: string;\n totalExecutions: number;\n consecutiveFailures: number;\n createdAt: string;\n updatedAt: string;\n}\n\nexport interface VibeCalendarExecution {\n id: string;\n taskId: string;\n status: string;\n output: string | null;\n exitCode: number | null;\n webhookStatusCode: number | null;\n startedAt: string | null;\n completedAt: string | null;\n error: string | null;\n}\n\nexport interface CalendarOccurrence {\n task: VibeCalendarTask;\n occurrenceAt: string;\n isPast: boolean;\n execution: VibeCalendarExecution | null;\n}\n\nexport const STATUS_COLORS: Record<string, string> = {\n PENDING: 'bg-status-info-bg-subtle text-status-info-text border-status-info-border/30',\n RUNNING: 'bg-status-warning-bg-subtle text-status-warning-text border-status-warning-border/30',\n COMPLETED: 'bg-status-success-bg-subtle text-status-success-text border-status-success-border/30',\n FAILED: 'bg-status-error-bg-subtle text-status-error-text border-status-error-border/30',\n PAUSED: 'bg-bg-sunken/10 text-text-tertiary border-border-subtle/30',\n CANCELLED: 'bg-bg-sunken/10 text-text-tertiary border-border-subtle/30',\n DRAFT: 'bg-bg-sunken/10 text-text-tertiary border-border-subtle/30',\n TIMEOUT: 'bg-status-warning-bg-subtle text-status-warning-text border-status-warning-border/30',\n MANUAL: 'bg-accent-purple-subtle text-text-primary border-accent-purple/30',\n SCHEDULE: 'bg-status-info-bg-subtle text-status-info-text border-status-info-border/30',\n // Scheduler-svc JobStatus exclusives — without these the badge\n // silently falls back to PENDING styling on archived/disabled jobs.\n ARCHIVED: 'bg-bg-sunken/10 text-text-tertiary border-border-subtle/30',\n DISABLED: 'bg-bg-sunken/10 text-text-tertiary border-border-subtle/30',\n};\n"],"mappings":";AAqEA,IAAa,IAAwC;CACnD,SAAS;CACT,SAAS;CACT,WAAW;CACX,QAAQ;CACR,QAAQ;CACR,WAAW;CACX,OAAO;CACP,SAAS;CACT,QAAQ;CACR,UAAU;CAGV,UAAU;CACV,UAAU;CACX"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VibeDeckButtonForm.js","names":[],"sources":["../../../src/components/vibedeck/VibeDeckButtonForm.tsx"],"sourcesContent":["import { type FC, useState, useMemo, useCallback } from 'react';\nimport { X, Plus, Search, ChevronDown, Unlink } from 'lucide-react';\nimport { useListActionsQuery, useCreateActionMutation } from '@/generated/wspace-operations';\nimport { useTr } from '../../shared/hooks/useTr';\nimport { CommandEditor } from '../common/CommandEditor';\nimport { languageForInterpreter } from '../common/commandHighlight';\nimport { ActionAgentTargetNotice } from '../common/ActionAgentTargetNotice';\n\ninterface Agent {\n id: string;\n name: string;\n isActive: boolean;\n}\n\ninterface ActionData {\n id: string;\n name: string;\n displayName: string | null;\n actionType: string;\n command: string | null;\n script: string | null;\n scriptInterpreter: string | null;\n webhookUrl: string | null;\n webhookMethod: string | null;\n targetAgentId: string | null;\n targetPlatformFilter: string | null;\n workingDirectory: string | null;\n category: string | null;\n}\n\ninterface ButtonFormData {\n label: string;\n icon: string;\n color: string;\n category: string;\n keyboardShortcut: string;\n confirmationRequired: boolean;\n rowSpan: number;\n colSpan: number;\n actionId: string;\n // Temporary fields for creating a new action inline\n actionType: 'COMMAND' | 'SCRIPT' | 'WEBHOOK';\n command: string;\n workingDirectory: string;\n targetAgentId: string;\n script: string;\n scriptInterpreter: string;\n webhookUrl: string;\n webhookMethod: string;\n webhookHeaders: Array<{ key: string; value: string }>;\n webhookBody: string;\n webhookAuthType: string;\n webhookAuthValue: string;\n}\n\ntype ButtonFormInitialData = Partial<Omit<ButtonFormData, 'webhookHeaders'>> & {\n webhookHeaders?: Array<{ key: string; value: string }> | Record<string, string> | null;\n};\n\ninterface VibeDeckButtonFormProps {\n initialData?: ButtonFormInitialData;\n agents: Agent[];\n onSubmit: (data: ButtonFormData) => void;\n onCancel: () => void;\n isLoading: boolean;\n title: string;\n gridColumns?: number;\n gridRows?: number;\n buttonRow?: number;\n buttonColumn?: number;\n}\n\nconst colorOptions = [\n { value: '', label: 'Default' },\n { value: 'red', label: 'Red' },\n { value: 'green', label: 'Green' },\n { value: 'blue', label: 'Blue' },\n { value: 'yellow', label: 'Yellow' },\n { value: 'purple', label: 'Purple' },\n { value: 'orange', label: 'Orange' },\n { value: 'cyan', label: 'Cyan' },\n { value: 'pink', label: 'Pink' },\n];\n\nconst httpMethods = ['GET', 'POST', 'PUT', 'PATCH', 'DELETE'];\n\nconst interpreters = [\n { value: 'bash', label: 'Bash' },\n { value: 'sh', label: 'Shell (sh)' },\n { value: 'zsh', label: 'Zsh' },\n { value: 'python', label: 'Python' },\n { value: 'python3', label: 'Python 3' },\n { value: 'node', label: 'Node.js' },\n { value: 'bun', label: 'Bun' },\n { value: 'ruby', label: 'Ruby' },\n { value: 'perl', label: 'Perl' },\n];\n\nfunction parseHeadersToArray(\n headers: Array<{ key: string; value: string }> | Record<string, string> | null | undefined\n): Array<{ key: string; value: string }> {\n if (!headers) return [];\n if (Array.isArray(headers)) return headers;\n return Object.entries(headers).map(([key, value]) => ({ key, value: String(value) }));\n}\n\nfunction slugify(text: string): string {\n return text\n .toLowerCase()\n .replace(/[^a-z0-9]+/g, '-')\n .replace(/^-|-$/g, '')\n .slice(0, 60);\n}\n\nexport const VibeDeckButtonForm: FC<VibeDeckButtonFormProps> = ({\n initialData,\n agents,\n onSubmit,\n onCancel,\n isLoading,\n title,\n gridColumns,\n gridRows,\n buttonRow,\n buttonColumn,\n}) => {\n const tr = useTr();\n const DEFAULT_MAX_SPAN = 4;\n const maxRowSpan = Math.max(\n 1,\n gridRows != null && buttonRow != null ? gridRows - buttonRow : DEFAULT_MAX_SPAN\n );\n const maxColSpan = Math.max(\n 1,\n gridColumns != null && buttonColumn != null ? gridColumns - buttonColumn : DEFAULT_MAX_SPAN\n );\n\n // Action selection state\n const [selectedActionId, setSelectedActionId] = useState<string>(initialData?.actionId || '');\n const [actionSearchQuery, setActionSearchQuery] = useState('');\n const [isActionDropdownOpen, setIsActionDropdownOpen] = useState(false);\n const [isCreatingNewAction, setIsCreatingNewAction] = useState(false);\n\n // Fetch available actions\n const { data: actionsData } = useListActionsQuery({\n variables: { pagination: { limit: 100 } },\n fetchPolicy: 'cache-and-network',\n });\n const [createActionMutation] = useCreateActionMutation();\n\n const availableActions: ActionData[] = useMemo(\n () =>\n (actionsData?.actions?.items || []).map(\n (a: {\n id: string;\n name: string;\n displayName?: string | null;\n actionType: string;\n command?: string | null;\n script?: string | null;\n scriptInterpreter?: string | null;\n webhookUrl?: string | null;\n webhookMethod?: string | null;\n targetAgentId?: string | null;\n targetPlatformFilter?: string | null;\n workingDirectory?: string | null;\n category?: string | null;\n }) => ({\n id: a.id,\n name: a.name,\n displayName: a.displayName || null,\n actionType: a.actionType,\n command: a.command || null,\n script: a.script || null,\n scriptInterpreter: a.scriptInterpreter || null,\n webhookUrl: a.webhookUrl || null,\n webhookMethod: a.webhookMethod || null,\n targetAgentId: a.targetAgentId || null,\n targetPlatformFilter: a.targetPlatformFilter || null,\n workingDirectory: a.workingDirectory || null,\n category: a.category || null,\n })\n ),\n [actionsData]\n );\n\n const selectedAction = useMemo(\n () => availableActions.find((a) => a.id === selectedActionId) || null,\n [availableActions, selectedActionId]\n );\n\n const filteredActions = useMemo(() => {\n if (!actionSearchQuery.trim()) return availableActions;\n const q = actionSearchQuery.toLowerCase();\n return availableActions.filter(\n (a) =>\n a.name.toLowerCase().includes(q) ||\n (a.displayName && a.displayName.toLowerCase().includes(q)) ||\n a.actionType.toLowerCase().includes(q)\n );\n }, [availableActions, actionSearchQuery]);\n\n const [form, setForm] = useState<ButtonFormData>({\n label: initialData?.label || '',\n icon: initialData?.icon || '',\n color: initialData?.color || '',\n category: initialData?.category || '',\n keyboardShortcut: initialData?.keyboardShortcut || '',\n confirmationRequired: initialData?.confirmationRequired || false,\n rowSpan: Math.min(initialData?.rowSpan || 1, maxRowSpan),\n colSpan: Math.min(initialData?.colSpan || 1, maxColSpan),\n actionId: initialData?.actionId || '',\n // Legacy fields for creating new action\n actionType: initialData?.actionType || 'COMMAND',\n command: initialData?.command || '',\n workingDirectory: initialData?.workingDirectory || '',\n targetAgentId: initialData?.targetAgentId || '',\n script: initialData?.script || '',\n scriptInterpreter: initialData?.scriptInterpreter || 'bash',\n webhookUrl: initialData?.webhookUrl || '',\n webhookMethod: initialData?.webhookMethod || 'POST',\n webhookHeaders: parseHeadersToArray(initialData?.webhookHeaders),\n webhookBody: initialData?.webhookBody || '',\n webhookAuthType: initialData?.webhookAuthType || '',\n webhookAuthValue: initialData?.webhookAuthValue || '',\n });\n\n const handleSelectAction = (action: ActionData) => {\n setSelectedActionId(action.id);\n setIsActionDropdownOpen(false);\n setActionSearchQuery('');\n setIsCreatingNewAction(false);\n setForm((prev) => ({\n ...prev,\n actionId: action.id,\n actionType: action.actionType as 'COMMAND' | 'SCRIPT' | 'WEBHOOK',\n command: action.command || '',\n script: action.script || '',\n scriptInterpreter: action.scriptInterpreter || 'bash',\n webhookUrl: action.webhookUrl || '',\n webhookMethod: action.webhookMethod || 'POST',\n workingDirectory: action.workingDirectory || '',\n targetAgentId: action.targetAgentId || '',\n category: action.category || prev.category,\n }));\n };\n\n const handleUnlinkAction = () => {\n setSelectedActionId('');\n setForm((prev) => ({ ...prev, actionId: '' }));\n };\n\n const addHeader = () => {\n setForm({ ...form, webhookHeaders: [...form.webhookHeaders, { key: '', value: '' }] });\n };\n\n const removeHeader = (index: number) => {\n setForm({ ...form, webhookHeaders: form.webhookHeaders.filter((_, i) => i !== index) });\n };\n\n const updateHeader = (index: number, field: 'key' | 'value', val: string) => {\n const updated = [...form.webhookHeaders];\n updated[index] = { ...updated[index], [field]: val };\n setForm({ ...form, webhookHeaders: updated });\n };\n\n const hasSelectedAction = !!selectedActionId;\n const isActionFieldsReadOnly = hasSelectedAction && !isCreatingNewAction;\n\n const isNewActionValid =\n (form.actionType === 'COMMAND' && form.command.trim()) ||\n (form.actionType === 'SCRIPT' && form.script.trim()) ||\n (form.actionType === 'WEBHOOK' && form.webhookUrl.trim());\n\n const isValid = form.label.trim() && (hasSelectedAction || isNewActionValid);\n\n const handleSubmit = useCallback(\n async (e: React.FormEvent) => {\n e.preventDefault();\n\n // If creating new action inline, create it first\n if (!hasSelectedAction && isCreatingNewAction) {\n try {\n const actionName =\n slugify(form.label || 'vibedeck-action') + '-' + Date.now().toString(36);\n const result = await createActionMutation({\n variables: {\n input: {\n name: actionName,\n displayName: form.label,\n actionType: form.actionType,\n command: form.actionType === 'COMMAND' ? form.command : undefined,\n script: form.actionType === 'SCRIPT' ? form.script : undefined,\n scriptInterpreter:\n form.actionType === 'SCRIPT' ? form.scriptInterpreter : undefined,\n webhookUrl: form.actionType === 'WEBHOOK' ? form.webhookUrl : undefined,\n webhookMethod: form.actionType === 'WEBHOOK' ? form.webhookMethod : undefined,\n webhookBody: form.actionType === 'WEBHOOK' ? form.webhookBody : undefined,\n webhookAuthType: form.actionType === 'WEBHOOK' ? form.webhookAuthType : undefined,\n webhookAuthValue: form.actionType === 'WEBHOOK' ? form.webhookAuthValue : undefined,\n workingDirectory: form.workingDirectory || undefined,\n targetAgentId: form.targetAgentId || undefined,\n category: form.category || undefined,\n confirmationRequired: form.confirmationRequired,\n },\n },\n refetchQueries: ['ListActions'],\n });\n\n const newActionId = result.data?.createAction?.id;\n if (newActionId) {\n onSubmit({ ...form, actionId: newActionId });\n return;\n }\n } catch {\n // Fall through\n }\n }\n\n onSubmit({ ...form, actionId: selectedActionId });\n },\n [form, hasSelectedAction, isCreatingNewAction, selectedActionId, createActionMutation, onSubmit]\n );\n\n // -- Shared CSS classes --\n const inputCls =\n 'w-full px-3 py-2 rounded-lg border border-border-default bg-bg-surface text-text-primary focus:outline-none focus:ring-2 focus:ring-action-primary-bg';\n const readOnlyCls = 'opacity-70 cursor-not-allowed';\n const sectionLabel = 'block text-sm font-medium text-text-secondary mb-1';\n\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center bg-bg-overlay backdrop-blur-sm\">\n <div className=\"bg-bg-elevated border border-border-default rounded-xl shadow-xl w-full max-w-lg mx-4 max-h-[90vh] overflow-y-auto\">\n {/* Header */}\n <div className=\"flex items-center justify-between px-6 py-4 border-b border-border-default sticky top-0 bg-bg-elevated z-10\">\n <h2 className=\"text-lg font-semibold text-text-primary\">{title}</h2>\n <button\n type=\"button\"\n onClick={onCancel}\n className=\"p-1 rounded hover:bg-bg-sunken text-text-tertiary\"\n >\n <X size={18} />\n </button>\n </div>\n\n <form onSubmit={handleSubmit} className=\"p-6 space-y-4\">\n {/* Label */}\n <div>\n <label className={sectionLabel}>\n {tr('vibecontrols.vibedeck.buttonForm.label', 'Label')} *\n </label>\n <input\n aria-label=\"Deploy Staging\"\n type=\"text\"\n value={form.label}\n onChange={(e) => setForm({ ...form, label: e.target.value })}\n className={inputCls}\n placeholder=\"Deploy Staging\"\n required\n />\n </div>\n\n {/* ── Action Selection ── */}\n <div>\n <label className={sectionLabel}>\n {tr('vibecontrols.vibedeck.buttonForm.action', 'Action')} *\n </label>\n\n {/* Selected action card */}\n {selectedAction ? (\n <div className=\"flex items-center gap-2 px-3 py-2.5 rounded-lg border border-[var(--color-accent-soft)] bg-bg-surface\">\n <div className=\"flex-1 min-w-0\">\n <div className=\"text-sm font-medium text-text-primary truncate\">\n {selectedAction.displayName || selectedAction.name}\n </div>\n <div className=\"text-xs text-text-tertiary flex items-center gap-1\">\n <span className=\"inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-semibold bg-[var(--color-accent-soft)] text-text-primary\">\n {selectedAction.actionType}\n </span>\n {selectedAction.command && (\n <span className=\"font-mono truncate\">\n {selectedAction.command.length > 35\n ? `${selectedAction.command.slice(0, 35)}...`\n : selectedAction.command}\n </span>\n )}\n </div>\n </div>\n <button\n type=\"button\"\n onClick={handleUnlinkAction}\n className=\"p-1.5 rounded hover:bg-bg-sunken text-text-tertiary hover:text-status-error-text\"\n title=\"Change action\"\n >\n <Unlink size={14} />\n </button>\n </div>\n ) : null}\n\n {/* Surface the agent this action runs on (and warn if it's unhealthy\n or gone) right where the action is linked to the button. */}\n {selectedAction && (\n <div className=\"mt-2\">\n <ActionAgentTargetNotice action={selectedAction} />\n </div>\n )}\n\n {!selectedAction && (\n /* Search for existing action or create new */\n <div className=\"space-y-2\">\n <div className=\"relative\">\n <input\n aria-label=\"control\"\n type=\"text\"\n value={actionSearchQuery}\n onChange={(e) => {\n setActionSearchQuery(e.target.value);\n setIsActionDropdownOpen(true);\n setIsCreatingNewAction(false);\n }}\n onFocus={() => setIsActionDropdownOpen(true)}\n onBlur={() => setTimeout(() => setIsActionDropdownOpen(false), 200)}\n className=\"w-full px-3 py-2 rounded-lg border border-border-default bg-bg-surface text-text-primary text-sm focus:outline-none focus:ring-2 focus:ring-action-primary-bg\"\n placeholder={tr(\n 'vibecontrols.vibedeck.buttonForm.searchActions',\n 'Search existing actions...'\n )}\n />\n {isActionDropdownOpen && (\n <div className=\"absolute z-50 mt-1 w-full max-h-48 overflow-y-auto rounded-lg border border-border-default shadow-xl bg-bg-elevated\">\n {filteredActions.length === 0 ? (\n <div className=\"px-3 py-2 text-sm text-text-tertiary\">No actions found</div>\n ) : (\n filteredActions.map((action) => (\n <button\n key={action.id}\n type=\"button\"\n onMouseDown={(e) => e.preventDefault()}\n onClick={() => handleSelectAction(action)}\n className=\"w-full text-left px-3 py-2 hover:bg-bg-sunken\"\n >\n <div className=\"text-sm font-medium\">\n {action.displayName || action.name}\n </div>\n <div className=\"text-xs text-text-tertiary\">{action.actionType}</div>\n </button>\n ))\n )}\n </div>\n )}\n </div>\n\n {!isCreatingNewAction && (\n <button\n type=\"button\"\n onClick={() => setIsCreatingNewAction(true)}\n className=\"flex items-center gap-1.5 text-sm text-action-primary-bg hover:opacity-80\"\n >\n <Plus size={14} />{' '}\n {tr('vibecontrols.vibedeck.buttonForm.createNewAction', 'Create new action')}\n </button>\n )}\n </div>\n )}\n </div>\n\n {/* ── New Action Fields (if creating new) ── */}\n {isCreatingNewAction && (\n <div className=\"p-4 rounded-lg bg-bg-sunken border border-dashed border-border-default space-y-4\">\n <div>\n <label htmlFor=\"vibedeckbuttonform-23\" className={sectionLabel}>\n Action Type\n </label>\n <select\n id=\"vibedeckbuttonform-23\"\n value={form.actionType}\n onChange={(e) => setForm({ ...form, actionType: e.target.value as any })}\n className={inputCls}\n >\n <option value=\"COMMAND\">Command</option>\n <option value=\"SCRIPT\">Script</option>\n <option value=\"WEBHOOK\">Webhook</option>\n </select>\n </div>\n\n {form.actionType === 'COMMAND' && (\n <div>\n <label htmlFor=\"vibedeckbuttonform-22\" className={sectionLabel}>\n Command *\n </label>\n <CommandEditor\n id=\"vibedeckbuttonform-22\"\n aria-label=\"control\"\n language=\"shell\"\n value={form.command}\n onChange={(e) => setForm({ ...form, command: e.target.value })}\n rows={2}\n required\n />\n </div>\n )}\n\n {form.actionType === 'SCRIPT' && (\n <div>\n <label htmlFor=\"vibedeckbuttonform-21\" className={sectionLabel}>\n Script *\n </label>\n <CommandEditor\n id=\"vibedeckbuttonform-21\"\n aria-label=\"control\"\n language={languageForInterpreter(form.scriptInterpreter)}\n value={form.script}\n onChange={(e) => setForm({ ...form, script: e.target.value })}\n rows={4}\n required\n />\n </div>\n )}\n\n {form.actionType === 'WEBHOOK' && (\n <div>\n <label htmlFor=\"vibedeckbuttonform-20\" className={sectionLabel}>\n URL *\n </label>\n <input\n id=\"vibedeckbuttonform-20\"\n aria-label=\"control\"\n type=\"url\"\n value={form.webhookUrl}\n onChange={(e) => setForm({ ...form, webhookUrl: e.target.value })}\n className={inputCls}\n required\n />\n </div>\n )}\n </div>\n )}\n\n {/* ── Appearance ── */}\n <div className=\"grid grid-cols-2 gap-3\">\n <div>\n <label htmlFor=\"vibedeckbuttonform-19\" className={sectionLabel}>\n Color\n </label>\n <select\n id=\"vibedeckbuttonform-19\"\n value={form.color}\n onChange={(e) => setForm({ ...form, color: e.target.value })}\n className={inputCls}\n >\n {colorOptions.map((opt) => (\n <option key={opt.value} value={opt.value}>\n {opt.label}\n </option>\n ))}\n </select>\n </div>\n <div>\n <label htmlFor=\"vibedeckbuttonform-18\" className={sectionLabel}>\n Category\n </label>\n <input\n id=\"vibedeckbuttonform-18\"\n aria-label=\"control\"\n type=\"text\"\n value={form.category}\n onChange={(e) => setForm({ ...form, category: e.target.value })}\n className={inputCls}\n />\n </div>\n </div>\n\n <div className=\"grid grid-cols-2 gap-3\">\n <div className=\"flex items-center gap-2\">\n <input\n aria-label=\"confReq\"\n type=\"checkbox\"\n checked={form.confirmationRequired}\n onChange={(e) => setForm({ ...form, confirmationRequired: e.target.checked })}\n id=\"confReq\"\n />\n <label htmlFor=\"confReq\" className=\"text-sm\">\n {tr('vibecontrols.vibedeck.buttonForm.requireConfirmation', 'Require confirmation')}\n </label>\n </div>\n </div>\n\n {/* Submit */}\n <div className=\"flex justify-end gap-3 pt-2\">\n <button\n type=\"button\"\n onClick={onCancel}\n className=\"px-4 py-2 rounded-lg text-sm text-text-secondary hover:bg-bg-sunken\"\n >\n {tr('vibecontrols.vibedeck.buttonForm.cancel', 'Cancel')}\n </button>\n <button\n type=\"submit\"\n disabled={isLoading || !isValid}\n className=\"px-4 py-2 rounded-lg text-sm bg-action-primary-bg text-action-primary-text hover:opacity-90 disabled:opacity-50\"\n >\n {isLoading\n ? tr('vibecontrols.vibedeck.buttonForm.saving', 'Saving...')\n : tr('vibecontrols.vibedeck.buttonForm.save', 'Save')}\n </button>\n </div>\n </form>\n </div>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VibeDeckButtonTile.js","names":[],"sources":["../../../src/components/vibedeck/VibeDeckButtonTile.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport {\n Play,\n Pencil,\n Trash2,\n Terminal,\n Globe,\n FileCode,\n AlertTriangle,\n Check,\n X,\n Loader2,\n} from 'lucide-react';\nimport { SelectionCheckbox } from '../shared/SelectionCheckbox';\n\ninterface ActionRef {\n id: string;\n name: string;\n displayName: string | null;\n actionType: string;\n command: string | null;\n script: string | null;\n webhookUrl: string | null;\n targetAgentId: string | null;\n}\n\ninterface ButtonData {\n id: string;\n label: string;\n icon: string | null;\n color: string | null;\n command: string | null;\n actionType: string;\n category: string | null;\n confirmationRequired: boolean;\n keyboardShortcut: string | null;\n targetAgentId: string | null;\n scriptInterpreter: string | null;\n webhookUrl: string | null;\n webhookMethod: string | null;\n actionId?: string | null;\n action?: ActionRef | null;\n}\n\ninterface VibeDeckButtonTileProps {\n button: ButtonData;\n onExecute: (id: string) => void;\n onEdit: (id: string) => void;\n onDelete: (id: string) => void;\n canUpdate: boolean;\n canDelete: boolean;\n canExecute: boolean;\n executing?: boolean;\n /** Visual feedback state after execution completes */\n executionStatus?: 'idle' | 'executing' | 'success' | 'error';\n isDragOver?: boolean;\n selected?: boolean;\n onToggleSelect?: (checked: boolean) => void;\n previewMode?: boolean;\n}\n\nexport const VibeDeckButtonTile: FC<VibeDeckButtonTileProps> = ({\n button,\n onExecute,\n onEdit,\n onDelete,\n canUpdate,\n canDelete,\n canExecute,\n executing = false,\n executionStatus = 'idle',\n isDragOver = false,\n selected = false,\n onToggleSelect,\n previewMode = false,\n}) => {\n const colorClasses: Record<string, string> = {\n red: 'border-status-error-border/30 bg-status-error-bg-subtle',\n green: 'border-status-success-border/30 bg-status-success-bg-subtle',\n blue: 'border-accent-blue/30 bg-accent-blue-subtle',\n yellow: 'border-status-warning-border/30 bg-status-warning-bg-subtle',\n purple: 'border-accent-purple/30 bg-accent-purple-subtle',\n orange: 'border-status-warning-border/30 bg-status-warning-bg-subtle',\n cyan: 'border-accent-teal/30 bg-accent-teal-subtle',\n pink: 'border-accent-purple/30 bg-accent-purple-subtle',\n };\n\n const previewColorClasses: Record<string, string> = {\n red: 'border-status-error-border/40 bg-gradient-to-br from-status-error-bg/15 to-status-error-bg/5 hover:shadow-status-error-bg/20',\n green:\n 'border-status-success-border/40 bg-gradient-to-br from-status-success-bg/15 to-status-success-bg/5 hover:shadow-status-success-bg/20',\n blue: 'border-accent-blue/40 bg-gradient-to-br from-accent-blue/15 to-accent-blue/5 hover:shadow-accent-blue/20',\n yellow:\n 'border-status-warning-border/40 bg-gradient-to-br from-status-warning-bg/15 to-status-warning-bg/5 hover:shadow-status-warning-bg/20',\n purple:\n 'border-accent-purple/40 bg-gradient-to-br from-accent-purple/15 to-accent-purple/5 hover:shadow-accent-purple/20',\n orange:\n 'border-status-warning-border/40 bg-gradient-to-br from-status-warning-bg/15 to-status-warning-bg/5 hover:shadow-status-warning-bg/20',\n cyan: 'border-accent-teal/40 bg-gradient-to-br from-accent-teal/15 to-accent-teal/5 hover:shadow-accent-teal/20',\n pink: 'border-accent-purple/40 bg-gradient-to-br from-accent-purple/15 to-accent-purple/5 hover:shadow-accent-purple/20',\n };\n\n // Glass-button visual: frosted background + soft border + shadow that\n // intensifies on hover. Per the round-3 streamdeck redesign, both\n // preview and edit modes share the same base treatment so the deck\n // feels consistent — only the per-color tint differs.\n const glassBase =\n 'border-border-default bg-bg-elevated/80 backdrop-blur-md shadow-lg hover:border-border-focus hover:shadow-xl';\n const tileColor = previewMode\n ? button.color && previewColorClasses[button.color]\n ? `${previewColorClasses[button.color]} backdrop-blur-md shadow-lg hover:shadow-xl`\n : glassBase\n : button.color && colorClasses[button.color]\n ? `${colorClasses[button.color]} backdrop-blur-md shadow-md hover:shadow-lg`\n : glassBase;\n\n // Prefer action fields when linked, fall back to inline (deprecated) fields\n const effectiveActionType = button.action?.actionType || button.actionType;\n const effectiveCommand = button.action?.command ?? button.command;\n const effectiveScript = button.action?.script ?? null;\n const effectiveWebhookUrl = button.action?.webhookUrl ?? button.webhookUrl;\n const actionName = button.action?.displayName || button.action?.name || null;\n\n const isWebhook = effectiveActionType === 'WEBHOOK';\n const isScript = effectiveActionType === 'SCRIPT';\n const ActionIcon = isWebhook ? Globe : isScript ? FileCode : Terminal;\n const tooltip = isWebhook\n ? `${button.webhookMethod || 'POST'} ${effectiveWebhookUrl || ''}`\n : isScript\n ? `Script (${button.scriptInterpreter || 'bash'})${effectiveScript ? `: ${effectiveScript.slice(0, 60)}` : ''}`\n : `${effectiveCommand || ''}${button.keyboardShortcut ? ` (${button.keyboardShortcut})` : ''}`;\n\n // In preview mode, the entire tile is clickable to execute\n const handleTileClick = () => {\n if (previewMode && canExecute && !executing) {\n onExecute(button.id);\n }\n };\n\n // Status-dependent styles\n const statusRing =\n executionStatus === 'executing'\n ? 'ring-2 ring-action-primary-bg ring-offset-1'\n : executionStatus === 'success'\n ? 'ring-2 ring-status-success-border ring-offset-1'\n : executionStatus === 'error'\n ? 'ring-2 ring-status-error-border ring-offset-1'\n : '';\n\n const statusBorderOverride =\n executionStatus === 'executing'\n ? 'border-[var(--color-accent-soft)]'\n : executionStatus === 'success'\n ? 'border-status-success-border'\n : executionStatus === 'error'\n ? 'border-status-error-border'\n : '';\n\n // Calm hover + tap motion — drops the previous jumpy executing\n // `animate={{scale}}` loop. Per round-3 UX, the whole tile is the click\n // target so we apply the press-down motion at the wrapper level.\n const tileClickable = previewMode ? canExecute && !executing : canUpdate;\n\n return (\n <motion.div\n className={`relative group h-full ${statusRing} ${isDragOver ? 'ring-2 ring-action-primary-bg ring-offset-1' : ''} ${selected ? 'ring-2 ring-[var(--color-focus-ring)] ring-offset-1' : ''} ${tileClickable ? 'cursor-pointer' : ''} rounded-lg focus-visible:ring-2 focus-visible:ring-border-focus focus-visible:outline-none`}\n whileHover={tileClickable ? { scale: 1.03 } : undefined}\n whileTap={tileClickable ? { scale: 0.97 } : undefined}\n transition={{ duration: 0.15 }}\n >\n <div\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n (handleTileClick as (...a: unknown[]) => unknown)();\n }\n }}\n onClick={handleTileClick}\n className={`w-full h-full min-h-[80px] rounded-lg border-2 p-3 flex flex-col items-center justify-center gap-2 transition-all duration-200 ${tileColor} ${statusBorderOverride} ${executionStatus === 'executing' ? 'animate-pulse' : ''}`}\n title={tooltip}\n >\n {/* Top-left: webhook method or script interpreter badge */}\n {isWebhook && button.webhookMethod && (\n <span\n className={`absolute left-1.5 text-[9px] font-bold text-text-tertiary bg-bg-sunken rounded px-1 py-0.5 uppercase ${!previewMode && onToggleSelect ? 'top-8' : 'top-1.5'}`}\n >\n {button.webhookMethod}\n </span>\n )}\n {isScript && button.scriptInterpreter && (\n <span\n className={`absolute left-1.5 text-[9px] font-bold text-text-tertiary bg-bg-sunken rounded px-1 py-0.5 ${!previewMode && onToggleSelect ? 'top-8' : 'top-1.5'}`}\n >\n {button.scriptInterpreter}\n </span>\n )}\n\n {!previewMode && onToggleSelect && (\n <div\n className=\"absolute top-1.5 left-1.5 z-10\"\n onClick={(event) => event.stopPropagation()}\n >\n <SelectionCheckbox\n checked={selected}\n onChange={onToggleSelect}\n ariaLabel={`Select vibe deck button ${button.label}`}\n />\n </div>\n )}\n\n {/* Bottom-left: confirmation required warning */}\n {button.confirmationRequired && (\n <AlertTriangle\n size={10}\n className=\"absolute bottom-1.5 left-1.5 text-status-warning-text\"\n />\n )}\n\n <ActionIcon\n size={previewMode ? 24 : 20}\n className={previewMode ? 'text-text-primary' : 'text-text-secondary'}\n />\n <span\n className={`font-medium text-text-primary text-center leading-tight line-clamp-2 ${previewMode ? 'text-base' : 'text-sm'}`}\n >\n {button.label}\n </span>\n {actionName && (\n <span className=\"text-[10px] text-action-primary-bg font-medium truncate max-w-full px-1\">\n {actionName}\n </span>\n )}\n {button.category && (\n <span className=\"text-[10px] text-text-tertiary uppercase tracking-wider\">\n {button.category}\n </span>\n )}\n\n {/* Execution status indicator */}\n <AnimatePresence>\n {executionStatus === 'executing' && (\n <motion.div\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.8 }}\n className=\"absolute top-1.5 right-1.5 z-10\"\n >\n <div className=\"size-5 rounded-full bg-action-primary-bg flex items-center justify-center shadow-sm\">\n <Loader2 size={11} className=\"text-text-inverse animate-spin\" />\n </div>\n </motion.div>\n )}\n {executionStatus === 'success' && (\n <motion.div\n initial={{ opacity: 0, scale: 0.5 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.5 }}\n className=\"absolute top-1.5 right-1.5 z-10\"\n >\n <div className=\"size-5 rounded-full bg-status-success-bg flex items-center justify-center shadow-sm\">\n <Check size={11} className=\"text-text-inverse\" strokeWidth={3} />\n </div>\n </motion.div>\n )}\n {executionStatus === 'error' && (\n <motion.div\n initial={{ opacity: 0, scale: 0.5 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.5 }}\n className=\"absolute top-1.5 right-1.5 z-10\"\n >\n <div className=\"size-5 rounded-full bg-status-error-bg flex items-center justify-center shadow-sm\">\n <X size={11} className=\"text-text-inverse\" strokeWidth={3} />\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n\n {/* Preview mode: centered play overlay on hover */}\n {previewMode && canExecute && executionStatus !== 'executing' && (\n <div className=\"absolute inset-0 rounded-lg flex items-center justify-center opacity-0 group-hover:opacity-100 transition-opacity duration-200 bg-bg-elevated/40 backdrop-blur-[1px]\">\n <div className=\"size-10 rounded-full bg-status-success-bg-subtle flex items-center justify-center shadow-md\">\n <Play size={18} className=\"text-status-success-text ml-0.5\" />\n </div>\n </div>\n )}\n </div>\n\n {/* Prominent Play button — calm, centred-top, glass-styled.\n Round-3 redesign drops the jumpy scale loop and bumps the size\n so the action is obvious in edit mode without competing with\n the tile's drag handle on hover. */}\n {!previewMode && canExecute && (\n <motion.button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onExecute(button.id);\n }}\n disabled={executing}\n whileHover={{ scale: 1.05 }}\n whileTap={{ scale: 0.95 }}\n transition={{ duration: 0.15 }}\n className=\"absolute -top-3 left-1/2 -translate-x-1/2 size-14 rounded-full bg-action-primary-bg text-action-primary-text shadow-xl flex items-center justify-center disabled:opacity-50 disabled:cursor-not-allowed opacity-0 group-hover:opacity-100 focus-visible:opacity-100 transition-opacity duration-200 z-20\"\n title=\"Execute\"\n aria-label=\"Execute button\"\n >\n <Play size={20} className=\"ml-0.5\" />\n </motion.button>\n )}\n\n {/* Bottom-right: Edit / Delete — visible on hover in edit mode only */}\n {!previewMode && (canUpdate || canDelete) && (\n <div className=\"absolute bottom-0.5 right-0.5 flex gap-0.5 opacity-0 group-hover:opacity-100 transition-opacity\">\n {canUpdate && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onEdit(button.id);\n }}\n className=\"p-1 rounded bg-bg-elevated/80 hover:bg-bg-elevated text-text-tertiary hover:text-text-primary shadow-sm\"\n title=\"Edit\"\n >\n <Pencil size={12} />\n </button>\n )}\n {canDelete && (\n <button\n type=\"button\"\n onClick={(e) => {\n e.stopPropagation();\n onDelete(button.id);\n }}\n className=\"p-1 rounded bg-bg-elevated/80 hover:bg-bg-elevated text-text-tertiary hover:text-status-error-text shadow-sm\"\n title=\"Delete\"\n >\n <Trash2 size={12} />\n </button>\n )}\n </div>\n )}\n </motion.div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"VibeDeckExecutionLog.js","names":[],"sources":["../../../src/components/vibedeck/VibeDeckExecutionLog.tsx"],"sourcesContent":["import { type FC, useRef, useEffect } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport {\n Terminal,\n Globe,\n FileCode,\n Check,\n X,\n Loader2,\n Clock,\n ChevronDown,\n ChevronUp,\n Trash2,\n} from 'lucide-react';\nimport { useTr } from '../../shared/hooks/useTr';\n\nexport interface ExecutionLogEntry {\n id: string;\n buttonId: string;\n buttonLabel: string;\n actionType: 'COMMAND' | 'SCRIPT' | 'WEBHOOK';\n command?: string | null;\n status: 'pending' | 'running' | 'success' | 'error';\n output?: string | null;\n exitCode?: number | null;\n webhookStatusCode?: number | null;\n startedAt: Date;\n completedAt?: Date | null;\n error?: string | null;\n}\n\ninterface VibeDeckExecutionLogProps {\n entries: ExecutionLogEntry[];\n expanded: boolean;\n onToggleExpanded: () => void;\n onClear: () => void;\n}\n\nfunction formatDuration(start: Date, end?: Date | null): string {\n const ms = (end ? end.getTime() : Date.now()) - start.getTime();\n if (ms < 1000) return `${ms}ms`;\n if (ms < 60000) return `${(ms / 1000).toFixed(1)}s`;\n return `${Math.floor(ms / 60000)}m ${Math.floor((ms % 60000) / 1000)}s`;\n}\n\nfunction formatTime(date: Date): string {\n return date.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit', second: '2-digit' });\n}\n\nconst StatusIcon: FC<{ status: ExecutionLogEntry['status'] }> = ({ status }) => {\n switch (status) {\n case 'pending':\n return <Clock size={14} className=\"text-text-tertiary\" />;\n case 'running':\n return <Loader2 size={14} className=\"text-action-primary-bg animate-spin\" />;\n case 'success':\n return <Check size={14} className=\"text-status-success-text\" />;\n case 'error':\n return <X size={14} className=\"text-status-error-text\" />;\n }\n};\n\nconst ActionTypeIcon: FC<{ type: string }> = ({ type }) => {\n switch (type) {\n case 'WEBHOOK':\n return <Globe size={12} className=\"text-text-tertiary\" />;\n case 'SCRIPT':\n return <FileCode size={12} className=\"text-text-tertiary\" />;\n default:\n return <Terminal size={12} className=\"text-text-tertiary\" />;\n }\n};\n\nconst statusLabel: Record<string, string> = {\n pending: 'Pending',\n running: 'Running',\n success: 'Success',\n error: 'Failed',\n};\n\nconst statusBadgeClass: Record<string, string> = {\n pending: 'bg-bg-sunken text-text-tertiary',\n running: 'bg-[var(--color-accent-soft)] text-text-primary',\n success: 'bg-status-success-bg-subtle text-status-success-text',\n error: 'bg-status-error-bg-subtle text-status-error-text',\n};\n\nexport const VibeDeckExecutionLog: FC<VibeDeckExecutionLogProps> = ({\n entries,\n expanded,\n onToggleExpanded,\n onClear,\n}) => {\n const tr = useTr();\n const scrollRef = useRef<HTMLDivElement>(null);\n\n // Auto-scroll to bottom when new entries arrive\n useEffect(() => {\n if (scrollRef.current && expanded) {\n scrollRef.current.scrollTop = scrollRef.current.scrollHeight;\n }\n }, [entries.length, expanded]);\n\n if (entries.length === 0) return null;\n\n const runningCount = entries.filter((e) => e.status === 'running').length;\n const successCount = entries.filter((e) => e.status === 'success').length;\n const errorCount = entries.filter((e) => e.status === 'error').length;\n\n return (\n <div className=\"rounded-lg border border-border-default bg-bg-surface overflow-hidden\">\n {/* Header bar — always visible */}\n <button\n type=\"button\"\n onClick={onToggleExpanded}\n className=\"w-full flex items-center justify-between px-4 py-2.5 hover:bg-bg-sunken transition-colors\"\n >\n <div className=\"flex items-center gap-3\">\n <Terminal size={14} className=\"text-text-secondary\" />\n <span className=\"text-sm font-medium text-text-primary\">\n {tr('vibecontrols.vibedeck.executionLog.title', 'Execution Log')}\n </span>\n <div className=\"flex items-center gap-2\">\n {runningCount > 0 && (\n <span className=\"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-bold bg-[var(--color-accent-soft)] text-text-primary\">\n <Loader2 size={10} className=\"animate-spin\" />\n {runningCount}\n </span>\n )}\n {successCount > 0 && (\n <span className=\"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-bold bg-status-success-bg-subtle text-status-success-text\">\n <Check size={10} />\n {successCount}\n </span>\n )}\n {errorCount > 0 && (\n <span className=\"inline-flex items-center gap-1 px-1.5 py-0.5 rounded-full text-[10px] font-bold bg-status-error-bg-subtle text-status-error-text\">\n <X size={10} />\n {errorCount}\n </span>\n )}\n <span className=\"text-xs text-text-tertiary\">{entries.length} total</span>\n </div>\n </div>\n <div className=\"flex items-center gap-2\">\n {expanded && (\n <span\n role=\"button\"\n tabIndex={0}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onClear();\n }\n }}\n onClick={(e) => {\n e.stopPropagation();\n onClear();\n }}\n className=\"p-1 rounded hover:bg-bg-sunken text-text-tertiary hover:text-text-primary transition-colors\"\n title=\"Clear log\"\n >\n <Trash2 size={12} />\n </span>\n )}\n {expanded ? (\n <ChevronDown size={14} className=\"text-text-tertiary\" />\n ) : (\n <ChevronUp size={14} className=\"text-text-tertiary\" />\n )}\n </div>\n </button>\n\n {/* Log entries — expandable */}\n <AnimatePresence>\n {expanded && (\n <motion.div\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: 'auto', opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={{ duration: 0.2 }}\n className=\"overflow-hidden\"\n >\n <div className=\"border-t border-border-default\" />\n <div\n ref={scrollRef}\n className=\"max-h-[240px] overflow-y-auto divide-y divide-border-default/50\"\n >\n {entries.map((entry) => (\n <div\n key={entry.id}\n className={`px-4 py-2.5 flex items-start gap-3 text-sm transition-colors ${\n entry.status === 'running' ? 'bg-[var(--color-accent-soft)]' : ''\n }`}\n >\n {/* Status icon */}\n <div className=\"pt-0.5 shrink-0\">\n <StatusIcon status={entry.status} />\n </div>\n\n {/* Main content */}\n <div className=\"flex-1 min-w-0\">\n <div className=\"flex items-center gap-2\">\n <span className=\"font-medium text-text-primary truncate\">\n {entry.buttonLabel}\n </span>\n <span\n className={`inline-flex items-center px-1.5 py-0.5 rounded text-[10px] font-bold uppercase ${statusBadgeClass[entry.status]}`}\n >\n {statusLabel[entry.status]}\n </span>\n <span className=\"flex items-center gap-1 text-text-tertiary\">\n <ActionTypeIcon type={entry.actionType} />\n </span>\n </div>\n\n {/* Command or detail */}\n {entry.command && (\n <div className=\"mt-0.5 text-xs text-text-tertiary font-mono truncate\">\n {entry.command}\n </div>\n )}\n\n {/* Output (collapsed, show first line) */}\n {entry.output && (\n <pre className=\"mt-1 text-[11px] font-mono text-text-secondary bg-bg-sunken rounded px-2 py-1 max-h-16 overflow-y-auto whitespace-pre-wrap\">\n {entry.output}\n </pre>\n )}\n\n {/* Error message */}\n {entry.error && (\n <div className=\"mt-1 text-xs text-status-error-text font-mono\">\n {entry.error}\n </div>\n )}\n </div>\n\n {/* Timing */}\n <div className=\"shrink-0 text-right\">\n <div className=\"text-[10px] text-text-tertiary\">\n {formatTime(entry.startedAt)}\n </div>\n <div className=\"text-[10px] text-text-tertiary font-mono\">\n {formatDuration(entry.startedAt, entry.completedAt)}\n </div>\n {entry.exitCode != null && entry.exitCode !== 0 && (\n <div className=\"text-[10px] text-status-error-text font-mono\">\n exit {entry.exitCode}\n </div>\n )}\n {entry.webhookStatusCode != null && (\n <div\n className={`text-[10px] font-mono ${entry.webhookStatusCode >= 400 ? 'text-status-error-text' : 'text-text-tertiary'}`}\n >\n HTTP {entry.webhookStatusCode}\n </div>\n )}\n </div>\n </div>\n ))}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n};\n"],"mappings":"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"}
|