@agent-native/core 0.76.2 → 0.76.4
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/corpus/core/CHANGELOG.md +14 -0
- package/corpus/core/package.json +1 -1
- package/corpus/core/src/agent/durable-background.ts +8 -7
- package/corpus/core/src/client/AgentPanel.tsx +3 -3
- package/corpus/core/src/client/AgentTaskCard.tsx +2 -1
- package/corpus/core/src/client/AppearancePicker.tsx +1 -1
- package/corpus/core/src/client/AssistantChat.tsx +3 -3
- package/corpus/core/src/client/CommandMenu.tsx +4 -4
- package/corpus/core/src/client/ErrorBoundary.tsx +1 -1
- package/corpus/core/src/client/MultiTabAssistantChat.tsx +11 -11
- package/corpus/core/src/client/NewWorkspaceAppFlow.tsx +5 -5
- package/corpus/core/src/client/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/core/src/client/components/ui/sheet.tsx +1 -1
- package/corpus/core/src/client/composer/ComposerPlusMenu.tsx +6 -6
- package/corpus/core/src/client/composer/MentionPopover.tsx +4 -4
- package/corpus/core/src/client/composer/PastedTextChip.tsx +3 -3
- package/corpus/core/src/client/composer/PromptComposer.tsx +3 -3
- package/corpus/core/src/client/composer/TiptapComposer.tsx +16 -16
- package/corpus/core/src/client/guided-questions.tsx +6 -8
- package/corpus/core/src/client/i18n.tsx +2 -2
- package/corpus/core/src/client/integrations/IntegrationCard.tsx +2 -2
- package/corpus/core/src/client/integrations/IntegrationsPanel.tsx +4 -4
- package/corpus/core/src/client/notifications/NotificationsBell.tsx +3 -3
- package/corpus/core/src/client/onboarding/OnboardingBanner.tsx +3 -3
- package/corpus/core/src/client/onboarding/OnboardingPanel.tsx +17 -10
- package/corpus/core/src/client/org/OrgSwitcher.tsx +13 -11
- package/corpus/core/src/client/org/TeamPage.tsx +2 -2
- package/corpus/core/src/client/settings/AgentsSection.tsx +3 -3
- package/corpus/core/src/client/settings/AutomationsSection.tsx +3 -3
- package/corpus/core/src/client/settings/SecretsSection.tsx +2 -2
- package/corpus/core/src/client/settings/SettingsPanel.tsx +5 -7
- package/corpus/core/src/client/settings/SettingsSection.tsx +1 -1
- package/corpus/core/src/client/settings/UsageSection.tsx +3 -3
- package/corpus/core/src/client/settings/VoiceTranscriptionSection.tsx +3 -3
- package/corpus/core/src/client/sharing/ShareButton.tsx +7 -7
- package/corpus/core/src/client/sharing/ShareDialog.tsx +3 -3
- package/corpus/core/src/deploy/build.ts +2 -2
- package/corpus/core/src/styles/agent-conversation.css +10 -10
- package/corpus/core/src/styles/blocks.css +2 -2
- package/corpus/core/src/styles/rich-markdown-editor.css +2 -2
- package/corpus/templates/analytics/app/components/layout/MobileNav.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/calendar.tsx +6 -6
- package/corpus/templates/analytics/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/analytics/app/components/ui/command.tsx +2 -2
- package/corpus/templates/analytics/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/analytics/app/components/ui/date-picker.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/analytics/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/analytics/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/analytics/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/analytics/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/analytics/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/analytics/app/components/ui/select.tsx +3 -3
- package/corpus/templates/analytics/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/analytics/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/analytics/app/components/ui/table.tsx +2 -2
- package/corpus/templates/analytics/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/assets/app/components/layout/Layout.tsx +2 -2
- package/corpus/templates/assets/app/components/layout/Sidebar.tsx +12 -12
- package/corpus/templates/assets/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/assets/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/assets/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/assets/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/assets/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/assets/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/assets/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/assets/app/components/ui/select.tsx +3 -3
- package/corpus/templates/assets/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/assets/app/components/ui/table.tsx +2 -2
- package/corpus/templates/assets/app/routes/library.tsx +3 -3
- package/corpus/templates/assets/app/routes/settings.tsx +1 -1
- package/corpus/templates/brain/app/components/layout/Sidebar.tsx +5 -5
- package/corpus/templates/brain/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/brain/app/components/ui/select.tsx +3 -3
- package/corpus/templates/brain/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/brain/app/components/ui/table.tsx +2 -2
- package/corpus/templates/calendar/app/components/calendar/GoogleConnectBanner.tsx +6 -6
- package/corpus/templates/calendar/app/components/calendar/GoogleSetupWizard.tsx +3 -3
- package/corpus/templates/calendar/app/components/layout/Sidebar.tsx +11 -9
- package/corpus/templates/calendar/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/calendar/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/calendar/app/components/ui/command.tsx +2 -2
- package/corpus/templates/calendar/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/calendar/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/calendar/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/calendar/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/calendar/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/calendar/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/calendar/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/select.tsx +3 -3
- package/corpus/templates/calendar/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/calendar/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/calendar/app/components/ui/sonner.tsx +1 -1
- package/corpus/templates/calendar/app/components/ui/table.tsx +2 -2
- package/corpus/templates/calendar/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/calendar/app/pages/Settings.tsx +5 -5
- package/corpus/templates/chat/app/components/layout/Sidebar.tsx +9 -9
- package/corpus/templates/chat/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/chat/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/chat/app/components/ui/command.tsx +2 -2
- package/corpus/templates/chat/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/chat/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/chat/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/chat/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/chat/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/chat/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/chat/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/chat/app/components/ui/select.tsx +3 -3
- package/corpus/templates/chat/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/chat/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/chat/app/components/ui/table.tsx +2 -2
- package/corpus/templates/chat/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/clips/app/components/capture-install-options.tsx +3 -3
- package/corpus/templates/clips/app/components/editable-recording-title.tsx +1 -1
- package/corpus/templates/clips/app/components/library/bulk-action-toolbar.tsx +3 -3
- package/corpus/templates/clips/app/components/library/folder-tree.tsx +5 -5
- package/corpus/templates/clips/app/components/library/library-layout.tsx +3 -3
- package/corpus/templates/clips/app/components/library/organization-switcher.tsx +4 -4
- package/corpus/templates/clips/app/components/library/recording-card.tsx +11 -11
- package/corpus/templates/clips/app/components/library/search-bar.tsx +4 -4
- package/corpus/templates/clips/app/components/library/space-card.tsx +1 -1
- package/corpus/templates/clips/app/components/library/tag-input.tsx +1 -1
- package/corpus/templates/clips/app/components/meetings/quick-ask-sidebar.tsx +2 -2
- package/corpus/templates/clips/app/components/recorder/camera-visualizer.tsx +2 -2
- package/corpus/templates/clips/app/components/recorder/microphone-visualizer.tsx +1 -1
- package/corpus/templates/clips/app/components/recorder/pre-record-panel.tsx +4 -4
- package/corpus/templates/clips/app/components/recorder/storage-setup-card.tsx +1 -1
- package/corpus/templates/clips/app/components/sharing/share-ui.tsx +2 -2
- package/corpus/templates/clips/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/clips/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/clips/app/components/ui/command.tsx +2 -2
- package/corpus/templates/clips/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/clips/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/clips/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/clips/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/clips/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/clips/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/clips/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/clips/app/components/ui/select.tsx +3 -3
- package/corpus/templates/clips/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/clips/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/clips/app/components/ui/table.tsx +2 -2
- package/corpus/templates/clips/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/clips/app/components/workspace/branding-editor.tsx +1 -1
- package/corpus/templates/clips/app/components/workspace/insights-hub.tsx +2 -2
- package/corpus/templates/clips/app/components/workspace/invite-dialog.tsx +2 -2
- package/corpus/templates/clips/app/components/workspace/top-creators-table.tsx +6 -6
- package/corpus/templates/clips/app/components/workspace/top-videos-table.tsx +2 -2
- package/corpus/templates/clips/app/routes/_app.dictate.tsx +4 -4
- package/corpus/templates/clips/app/routes/_app.meetings._index.tsx +7 -7
- package/corpus/templates/clips/app/routes/_app.settings._index.tsx +1 -1
- package/corpus/templates/clips/app/routes/download.tsx +2 -2
- package/corpus/templates/clips/app/routes/invite.$token.tsx +2 -2
- package/corpus/templates/clips/app/routes/r.$recordingId.tsx +3 -3
- package/corpus/templates/clips/app/routes/record.tsx +5 -5
- package/corpus/templates/clips/app/routes/share.$shareId.tsx +7 -7
- package/corpus/templates/content/app/components/EmptyState.tsx +1 -1
- package/corpus/templates/content/app/components/editor/DocumentToolbar.tsx +17 -17
- package/corpus/templates/content/app/components/layout/Layout.tsx +2 -2
- package/corpus/templates/content/app/components/sidebar/DocumentSidebar.tsx +10 -9
- package/corpus/templates/content/app/components/sidebar/DocumentTreeItem.tsx +10 -6
- package/corpus/templates/content/app/components/sidebar/NotionButton.tsx +3 -3
- package/corpus/templates/content/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/content/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/content/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/content/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/content/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/content/app/components/ui/table.tsx +2 -2
- package/corpus/templates/content/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/design/app/components/layout/Layout.tsx +3 -3
- package/corpus/templates/design/app/components/layout/Sidebar.tsx +3 -3
- package/corpus/templates/design/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/design/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/design/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/design/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/design/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/design/app/components/ui/command.tsx +2 -2
- package/corpus/templates/design/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/design/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/design/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/design/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/design/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/design/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/design/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/design/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/design/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/design/app/components/ui/select.tsx +3 -3
- package/corpus/templates/design/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/design/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/design/app/components/ui/table.tsx +2 -2
- package/corpus/templates/design/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/design/app/pages/DesignSystems.tsx +6 -8
- package/corpus/templates/design/app/pages/Index.tsx +8 -8
- package/corpus/templates/design/app/pages/NotFound.tsx +1 -1
- package/corpus/templates/design/app/pages/Templates.tsx +2 -2
- package/corpus/templates/forms/app/components/layout/Sidebar.tsx +3 -3
- package/corpus/templates/forms/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/calendar.tsx +9 -6
- package/corpus/templates/forms/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/forms/app/components/ui/command.tsx +2 -2
- package/corpus/templates/forms/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/forms/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/forms/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/forms/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/forms/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/forms/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/forms/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/forms/app/components/ui/select.tsx +3 -3
- package/corpus/templates/forms/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/forms/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/forms/app/components/ui/table.tsx +2 -2
- package/corpus/templates/forms/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/forms/app/pages/FormBuilderPage.tsx +18 -18
- package/corpus/templates/forms/app/pages/FormsListPage.tsx +9 -9
- package/corpus/templates/macros/app/components/layout/AppLayout.tsx +4 -4
- package/corpus/templates/macros/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/command.tsx +2 -2
- package/corpus/templates/macros/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/macros/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/macros/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/macros/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/macros/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/macros/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/macros/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/macros/app/components/ui/select.tsx +3 -3
- package/corpus/templates/macros/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/macros/app/components/ui/table.tsx +2 -2
- package/corpus/templates/macros/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/macros/app/routes/_index.tsx +2 -2
- package/corpus/templates/macros/app/routes/analytics.tsx +1 -1
- package/corpus/templates/mail/app/components/GoogleConnectBanner.tsx +6 -6
- package/corpus/templates/mail/app/components/email/AttachmentStrip.tsx +2 -2
- package/corpus/templates/mail/app/components/email/EmailListItem.tsx +5 -5
- package/corpus/templates/mail/app/components/email/IntegrationsSidebar.tsx +5 -5
- package/corpus/templates/mail/app/components/email/MobileActionBar.tsx +3 -3
- package/corpus/templates/mail/app/components/layout/AppLayout.tsx +10 -10
- package/corpus/templates/mail/app/components/layout/CommandPalette.tsx +1 -1
- package/corpus/templates/mail/app/components/layout/SearchBar.tsx +3 -3
- package/corpus/templates/mail/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/calendar.tsx +4 -4
- package/corpus/templates/mail/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/mail/app/components/ui/command.tsx +2 -2
- package/corpus/templates/mail/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/mail/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/mail/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/mail/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/mail/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/mail/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/mail/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/mail/app/components/ui/select.tsx +3 -3
- package/corpus/templates/mail/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/mail/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/mail/app/components/ui/sonner.tsx +2 -2
- package/corpus/templates/mail/app/components/ui/table.tsx +2 -2
- package/corpus/templates/mail/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/plan/app/components/layout/Sidebar.tsx +10 -10
- package/corpus/templates/plan/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/plan/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/plan/app/components/ui/command.tsx +2 -2
- package/corpus/templates/plan/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/plan/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/plan/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/plan/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/plan/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/plan/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/plan/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/plan/app/components/ui/select.tsx +3 -3
- package/corpus/templates/plan/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/plan/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/plan/app/components/ui/table.tsx +2 -2
- package/corpus/templates/plan/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/slides/app/components/layout/Layout.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/slides/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/slides/app/components/ui/command.tsx +2 -2
- package/corpus/templates/slides/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/slides/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/slides/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/slides/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/slides/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/slides/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/slides/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/slides/app/components/ui/select.tsx +3 -3
- package/corpus/templates/slides/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/slides/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/slides/app/components/ui/table.tsx +2 -2
- package/corpus/templates/slides/app/components/ui/toast.tsx +3 -3
- package/corpus/templates/videos/app/components/ui/alert-dialog.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/alert.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/breadcrumb.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/calendar.tsx +5 -5
- package/corpus/templates/videos/app/components/ui/carousel.tsx +6 -6
- package/corpus/templates/videos/app/components/ui/command.tsx +2 -2
- package/corpus/templates/videos/app/components/ui/context-menu.tsx +9 -9
- package/corpus/templates/videos/app/components/ui/dialog.tsx +2 -2
- package/corpus/templates/videos/app/components/ui/drawer.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/dropdown-menu.tsx +9 -9
- package/corpus/templates/videos/app/components/ui/input-otp.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/menubar.tsx +9 -9
- package/corpus/templates/videos/app/components/ui/navigation-menu.tsx +3 -3
- package/corpus/templates/videos/app/components/ui/pagination.tsx +4 -4
- package/corpus/templates/videos/app/components/ui/scroll-area.tsx +1 -1
- package/corpus/templates/videos/app/components/ui/select.tsx +3 -3
- package/corpus/templates/videos/app/components/ui/sheet.tsx +2 -2
- package/corpus/templates/videos/app/components/ui/sidebar.tsx +6 -6
- package/corpus/templates/videos/app/components/ui/table.tsx +2 -2
- package/corpus/templates/videos/app/components/ui/toast.tsx +3 -3
- package/dist/agent/durable-background.d.ts +2 -2
- package/dist/agent/durable-background.d.ts.map +1 -1
- package/dist/agent/durable-background.js +8 -7
- package/dist/agent/durable-background.js.map +1 -1
- package/dist/client/AgentPanel.js +3 -3
- package/dist/client/AgentPanel.js.map +1 -1
- package/dist/client/AgentTaskCard.d.ts.map +1 -1
- package/dist/client/AgentTaskCard.js +1 -1
- package/dist/client/AgentTaskCard.js.map +1 -1
- package/dist/client/AppearancePicker.js +1 -1
- package/dist/client/AppearancePicker.js.map +1 -1
- package/dist/client/AssistantChat.js +3 -3
- package/dist/client/AssistantChat.js.map +1 -1
- package/dist/client/CommandMenu.js +4 -4
- package/dist/client/CommandMenu.js.map +1 -1
- package/dist/client/ErrorBoundary.js +1 -1
- package/dist/client/ErrorBoundary.js.map +1 -1
- package/dist/client/MultiTabAssistantChat.js +9 -9
- package/dist/client/MultiTabAssistantChat.js.map +1 -1
- package/dist/client/NewWorkspaceAppFlow.js +5 -5
- package/dist/client/NewWorkspaceAppFlow.js.map +1 -1
- package/dist/client/components/ui/dropdown-menu.js +6 -6
- package/dist/client/components/ui/dropdown-menu.js.map +1 -1
- package/dist/client/components/ui/sheet.js +1 -1
- package/dist/client/components/ui/sheet.js.map +1 -1
- package/dist/client/composer/ComposerPlusMenu.js +5 -5
- package/dist/client/composer/ComposerPlusMenu.js.map +1 -1
- package/dist/client/composer/MentionPopover.js +4 -4
- package/dist/client/composer/MentionPopover.js.map +1 -1
- package/dist/client/composer/PastedTextChip.js +2 -2
- package/dist/client/composer/PastedTextChip.js.map +1 -1
- package/dist/client/composer/PromptComposer.js +3 -3
- package/dist/client/composer/PromptComposer.js.map +1 -1
- package/dist/client/composer/TiptapComposer.js +12 -12
- package/dist/client/composer/TiptapComposer.js.map +1 -1
- package/dist/client/guided-questions.d.ts.map +1 -1
- package/dist/client/guided-questions.js +5 -5
- package/dist/client/guided-questions.js.map +1 -1
- package/dist/client/i18n.js +2 -2
- package/dist/client/i18n.js.map +1 -1
- package/dist/client/integrations/IntegrationCard.js +1 -1
- package/dist/client/integrations/IntegrationCard.js.map +1 -1
- package/dist/client/integrations/IntegrationsPanel.js +4 -4
- package/dist/client/integrations/IntegrationsPanel.js.map +1 -1
- package/dist/client/notifications/NotificationsBell.js +3 -3
- package/dist/client/notifications/NotificationsBell.js.map +1 -1
- package/dist/client/onboarding/OnboardingBanner.js +3 -3
- package/dist/client/onboarding/OnboardingBanner.js.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.d.ts.map +1 -1
- package/dist/client/onboarding/OnboardingPanel.js +15 -10
- package/dist/client/onboarding/OnboardingPanel.js.map +1 -1
- package/dist/client/org/OrgSwitcher.d.ts.map +1 -1
- package/dist/client/org/OrgSwitcher.js +7 -7
- package/dist/client/org/OrgSwitcher.js.map +1 -1
- package/dist/client/org/TeamPage.js +2 -2
- package/dist/client/org/TeamPage.js.map +1 -1
- package/dist/client/settings/AgentsSection.js +3 -3
- package/dist/client/settings/AgentsSection.js.map +1 -1
- package/dist/client/settings/AutomationsSection.js +2 -2
- package/dist/client/settings/AutomationsSection.js.map +1 -1
- package/dist/client/settings/SecretsSection.js +2 -2
- package/dist/client/settings/SecretsSection.js.map +1 -1
- package/dist/client/settings/SettingsPanel.d.ts.map +1 -1
- package/dist/client/settings/SettingsPanel.js +4 -4
- package/dist/client/settings/SettingsPanel.js.map +1 -1
- package/dist/client/settings/SettingsSection.js +1 -1
- package/dist/client/settings/SettingsSection.js.map +1 -1
- package/dist/client/settings/UsageSection.js +2 -2
- package/dist/client/settings/UsageSection.js.map +1 -1
- package/dist/client/settings/VoiceTranscriptionSection.js +3 -3
- package/dist/client/settings/VoiceTranscriptionSection.js.map +1 -1
- package/dist/client/sharing/ShareButton.js +6 -6
- package/dist/client/sharing/ShareButton.js.map +1 -1
- package/dist/client/sharing/ShareDialog.js +3 -3
- package/dist/client/sharing/ShareDialog.js.map +1 -1
- package/dist/deploy/build.js +2 -2
- package/dist/deploy/build.js.map +1 -1
- package/dist/styles/agent-conversation.css +10 -10
- package/dist/styles/blocks.css +2 -2
- package/dist/styles/rich-markdown-editor.css +2 -2
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentTaskCard.d.ts","sourceRoot":"","sources":["../../src/client/AgentTaskCard.tsx"],"names":[],"mappings":"AAeA,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,MAAM,GACP,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"AgentTaskCard.d.ts","sourceRoot":"","sources":["../../src/client/AgentTaskCard.tsx"],"names":[],"mappings":"AAeA,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,MAAM,GACP,EAAE,kBAAkB,2CAgPpB"}
|
|
@@ -142,7 +142,7 @@ export function AgentTaskCard({ taskId, threadId, description, onOpen, }) {
|
|
|
142
142
|
? "border-destructive/30"
|
|
143
143
|
: isComplete
|
|
144
144
|
? "border-emerald-500/20"
|
|
145
|
-
: "border-border"), children: [_jsxs("button", { type: "button", "aria-expanded": expanded, className: "flex w-full items-center gap-2 px-3 py-2 text-
|
|
145
|
+
: "border-border"), children: [_jsxs("button", { type: "button", "aria-expanded": expanded, className: "flex w-full items-center gap-2 px-3 py-2 text-start transition-colors hover:bg-muted/45", onClick: () => setExpanded(!expanded), children: [_jsxs("span", { className: "inline-flex h-5 shrink-0 items-center gap-1 rounded-md border border-border/60 bg-background/70 px-1.5 text-[10px] font-medium text-muted-foreground", children: [_jsx(IconSubtask, { className: "h-3 w-3" }), "Sub-agent"] }), _jsx("span", { className: "min-w-0 flex-1 truncate text-xs font-medium text-foreground", children: taskTitle }), _jsxs("span", { className: statusClassName, children: [isRunning ? (_jsx(IconLoader2, { className: "h-3 w-3 animate-spin" })) : isError ? (_jsx(IconAlertCircle, { className: "h-3 w-3" })) : (_jsx(IconCheck, { className: "h-3 w-3" })), statusLabel] }), _jsx(IconChevronRight, { className: cn("h-3 w-3 shrink-0 text-muted-foreground/40 transition-transform duration-150", expanded && "rotate-90", "rtl:-scale-x-100") })] }), expanded && isRunning && currentStepText && (_jsxs("div", { className: "flex gap-1.5 border-t border-border/60 px-3 py-1.5 text-[11px] text-muted-foreground", children: [_jsx("span", { className: "shrink-0 font-medium text-foreground/70", children: "Now:" }), _jsx("span", { className: "min-w-0 break-words", children: currentStepText })] })), expanded && hasContent && (_jsx("div", { className: "px-3 pb-2 pt-1", children: _jsx("div", { ref: previewRef, className: "agent-markdown prose prose-sm prose-invert max-h-48 max-w-none overflow-y-auto break-words rounded-md border border-border/50 bg-muted/25 px-3 py-2 text-xs text-muted-foreground", children: _jsx(ReactMarkdown, { remarkPlugins: [remarkGfm], children: displayText.length > 800
|
|
146
146
|
? "..." + displayText.slice(-800)
|
|
147
147
|
: displayText }) }) })), expanded && (_jsxs("div", { className: "flex items-center justify-between gap-2 px-3 pb-2", children: [_jsx("span", { className: "min-w-0 flex-1 truncate text-[10px] text-muted-foreground/60", children: !hasContent ? emptyMessage : "" }), _jsxs("div", { className: "flex shrink-0 items-center gap-1", children: [isRunning && (_jsxs("button", { onClick: handleStop, className: "inline-flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground hover:bg-muted hover:text-destructive", "aria-label": "Stop sub-agent", children: [_jsx(IconPlayerStop, { className: "h-3 w-3" }), "Stop"] })), _jsxs("button", { onClick: handleOpen, className: "inline-flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground hover:bg-muted hover:text-foreground", children: ["Open thread", _jsx(IconExternalLink, { className: "h-3 w-3" })] })] })] }))] }));
|
|
148
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentTaskCard.js","sourceRoot":"","sources":["../../src/client/AgentTaskCard.tsx"],"names":[],"mappings":";AAAA,OAAc,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AACxE,OAAO,aAAa,MAAM,gBAAgB,CAAC;AAC3C,OAAO,SAAS,MAAM,YAAY,CAAC;AACnC,OAAO,EACL,WAAW,EACX,SAAS,EACT,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,WAAW,GACZ,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAShD;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,EAC5B,MAAM,EACN,QAAQ,EACR,WAAW,EACX,MAAM,GACa;IACnB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,GAAG,QAAQ,CAClC,SAAS,CACV,CAAC;IACF,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACnD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE;QACb,SAAS,WAAW,CAAC,CAAQ;YAC3B,MAAM,MAAM,GAAI,CAAiB,CAAC,MAAM,CAAC;YACzC,IAAI,CAAC,MAAM,EAAE,MAAM,IAAI,MAAM,CAAC,MAAM,KAAK,MAAM;gBAAE,OAAO;YAExD,IAAI,MAAM,CAAC,IAAI,KAAK,mBAAmB,EAAE,CAAC;gBACxC,IAAI,MAAM,CAAC,OAAO,IAAI,IAAI;oBAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBACvD,IAAI,MAAM,CAAC,WAAW,IAAI,IAAI;oBAAE,cAAc,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;YACrE,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,qBAAqB,EAAE,CAAC;gBACjD,SAAS,CAAC,WAAW,CAAC,CAAC;gBACvB,IAAI,MAAM,CAAC,OAAO;oBAAE,UAAU,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC/C,cAAc,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;iBAAM,IAAI,MAAM,CAAC,IAAI,KAAK,YAAY,IAAI,MAAM,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;gBACvE,SAAS,CAAC,SAAS,CAAC,CAAC;gBACrB,cAAc,CAAC,EAAE,CAAC,CAAC;YACrB,CAAC;QACH,CAAC;QAED,MAAM,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;QACzD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;IAC3E,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,2EAA2E;IAC3E,uEAAuE;IACvE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,MAAM,KAAK,SAAS;YAAE,OAAO;QACjC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,MAAM,IAAI,GAAG,KAAK,IAAI,EAAE;YACtB,OAAO,CAAC,OAAO,EAAE,CAAC;gBAChB,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,CAAC;gBAC9C,IAAI,OAAO;oBAAE,MAAM;gBACnB,IAAI,CAAC;oBACH,MAAM,GAAG,GAAG,MAAM,KAAK,CACrB,eAAe,CACb,+CAA+C,MAAM,EAAE,CACxD,CACF,CAAC;oBACF,IAAI,CAAC,GAAG,CAAC,EAAE;wBAAE,SAAS;oBACtB,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,IAAI,EAAE,CAAC;oBAC9B,4DAA4D;oBAC5D,MAAM,IAAI,GAAG,IAAI,EAAE,KAAK,IAAI,IAAI,CAAC;oBACjC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM;wBAAE,SAAS;oBACpC,IAAI,IAAI,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;wBAChC,SAAS,CAAC,WAAW,CAAC,CAAC;wBACvB,IAAI,IAAI,CAAC,OAAO;4BAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC3C,IAAI,IAAI,CAAC,OAAO;4BAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC3C,cAAc,CAAC,EAAE,CAAC,CAAC;wBACnB,MAAM;oBACR,CAAC;yBAAM,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;wBACrC,SAAS,CAAC,SAAS,CAAC,CAAC;wBACrB,IAAI,IAAI,CAAC,OAAO;4BAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC3C,cAAc,CAAC,EAAE,CAAC,CAAC;wBACnB,MAAM;oBACR,CAAC;yBAAM,CAAC;wBACN,sDAAsD;wBACtD,IAAI,IAAI,CAAC,OAAO;4BAAE,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;wBAC3C,IAAI,IAAI,CAAC,WAAW;4BAAE,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;oBACzD,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,2BAA2B;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC,CAAC;QACF,IAAI,EAAE,CAAC;QACP,OAAO,GAAG,EAAE;YACV,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IAE/B,gCAAgC;IAChC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,CAAC,OAAO,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YAC/C,UAAU,CAAC,OAAO,CAAC,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC;QACjE,CAAC;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;IAEtB,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,CAAmB,EAAE,EAAE;QACtB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC;IACrB,CAAC,EACD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,KAAK,EAAE,CAAmB,EAAE,EAAE;QAC5B,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,0CAA0C;QAC1C,SAAS,CAAC,SAAS,CAAC,CAAC;QACrB,cAAc,CAAC,EAAE,CAAC,CAAC;QACnB,IAAI,CAAC;YACH,MAAM,KAAK,CACT,eAAe,CACb,2CAA2C,MAAM,OAAO,CACzD,EACD;gBACE,MAAM,EAAE,MAAM;gBACd,OAAO,EAAE,EAAE,qBAAqB,EAAE,GAAG,EAAE;aACxC,CACF,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;IACH,CAAC,EACD,CAAC,MAAM,CAAC,CACT,CAAC;IAEF,MAAM,SAAS,GAAG,MAAM,KAAK,SAAS,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,KAAK,WAAW,CAAC;IAC1C,MAAM,OAAO,GAAG,MAAM,KAAK,SAAS,CAAC;IAErC,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,EAAE,IAAI,MAAM,CAAC;IAC/C,MAAM,eAAe,GAAG,WAAW,CAAC,IAAI,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;IACvE,MAAM,eAAe,GAAG,EAAE,CACxB,uFAAuF,EACvF,OAAO;QACL,CAAC,CAAC,oCAAoC;QACtC,CAAC,CAAC,UAAU;YACV,CAAC,CAAC,0DAA0D;YAC5D,CAAC,CAAC,gCAAgC,CACvC,CAAC;IAEF,MAAM,WAAW,GAAG,UAAU,IAAI,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;IAC9D,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,GAAG,CAAC,CAAC;IAC1C,MAAM,YAAY,GAAG,SAAS;QAC5B,CAAC,CAAC,qBAAqB;QACvB,CAAC,CAAC,OAAO;YACP,CAAC,CAAC,sBAAsB;YACxB,CAAC,CAAC,sBAAsB,CAAC;IAE7B,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,2EAA2E,EAC3E,OAAO;YACL,CAAC,CAAC,uBAAuB;YACzB,CAAC,CAAC,UAAU;gBACV,CAAC,CAAC,uBAAuB;gBACzB,CAAC,CAAC,eAAe,CACtB,aAGD,kBACE,IAAI,EAAC,QAAQ,mBACE,QAAQ,EACvB,SAAS,EAAC,wFAAwF,EAClG,OAAO,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,aAErC,gBAAM,SAAS,EAAC,sJAAsJ,aACpK,KAAC,WAAW,IAAC,SAAS,EAAC,SAAS,GAAG,iBAE9B,EAEP,eAAM,SAAS,EAAC,6DAA6D,YAC1E,SAAS,GACL,EAEP,gBAAM,SAAS,EAAE,eAAe,aAC7B,SAAS,CAAC,CAAC,CAAC,CACX,KAAC,WAAW,IAAC,SAAS,EAAC,sBAAsB,GAAG,CACjD,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,KAAC,eAAe,IAAC,SAAS,EAAC,SAAS,GAAG,CACxC,CAAC,CAAC,CAAC,CACF,KAAC,SAAS,IAAC,SAAS,EAAC,SAAS,GAAG,CAClC,EACA,WAAW,IACP,EAEP,KAAC,gBAAgB,IACf,SAAS,EAAE,EAAE,CACX,6EAA6E,EAC7E,QAAQ,IAAI,WAAW,CACxB,GACD,IACK,EAER,QAAQ,IAAI,SAAS,IAAI,eAAe,IAAI,CAC3C,eAAK,SAAS,EAAC,sFAAsF,aACnG,eAAM,SAAS,EAAC,yCAAyC,qBAAY,EACrE,eAAM,SAAS,EAAC,qBAAqB,YAAE,eAAe,GAAQ,IAC1D,CACP,EAGA,QAAQ,IAAI,UAAU,IAAI,CACzB,cAAK,SAAS,EAAC,gBAAgB,YAC7B,cACE,GAAG,EAAE,UAAU,EACf,SAAS,EAAC,mLAAmL,YAE7L,KAAC,aAAa,IAAC,aAAa,EAAE,CAAC,SAAS,CAAC,YACtC,WAAW,CAAC,MAAM,GAAG,GAAG;4BACvB,CAAC,CAAC,KAAK,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC;4BACjC,CAAC,CAAC,WAAW,GACD,GACZ,GACF,CACP,EAGA,QAAQ,IAAI,CACX,eAAK,SAAS,EAAC,mDAAmD,aAChE,eAAM,SAAS,EAAC,8DAA8D,YAC3E,CAAC,UAAU,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,GAC3B,EACP,eAAK,SAAS,EAAC,kCAAkC,aAC9C,SAAS,IAAI,CACZ,kBACE,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,wJAAwJ,gBACvJ,gBAAgB,aAE3B,KAAC,cAAc,IAAC,SAAS,EAAC,SAAS,GAAG,YAE/B,CACV,EACD,kBACE,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,uJAAuJ,4BAGjK,KAAC,gBAAgB,IAAC,SAAS,EAAC,SAAS,GAAG,IACjC,IACL,IACF,CACP,IACG,CACP,CAAC;AACJ,CAAC","sourcesContent":["import React, { useState, useEffect, useRef, useCallback } from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\nimport {\n IconLoader2,\n IconCheck,\n IconChevronRight,\n IconExternalLink,\n IconAlertCircle,\n IconPlayerStop,\n IconSubtask,\n} from \"@tabler/icons-react\";\nimport { cn } from \"./utils.js\";\nimport { agentNativePath } from \"./api-path.js\";\n\nexport interface AgentTaskCardProps {\n taskId: string;\n threadId: string;\n description: string;\n onOpen?: (threadId: string) => void;\n}\n\n/**\n * Rich preview card for a sub-agent task. Listens for agent-task-event\n * CustomEvents to update its state in real-time.\n */\nexport function AgentTaskCard({\n taskId,\n threadId,\n description,\n onOpen,\n}: AgentTaskCardProps) {\n const [expanded, setExpanded] = useState(true);\n const [status, setStatus] = useState<\"running\" | \"completed\" | \"errored\">(\n \"running\",\n );\n const [preview, setPreview] = useState(\"\");\n const [currentStep, setCurrentStep] = useState(\"\");\n const [summary, setSummary] = useState(\"\");\n const previewRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n function handleEvent(e: Event) {\n const detail = (e as CustomEvent).detail;\n if (!detail?.taskId || detail.taskId !== taskId) return;\n\n if (detail.type === \"agent_task_update\") {\n if (detail.preview != null) setPreview(detail.preview);\n if (detail.currentStep != null) setCurrentStep(detail.currentStep);\n } else if (detail.type === \"agent_task_complete\") {\n setStatus(\"completed\");\n if (detail.summary) setSummary(detail.summary);\n setCurrentStep(\"\");\n } else if (detail.type === \"agent_task\" && detail.status === \"errored\") {\n setStatus(\"errored\");\n setCurrentStep(\"\");\n }\n }\n\n window.addEventListener(\"agent-task-event\", handleEvent);\n return () => window.removeEventListener(\"agent-task-event\", handleEvent);\n }, [taskId]);\n\n // Poll for task status when running — the main chat's SSE stream may close\n // before the sub-agent completes, so SSE events alone aren't reliable.\n useEffect(() => {\n if (status !== \"running\") return;\n let stopped = false;\n const poll = async () => {\n while (!stopped) {\n await new Promise((r) => setTimeout(r, 3000));\n if (stopped) break;\n try {\n const res = await fetch(\n agentNativePath(\n `/_agent-native/application-state/agent-task:${taskId}`,\n ),\n );\n if (!res.ok) continue;\n const data = await res.json();\n // The HTTP handler returns the value directly (not wrapped)\n const task = data?.value ?? data;\n if (!task || !task.status) continue;\n if (task.status === \"completed\") {\n setStatus(\"completed\");\n if (task.summary) setSummary(task.summary);\n if (task.preview) setPreview(task.preview);\n setCurrentStep(\"\");\n break;\n } else if (task.status === \"errored\") {\n setStatus(\"errored\");\n if (task.summary) setSummary(task.summary);\n setCurrentStep(\"\");\n break;\n } else {\n // Still running — update preview from persisted state\n if (task.preview) setPreview(task.preview);\n if (task.currentStep) setCurrentStep(task.currentStep);\n }\n } catch {\n // Polling error — continue\n }\n }\n };\n poll();\n return () => {\n stopped = true;\n };\n }, [status, taskId, threadId]);\n\n // Auto-scroll preview to bottom\n useEffect(() => {\n if (previewRef.current && status === \"running\") {\n previewRef.current.scrollTop = previewRef.current.scrollHeight;\n }\n }, [preview, status]);\n\n const handleOpen = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n onOpen?.(threadId);\n },\n [onOpen, threadId],\n );\n\n const handleStop = useCallback(\n async (e: React.MouseEvent) => {\n e.stopPropagation();\n // Optimistic UI: mark stopped immediately\n setStatus(\"errored\");\n setCurrentStep(\"\");\n try {\n await fetch(\n agentNativePath(\n `/_agent-native/agent-chat/runs/run-task-${taskId}/stop`,\n ),\n {\n method: \"POST\",\n headers: { \"X-Agent-Native-CSRF\": \"1\" },\n },\n );\n } catch {\n // best-effort\n }\n },\n [taskId],\n );\n\n const isRunning = status === \"running\";\n const isComplete = status === \"completed\";\n const isError = status === \"errored\";\n\n const taskTitle = description.trim() || \"Task\";\n const currentStepText = currentStep.trim();\n const statusLabel = isRunning ? \"Running\" : isError ? \"Error\" : \"Done\";\n const statusClassName = cn(\n \"inline-flex h-5 shrink-0 items-center gap-1 rounded-md px-1.5 text-[10px] font-medium\",\n isError\n ? \"bg-destructive/10 text-destructive\"\n : isComplete\n ? \"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400\"\n : \"bg-muted text-muted-foreground\",\n );\n\n const displayText = isComplete && summary ? summary : preview;\n const hasContent = displayText.length > 0;\n const emptyMessage = isRunning\n ? \"Waiting for updates\"\n : isError\n ? \"No error details yet\"\n : \"No summary available\";\n\n return (\n <div\n className={cn(\n \"my-2 overflow-hidden rounded-lg border bg-background/50 transition-colors\",\n isError\n ? \"border-destructive/30\"\n : isComplete\n ? \"border-emerald-500/20\"\n : \"border-border\",\n )}\n >\n {/* Header */}\n <button\n type=\"button\"\n aria-expanded={expanded}\n className=\"flex w-full items-center gap-2 px-3 py-2 text-left transition-colors hover:bg-muted/45\"\n onClick={() => setExpanded(!expanded)}\n >\n <span className=\"inline-flex h-5 shrink-0 items-center gap-1 rounded-md border border-border/60 bg-background/70 px-1.5 text-[10px] font-medium text-muted-foreground\">\n <IconSubtask className=\"h-3 w-3\" />\n Sub-agent\n </span>\n\n <span className=\"min-w-0 flex-1 truncate text-xs font-medium text-foreground\">\n {taskTitle}\n </span>\n\n <span className={statusClassName}>\n {isRunning ? (\n <IconLoader2 className=\"h-3 w-3 animate-spin\" />\n ) : isError ? (\n <IconAlertCircle className=\"h-3 w-3\" />\n ) : (\n <IconCheck className=\"h-3 w-3\" />\n )}\n {statusLabel}\n </span>\n\n <IconChevronRight\n className={cn(\n \"h-3 w-3 shrink-0 text-muted-foreground/40 transition-transform duration-150\",\n expanded && \"rotate-90\",\n )}\n />\n </button>\n\n {expanded && isRunning && currentStepText && (\n <div className=\"flex gap-1.5 border-t border-border/60 px-3 py-1.5 text-[11px] text-muted-foreground\">\n <span className=\"shrink-0 font-medium text-foreground/70\">Now:</span>\n <span className=\"min-w-0 break-words\">{currentStepText}</span>\n </div>\n )}\n\n {/* Preview content */}\n {expanded && hasContent && (\n <div className=\"px-3 pb-2 pt-1\">\n <div\n ref={previewRef}\n className=\"agent-markdown prose prose-sm prose-invert max-h-48 max-w-none overflow-y-auto break-words rounded-md border border-border/50 bg-muted/25 px-3 py-2 text-xs text-muted-foreground\"\n >\n <ReactMarkdown remarkPlugins={[remarkGfm]}>\n {displayText.length > 800\n ? \"...\" + displayText.slice(-800)\n : displayText}\n </ReactMarkdown>\n </div>\n </div>\n )}\n\n {/* Footer with Open / Stop buttons */}\n {expanded && (\n <div className=\"flex items-center justify-between gap-2 px-3 pb-2\">\n <span className=\"min-w-0 flex-1 truncate text-[10px] text-muted-foreground/60\">\n {!hasContent ? emptyMessage : \"\"}\n </span>\n <div className=\"flex shrink-0 items-center gap-1\">\n {isRunning && (\n <button\n onClick={handleStop}\n className=\"inline-flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground hover:bg-muted hover:text-destructive\"\n aria-label=\"Stop sub-agent\"\n >\n <IconPlayerStop className=\"h-3 w-3\" />\n Stop\n </button>\n )}\n <button\n onClick={handleOpen}\n className=\"inline-flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground hover:bg-muted hover:text-foreground\"\n >\n Open thread\n <IconExternalLink className=\"h-3 w-3\" />\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"file":"AgentTaskCard.js","sourceRoot":"","sources":["../../src/client/AgentTaskCard.tsx"],"names":[],"mappings":"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","sourcesContent":["import React, { useState, useEffect, useRef, useCallback } from \"react\";\nimport ReactMarkdown from \"react-markdown\";\nimport remarkGfm from \"remark-gfm\";\nimport {\n IconLoader2,\n IconCheck,\n IconChevronRight,\n IconExternalLink,\n IconAlertCircle,\n IconPlayerStop,\n IconSubtask,\n} from \"@tabler/icons-react\";\nimport { cn } from \"./utils.js\";\nimport { agentNativePath } from \"./api-path.js\";\n\nexport interface AgentTaskCardProps {\n taskId: string;\n threadId: string;\n description: string;\n onOpen?: (threadId: string) => void;\n}\n\n/**\n * Rich preview card for a sub-agent task. Listens for agent-task-event\n * CustomEvents to update its state in real-time.\n */\nexport function AgentTaskCard({\n taskId,\n threadId,\n description,\n onOpen,\n}: AgentTaskCardProps) {\n const [expanded, setExpanded] = useState(true);\n const [status, setStatus] = useState<\"running\" | \"completed\" | \"errored\">(\n \"running\",\n );\n const [preview, setPreview] = useState(\"\");\n const [currentStep, setCurrentStep] = useState(\"\");\n const [summary, setSummary] = useState(\"\");\n const previewRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n function handleEvent(e: Event) {\n const detail = (e as CustomEvent).detail;\n if (!detail?.taskId || detail.taskId !== taskId) return;\n\n if (detail.type === \"agent_task_update\") {\n if (detail.preview != null) setPreview(detail.preview);\n if (detail.currentStep != null) setCurrentStep(detail.currentStep);\n } else if (detail.type === \"agent_task_complete\") {\n setStatus(\"completed\");\n if (detail.summary) setSummary(detail.summary);\n setCurrentStep(\"\");\n } else if (detail.type === \"agent_task\" && detail.status === \"errored\") {\n setStatus(\"errored\");\n setCurrentStep(\"\");\n }\n }\n\n window.addEventListener(\"agent-task-event\", handleEvent);\n return () => window.removeEventListener(\"agent-task-event\", handleEvent);\n }, [taskId]);\n\n // Poll for task status when running — the main chat's SSE stream may close\n // before the sub-agent completes, so SSE events alone aren't reliable.\n useEffect(() => {\n if (status !== \"running\") return;\n let stopped = false;\n const poll = async () => {\n while (!stopped) {\n await new Promise((r) => setTimeout(r, 3000));\n if (stopped) break;\n try {\n const res = await fetch(\n agentNativePath(\n `/_agent-native/application-state/agent-task:${taskId}`,\n ),\n );\n if (!res.ok) continue;\n const data = await res.json();\n // The HTTP handler returns the value directly (not wrapped)\n const task = data?.value ?? data;\n if (!task || !task.status) continue;\n if (task.status === \"completed\") {\n setStatus(\"completed\");\n if (task.summary) setSummary(task.summary);\n if (task.preview) setPreview(task.preview);\n setCurrentStep(\"\");\n break;\n } else if (task.status === \"errored\") {\n setStatus(\"errored\");\n if (task.summary) setSummary(task.summary);\n setCurrentStep(\"\");\n break;\n } else {\n // Still running — update preview from persisted state\n if (task.preview) setPreview(task.preview);\n if (task.currentStep) setCurrentStep(task.currentStep);\n }\n } catch {\n // Polling error — continue\n }\n }\n };\n poll();\n return () => {\n stopped = true;\n };\n }, [status, taskId, threadId]);\n\n // Auto-scroll preview to bottom\n useEffect(() => {\n if (previewRef.current && status === \"running\") {\n previewRef.current.scrollTop = previewRef.current.scrollHeight;\n }\n }, [preview, status]);\n\n const handleOpen = useCallback(\n (e: React.MouseEvent) => {\n e.stopPropagation();\n onOpen?.(threadId);\n },\n [onOpen, threadId],\n );\n\n const handleStop = useCallback(\n async (e: React.MouseEvent) => {\n e.stopPropagation();\n // Optimistic UI: mark stopped immediately\n setStatus(\"errored\");\n setCurrentStep(\"\");\n try {\n await fetch(\n agentNativePath(\n `/_agent-native/agent-chat/runs/run-task-${taskId}/stop`,\n ),\n {\n method: \"POST\",\n headers: { \"X-Agent-Native-CSRF\": \"1\" },\n },\n );\n } catch {\n // best-effort\n }\n },\n [taskId],\n );\n\n const isRunning = status === \"running\";\n const isComplete = status === \"completed\";\n const isError = status === \"errored\";\n\n const taskTitle = description.trim() || \"Task\";\n const currentStepText = currentStep.trim();\n const statusLabel = isRunning ? \"Running\" : isError ? \"Error\" : \"Done\";\n const statusClassName = cn(\n \"inline-flex h-5 shrink-0 items-center gap-1 rounded-md px-1.5 text-[10px] font-medium\",\n isError\n ? \"bg-destructive/10 text-destructive\"\n : isComplete\n ? \"bg-emerald-500/10 text-emerald-600 dark:text-emerald-400\"\n : \"bg-muted text-muted-foreground\",\n );\n\n const displayText = isComplete && summary ? summary : preview;\n const hasContent = displayText.length > 0;\n const emptyMessage = isRunning\n ? \"Waiting for updates\"\n : isError\n ? \"No error details yet\"\n : \"No summary available\";\n\n return (\n <div\n className={cn(\n \"my-2 overflow-hidden rounded-lg border bg-background/50 transition-colors\",\n isError\n ? \"border-destructive/30\"\n : isComplete\n ? \"border-emerald-500/20\"\n : \"border-border\",\n )}\n >\n {/* Header */}\n <button\n type=\"button\"\n aria-expanded={expanded}\n className=\"flex w-full items-center gap-2 px-3 py-2 text-start transition-colors hover:bg-muted/45\"\n onClick={() => setExpanded(!expanded)}\n >\n <span className=\"inline-flex h-5 shrink-0 items-center gap-1 rounded-md border border-border/60 bg-background/70 px-1.5 text-[10px] font-medium text-muted-foreground\">\n <IconSubtask className=\"h-3 w-3\" />\n Sub-agent\n </span>\n\n <span className=\"min-w-0 flex-1 truncate text-xs font-medium text-foreground\">\n {taskTitle}\n </span>\n\n <span className={statusClassName}>\n {isRunning ? (\n <IconLoader2 className=\"h-3 w-3 animate-spin\" />\n ) : isError ? (\n <IconAlertCircle className=\"h-3 w-3\" />\n ) : (\n <IconCheck className=\"h-3 w-3\" />\n )}\n {statusLabel}\n </span>\n\n <IconChevronRight\n className={cn(\n \"h-3 w-3 shrink-0 text-muted-foreground/40 transition-transform duration-150\",\n expanded && \"rotate-90\",\n \"rtl:-scale-x-100\",\n )}\n />\n </button>\n\n {expanded && isRunning && currentStepText && (\n <div className=\"flex gap-1.5 border-t border-border/60 px-3 py-1.5 text-[11px] text-muted-foreground\">\n <span className=\"shrink-0 font-medium text-foreground/70\">Now:</span>\n <span className=\"min-w-0 break-words\">{currentStepText}</span>\n </div>\n )}\n\n {/* Preview content */}\n {expanded && hasContent && (\n <div className=\"px-3 pb-2 pt-1\">\n <div\n ref={previewRef}\n className=\"agent-markdown prose prose-sm prose-invert max-h-48 max-w-none overflow-y-auto break-words rounded-md border border-border/50 bg-muted/25 px-3 py-2 text-xs text-muted-foreground\"\n >\n <ReactMarkdown remarkPlugins={[remarkGfm]}>\n {displayText.length > 800\n ? \"...\" + displayText.slice(-800)\n : displayText}\n </ReactMarkdown>\n </div>\n </div>\n )}\n\n {/* Footer with Open / Stop buttons */}\n {expanded && (\n <div className=\"flex items-center justify-between gap-2 px-3 pb-2\">\n <span className=\"min-w-0 flex-1 truncate text-[10px] text-muted-foreground/60\">\n {!hasContent ? emptyMessage : \"\"}\n </span>\n <div className=\"flex shrink-0 items-center gap-1\">\n {isRunning && (\n <button\n onClick={handleStop}\n className=\"inline-flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground hover:bg-muted hover:text-destructive\"\n aria-label=\"Stop sub-agent\"\n >\n <IconPlayerStop className=\"h-3 w-3\" />\n Stop\n </button>\n )}\n <button\n onClick={handleOpen}\n className=\"inline-flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-[11px] font-medium text-muted-foreground hover:bg-muted hover:text-foreground\"\n >\n Open thread\n <IconExternalLink className=\"h-3 w-3\" />\n </button>\n </div>\n </div>\n )}\n </div>\n );\n}\n"]}
|
|
@@ -10,7 +10,7 @@ export function AppearancePicker({ className, onChange, }) {
|
|
|
10
10
|
return (_jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("button", { type: "button", role: "radio", "aria-checked": active, "aria-label": preset.label, onClick: () => {
|
|
11
11
|
applyAppearance(preset.id);
|
|
12
12
|
onChange?.(preset.id);
|
|
13
|
-
}, className: cn("relative flex h-8 w-8 items-center justify-center rounded-full border border-border bg-background transition-colors hover:border-foreground/40 focus:outline-none focus:ring-2 focus:ring-ring", active && "border-foreground"), children: [_jsx("span", { "aria-hidden": true, className: "h-5 w-5 rounded-full", style: { background: preset.swatch } }), active && (_jsx("span", { className: "pointer-events-none absolute -
|
|
13
|
+
}, className: cn("relative flex h-8 w-8 items-center justify-center rounded-full border border-border bg-background transition-colors hover:border-foreground/40 focus:outline-none focus:ring-2 focus:ring-ring", active && "border-foreground"), children: [_jsx("span", { "aria-hidden": true, className: "h-5 w-5 rounded-full", style: { background: preset.swatch } }), active && (_jsx("span", { className: "pointer-events-none absolute -end-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full border border-border bg-background", children: _jsx(IconCheck, { className: "h-3 w-3 text-foreground", stroke: 3 }) }))] }) }), _jsx(TooltipContent, { children: preset.label })] }, preset.id));
|
|
14
14
|
}) }) }));
|
|
15
15
|
}
|
|
16
16
|
//# sourceMappingURL=AppearancePicker.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppearancePicker.js","sourceRoot":"","sources":["../../src/client/AppearancePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,GAEd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EACL,OAAO,EACP,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,4BAA4B,CAAC;AAWpC,MAAM,UAAU,gBAAgB,CAAC,EAC/B,SAAS,EACT,QAAQ,GACc;IACtB,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,OAAO,CACL,KAAC,eAAe,IAAC,aAAa,EAAE,GAAG,YACjC,cACE,IAAI,EAAC,YAAY,gBACN,YAAY,EACvB,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,YAE5D,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjC,MAAM,MAAM,GAAG,OAAO,KAAK,MAAM,CAAC,EAAE,CAAC;gBACrC,OAAO,CACL,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,kBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,kBACE,MAAM,gBACR,MAAM,CAAC,KAAK,EACxB,OAAO,EAAE,GAAG,EAAE;oCACZ,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oCAC3B,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gCACxB,CAAC,EACD,SAAS,EAAE,EAAE,CACX,gMAAgM,EAChM,MAAM,IAAI,mBAAmB,CAC9B,aAED,oCAEE,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GACpC,EACD,MAAM,IAAI,CACT,eAAM,SAAS,EAAC,
|
|
1
|
+
{"version":3,"file":"AppearancePicker.js","sourceRoot":"","sources":["../../src/client/AppearancePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,GAEd,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EACL,OAAO,EACP,cAAc,EACd,eAAe,EACf,cAAc,GACf,MAAM,4BAA4B,CAAC;AAWpC,MAAM,UAAU,gBAAgB,CAAC,EAC/B,SAAS,EACT,QAAQ,GACc;IACtB,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,OAAO,CACL,KAAC,eAAe,IAAC,aAAa,EAAE,GAAG,YACjC,cACE,IAAI,EAAC,YAAY,gBACN,YAAY,EACvB,SAAS,EAAE,EAAE,CAAC,mCAAmC,EAAE,SAAS,CAAC,YAE5D,kBAAkB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjC,MAAM,MAAM,GAAG,OAAO,KAAK,MAAM,CAAC,EAAE,CAAC;gBACrC,OAAO,CACL,MAAC,OAAO,eACN,KAAC,cAAc,IAAC,OAAO,kBACrB,kBACE,IAAI,EAAC,QAAQ,EACb,IAAI,EAAC,OAAO,kBACE,MAAM,gBACR,MAAM,CAAC,KAAK,EACxB,OAAO,EAAE,GAAG,EAAE;oCACZ,eAAe,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;oCAC3B,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;gCACxB,CAAC,EACD,SAAS,EAAE,EAAE,CACX,gMAAgM,EAChM,MAAM,IAAI,mBAAmB,CAC9B,aAED,oCAEE,SAAS,EAAC,sBAAsB,EAChC,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,GACpC,EACD,MAAM,IAAI,CACT,eAAM,SAAS,EAAC,qIAAqI,YACnJ,KAAC,SAAS,IACR,SAAS,EAAC,yBAAyB,EACnC,MAAM,EAAE,CAAC,GACT,GACG,CACR,IACM,GACM,EACjB,KAAC,cAAc,cAAE,MAAM,CAAC,KAAK,GAAkB,KA/BnC,MAAM,CAAC,EAAE,CAgCb,CACX,CAAC;YACJ,CAAC,CAAC,GACE,GACU,CACnB,CAAC;AACJ,CAAC","sourcesContent":["import { IconCheck } from \"@tabler/icons-react\";\nimport {\n APPEARANCE_PRESETS,\n applyAppearance,\n useAppearance,\n type AppearancePresetId,\n} from \"./appearance.js\";\nimport { cn } from \"./utils.js\";\nimport {\n Tooltip,\n TooltipContent,\n TooltipProvider,\n TooltipTrigger,\n} from \"./components/ui/tooltip.js\";\n\nexport interface AppearancePickerProps {\n className?: string;\n /**\n * Called after a preset is applied (e.g. to persist server-side via\n * the `change-appearance` action so the choice survives across devices).\n */\n onChange?: (preset: AppearancePresetId) => void;\n}\n\nexport function AppearancePicker({\n className,\n onChange,\n}: AppearancePickerProps) {\n const current = useAppearance();\n return (\n <TooltipProvider delayDuration={250}>\n <div\n role=\"radiogroup\"\n aria-label=\"Appearance\"\n className={cn(\"flex flex-wrap items-center gap-2\", className)}\n >\n {APPEARANCE_PRESETS.map((preset) => {\n const active = current === preset.id;\n return (\n <Tooltip key={preset.id}>\n <TooltipTrigger asChild>\n <button\n type=\"button\"\n role=\"radio\"\n aria-checked={active}\n aria-label={preset.label}\n onClick={() => {\n applyAppearance(preset.id);\n onChange?.(preset.id);\n }}\n className={cn(\n \"relative flex h-8 w-8 items-center justify-center rounded-full border border-border bg-background transition-colors hover:border-foreground/40 focus:outline-none focus:ring-2 focus:ring-ring\",\n active && \"border-foreground\",\n )}\n >\n <span\n aria-hidden\n className=\"h-5 w-5 rounded-full\"\n style={{ background: preset.swatch }}\n />\n {active && (\n <span className=\"pointer-events-none absolute -end-1 -top-1 flex h-4 w-4 items-center justify-center rounded-full border border-border bg-background\">\n <IconCheck\n className=\"h-3 w-3 text-foreground\"\n stroke={3}\n />\n </span>\n )}\n </button>\n </TooltipTrigger>\n <TooltipContent>{preset.label}</TooltipContent>\n </Tooltip>\n );\n })}\n </div>\n </TooltipProvider>\n );\n}\n"]}
|
|
@@ -153,8 +153,8 @@ function ComposerAttachmentPreviewCard({ attachment, onRemove, }) {
|
|
|
153
153
|
return (_jsxs("div", { className: cn("group relative overflow-hidden border border-border/70 bg-muted/50 text-foreground", isImage
|
|
154
154
|
? "h-20 w-20 rounded-xl shadow-[0_12px_30px_-18px_rgba(0,0,0,0.7)]"
|
|
155
155
|
: "inline-flex max-w-[220px] items-center gap-2 rounded-lg px-2.5 py-2 text-xs"), children: [isImage ? (_jsxs(_Fragment, { children: [_jsx("img", { src: imageSrc, alt: attachment.name, className: "h-full w-full object-cover" }), _jsx("div", { className: "pointer-events-none absolute inset-x-0 bottom-0 bg-gradient-to-t from-black/80 via-black/30 to-transparent px-2 py-1.5", children: _jsx("div", { className: "truncate text-[10px] font-medium text-white/95", children: attachment.name }) })] })) : (_jsxs(_Fragment, { children: [_jsx("div", { className: "flex h-8 w-8 shrink-0 items-center justify-center rounded-md bg-background text-[10px] font-semibold uppercase tracking-[0.12em] text-muted-foreground", children: attachment.name.split(".").pop() || "file" }), _jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "truncate font-medium", children: attachment.name }), _jsx("div", { className: "text-[11px] text-muted-foreground", children: attachment.contentType || attachment.type })] })] })), _jsx("button", { type: "button", onClick: () => onRemove(attachment.id), className: cn("absolute flex h-6 w-6 items-center justify-center rounded-full border border-border/60 bg-background/95 text-muted-foreground shadow-sm transition hover:text-foreground", isImage
|
|
156
|
-
? "
|
|
157
|
-
: "
|
|
156
|
+
? "end-1.5 top-1.5 opacity-100 md:opacity-0 md:group-hover:opacity-100"
|
|
157
|
+
: "end-1.5 top-1.5"), "aria-label": `Remove ${attachment.name}`, children: _jsx(IconX, { className: "h-3 w-3" }) })] }));
|
|
158
158
|
}
|
|
159
159
|
function ComposerAttachmentPreviewStrip() {
|
|
160
160
|
const attachments = useComposer((state) => state.attachments);
|
|
@@ -2137,7 +2137,7 @@ const AssistantChatInner = forwardRef(function AssistantChatInner({ emptyStateTe
|
|
|
2137
2137
|
role: "user",
|
|
2138
2138
|
content: [{ type: "text", text: suggestion }],
|
|
2139
2139
|
});
|
|
2140
|
-
}, className: "w-full rounded-lg border border-border px-3 py-2 text-
|
|
2140
|
+
}, className: "w-full rounded-lg border border-border px-3 py-2 text-start text-[13px] text-muted-foreground hover:bg-accent hover:text-foreground", children: suggestion }, suggestion))) })) : null] })) : (_jsxs("div", { className: "agent-thread-content flex flex-col gap-4 px-4 py-4", children: [_jsx(AssistantMessageListErrorBoundary, { resetKey: messageListResetKey, children: _jsx(ThreadPrimitive.Messages, { components: {
|
|
2141
2141
|
UserMessage,
|
|
2142
2142
|
AssistantMessage,
|
|
2143
2143
|
} }) }), visibleLoopLimit && !showRunningInUI && (_jsx(LoopLimitContinueCard, { info: visibleLoopLimit, onContinue: () => {
|