@stack-spot/ai-chat-widget 1.36.1-betacitric.1 → 1.36.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +36 -0
- package/dist/StackspotAIWidget.d.ts.map +1 -1
- package/dist/StackspotAIWidget.js +7 -6
- package/dist/StackspotAIWidget.js.map +1 -1
- package/dist/app-metadata.json +17 -13
- package/dist/chat-interceptors/quick-commands.d.ts.map +1 -1
- package/dist/chat-interceptors/quick-commands.js +9 -3
- package/dist/chat-interceptors/quick-commands.js.map +1 -1
- package/dist/components/Accordion.d.ts +20 -0
- package/dist/components/Accordion.d.ts.map +1 -0
- package/dist/components/Accordion.js +51 -0
- package/dist/components/Accordion.js.map +1 -0
- package/dist/components/AdaptiveTextArea.d.ts +1 -1
- package/dist/components/AdaptiveTextArea.d.ts.map +1 -1
- package/dist/components/AdaptiveTextArea.js +1 -1
- package/dist/components/AdaptiveTextArea.js.map +1 -1
- package/dist/components/AgentCard/AgentCardCreate.d.ts.map +1 -1
- package/dist/components/AgentCard/AgentCardCreate.js +3 -3
- package/dist/components/AgentCard/AgentCardCreate.js.map +1 -1
- package/dist/components/AgentCard/index.d.ts.map +1 -1
- package/dist/components/AgentCard/index.js +6 -5
- package/dist/components/AgentCard/index.js.map +1 -1
- package/dist/components/ButtonFavorite.d.ts +7 -8
- package/dist/components/ButtonFavorite.d.ts.map +1 -1
- package/dist/components/ButtonFavorite.js +14 -5
- package/dist/components/ButtonFavorite.js.map +1 -1
- package/dist/components/Code.d.ts.map +1 -1
- package/dist/components/Code.js +9 -11
- package/dist/components/Code.js.map +1 -1
- package/dist/components/ComponentNavigator.d.ts.map +1 -1
- package/dist/components/ComponentNavigator.js +4 -2
- package/dist/components/ComponentNavigator.js.map +1 -1
- package/dist/components/FadingOverflow.d.ts.map +1 -1
- package/dist/components/FadingOverflow.js +4 -3
- package/dist/components/FadingOverflow.js.map +1 -1
- package/dist/components/FallbackBoundary/ErrorBoundary.d.ts +33 -0
- package/dist/components/FallbackBoundary/ErrorBoundary.d.ts.map +1 -0
- package/dist/components/FallbackBoundary/ErrorBoundary.js +52 -0
- package/dist/components/FallbackBoundary/ErrorBoundary.js.map +1 -0
- package/dist/components/FallbackBoundary/Loading.d.ts +2 -0
- package/dist/components/FallbackBoundary/Loading.d.ts.map +1 -0
- package/dist/components/FallbackBoundary/Loading.js +12 -0
- package/dist/components/FallbackBoundary/Loading.js.map +1 -0
- package/dist/components/FallbackBoundary/index.d.ts +17 -0
- package/dist/components/FallbackBoundary/index.d.ts.map +1 -0
- package/dist/components/FallbackBoundary/index.js +9 -0
- package/dist/components/FallbackBoundary/index.js.map +1 -0
- package/dist/components/FileDescription.d.ts.map +1 -1
- package/dist/components/FileDescription.js +4 -3
- package/dist/components/FileDescription.js.map +1 -1
- package/dist/components/HistoryList.js +1 -1
- package/dist/components/HistoryList.js.map +1 -1
- package/dist/components/IconInput.d.ts +10 -0
- package/dist/components/IconInput.d.ts.map +1 -0
- package/dist/components/IconInput.js +61 -0
- package/dist/components/IconInput.js.map +1 -0
- package/dist/components/ListResource.js +3 -3
- package/dist/components/ListResource.js.map +1 -1
- package/dist/components/Markdown.js +1 -1
- package/dist/components/Markdown.js.map +1 -1
- package/dist/components/Modal.d.ts.map +1 -1
- package/dist/components/Modal.js +4 -2
- package/dist/components/Modal.js.map +1 -1
- package/dist/components/OverlayMenu.d.ts +21 -0
- package/dist/components/OverlayMenu.d.ts.map +1 -0
- package/dist/components/OverlayMenu.js +79 -0
- package/dist/components/OverlayMenu.js.map +1 -0
- package/dist/components/ProgressBar.d.ts +37 -0
- package/dist/components/ProgressBar.d.ts.map +1 -0
- package/dist/components/ProgressBar.js +131 -0
- package/dist/components/ProgressBar.js.map +1 -0
- package/dist/components/QuickStartButton.d.ts +3 -2
- package/dist/components/QuickStartButton.d.ts.map +1 -1
- package/dist/components/QuickStartButton.js +3 -4
- package/dist/components/QuickStartButton.js.map +1 -1
- package/dist/components/RightPanelForm.d.ts.map +1 -1
- package/dist/components/RightPanelForm.js +13 -20
- package/dist/components/RightPanelForm.js.map +1 -1
- package/dist/components/RightPanelTabs.d.ts +4 -1
- package/dist/components/RightPanelTabs.d.ts.map +1 -1
- package/dist/components/RightPanelTabs.js +16 -4
- package/dist/components/RightPanelTabs.js.map +1 -1
- package/dist/components/Selector/index.d.ts.map +1 -1
- package/dist/components/Selector/index.js +8 -5
- package/dist/components/Selector/index.js.map +1 -1
- package/dist/components/Selector/styled.d.ts.map +1 -1
- package/dist/components/Selector/styled.js +5 -8
- package/dist/components/Selector/styled.js.map +1 -1
- package/dist/components/StackedBadge.js +5 -5
- package/dist/components/StackedBadge.js.map +1 -1
- package/dist/components/TabManager.d.ts.map +1 -1
- package/dist/components/TabManager.js +30 -5
- package/dist/components/TabManager.js.map +1 -1
- package/dist/components/ToolBadge.d.ts +8 -3
- package/dist/components/ToolBadge.d.ts.map +1 -1
- package/dist/components/ToolBadge.js +99 -21
- package/dist/components/ToolBadge.js.map +1 -1
- package/dist/components/Tooltip/Tooltip.d.ts +37 -0
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.js +30 -0
- package/dist/components/Tooltip/Tooltip.js.map +1 -0
- package/dist/components/Tooltip/TooltipAPI.d.ts +29 -0
- package/dist/components/Tooltip/TooltipAPI.d.ts.map +1 -0
- package/dist/components/Tooltip/TooltipAPI.js +107 -0
- package/dist/components/Tooltip/TooltipAPI.js.map +1 -0
- package/dist/components/Tooltip/context.d.ts +5 -0
- package/dist/components/Tooltip/context.d.ts.map +1 -0
- package/dist/components/Tooltip/context.js +18 -0
- package/dist/components/Tooltip/context.js.map +1 -0
- package/dist/components/Tooltip/index.d.ts +3 -0
- package/dist/components/Tooltip/index.d.ts.map +1 -0
- package/dist/components/Tooltip/index.js +3 -0
- package/dist/components/Tooltip/index.js.map +1 -0
- package/dist/components/Tooltip/style.d.ts +4 -0
- package/dist/components/Tooltip/style.d.ts.map +1 -0
- package/dist/components/Tooltip/style.js +22 -0
- package/dist/components/Tooltip/style.js.map +1 -0
- package/dist/components/Tooltip/types.d.ts +27 -0
- package/dist/components/Tooltip/types.d.ts.map +1 -0
- package/dist/components/Tooltip/types.js +2 -0
- package/dist/components/Tooltip/types.js.map +1 -0
- package/dist/components/WorkspaceTabNavigator.d.ts.map +1 -1
- package/dist/components/WorkspaceTabNavigator.js +9 -7
- package/dist/components/WorkspaceTabNavigator.js.map +1 -1
- package/dist/components/form/DescribedCheckboxGroup.d.ts +2 -24
- package/dist/components/form/DescribedCheckboxGroup.d.ts.map +1 -1
- package/dist/components/form/DescribedCheckboxGroup.js +29 -46
- package/dist/components/form/DescribedCheckboxGroup.js.map +1 -1
- package/dist/components/form/DescribedRadioGroup.d.ts +4 -24
- package/dist/components/form/DescribedRadioGroup.d.ts.map +1 -1
- package/dist/components/form/DescribedRadioGroup.js +18 -39
- package/dist/components/form/DescribedRadioGroup.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/layout.css +26 -0
- package/dist/right-panel/DefaultPanel.d.ts.map +1 -1
- package/dist/right-panel/DefaultPanel.js +4 -2
- package/dist/right-panel/DefaultPanel.js.map +1 -1
- package/dist/state/ChatEntry.d.ts +4 -3
- package/dist/state/ChatEntry.d.ts.map +1 -1
- package/dist/state/ChatEntry.js.map +1 -1
- package/dist/state/constants.js +2 -2
- package/dist/state/constants.js.map +1 -1
- package/dist/types.d.ts +3 -3
- package/dist/types.d.ts.map +1 -1
- package/dist/utils/tools.d.ts +2 -1
- package/dist/utils/tools.d.ts.map +1 -1
- package/dist/utils/tools.js +12 -1
- package/dist/utils/tools.js.map +1 -1
- package/dist/utils/upload/FileUpload.d.ts.map +1 -1
- package/dist/utils/upload/FileUpload.js +1 -2
- package/dist/utils/upload/FileUpload.js.map +1 -1
- package/dist/views/Agents/AgentDescription.d.ts.map +1 -1
- package/dist/views/Agents/AgentDescription.js +6 -5
- package/dist/views/Agents/AgentDescription.js.map +1 -1
- package/dist/views/Agents/AgentsPanel.d.ts.map +1 -1
- package/dist/views/Agents/AgentsPanel.js +7 -7
- package/dist/views/Agents/AgentsPanel.js.map +1 -1
- package/dist/views/Agents/AgentsTab.d.ts.map +1 -1
- package/dist/views/Agents/AgentsTab.js +28 -29
- package/dist/views/Agents/AgentsTab.js.map +1 -1
- package/dist/views/Agents/dictionary.d.ts +1 -1
- package/dist/views/Chat/AgentInfo.d.ts.map +1 -1
- package/dist/views/Chat/AgentInfo.js +5 -3
- package/dist/views/Chat/AgentInfo.js.map +1 -1
- package/dist/views/Chat/ChatMessage.d.ts.map +1 -1
- package/dist/views/Chat/ChatMessage.js +36 -28
- package/dist/views/Chat/ChatMessage.js.map +1 -1
- package/dist/views/Chat/StepsList.d.ts.map +1 -1
- package/dist/views/Chat/StepsList.js +10 -10
- package/dist/views/Chat/StepsList.js.map +1 -1
- package/dist/views/Chat/styled.d.ts.map +1 -1
- package/dist/views/Chat/styled.js +2 -8
- package/dist/views/Chat/styled.js.map +1 -1
- package/dist/views/ChatHistory/HistoryItem.d.ts.map +1 -1
- package/dist/views/ChatHistory/HistoryItem.js +14 -7
- package/dist/views/ChatHistory/HistoryItem.js.map +1 -1
- package/dist/views/ChatHistory/index.js +1 -1
- package/dist/views/ChatHistory/index.js.map +1 -1
- package/dist/views/ChatHistory/styled.d.ts.map +1 -1
- package/dist/views/ChatHistory/styled.js +5 -3
- package/dist/views/ChatHistory/styled.js.map +1 -1
- package/dist/views/ChatTabSelection.d.ts.map +1 -1
- package/dist/views/ChatTabSelection.js +3 -2
- package/dist/views/ChatTabSelection.js.map +1 -1
- package/dist/views/Editor.d.ts.map +1 -1
- package/dist/views/Editor.js +12 -6
- package/dist/views/Editor.js.map +1 -1
- package/dist/views/Home/BuiltInAgent.d.ts.map +1 -1
- package/dist/views/Home/BuiltInAgent.js +3 -2
- package/dist/views/Home/BuiltInAgent.js.map +1 -1
- package/dist/views/Home/CustomAgent.js +3 -3
- package/dist/views/Home/CustomAgent.js.map +1 -1
- package/dist/views/Home/index.js +1 -1
- package/dist/views/Home/index.js.map +1 -1
- package/dist/views/Home/styled.d.ts.map +1 -1
- package/dist/views/Home/styled.js +22 -21
- package/dist/views/Home/styled.js.map +1 -1
- package/dist/views/KSDocument.d.ts.map +1 -1
- package/dist/views/KSDocument.js +4 -3
- package/dist/views/KSDocument.js.map +1 -1
- package/dist/views/KnowledgeSources.d.ts.map +1 -1
- package/dist/views/KnowledgeSources.js +36 -14
- package/dist/views/KnowledgeSources.js.map +1 -1
- package/dist/views/MessageInput/AgentSelector.d.ts.map +1 -1
- package/dist/views/MessageInput/AgentSelector.js +5 -7
- package/dist/views/MessageInput/AgentSelector.js.map +1 -1
- package/dist/views/MessageInput/ButtonAgent.d.ts.map +1 -1
- package/dist/views/MessageInput/ButtonAgent.js +5 -4
- package/dist/views/MessageInput/ButtonAgent.js.map +1 -1
- package/dist/views/MessageInput/ButtonBar.d.ts.map +1 -1
- package/dist/views/MessageInput/ButtonBar.js +4 -2
- package/dist/views/MessageInput/ButtonBar.js.map +1 -1
- package/dist/views/MessageInput/ContextBar.d.ts.map +1 -1
- package/dist/views/MessageInput/ContextBar.js +6 -4
- package/dist/views/MessageInput/ContextBar.js.map +1 -1
- package/dist/views/MessageInput/QuickCommandSelector.js +2 -2
- package/dist/views/MessageInput/QuickCommandSelector.js.map +1 -1
- package/dist/views/MessageInput/SelectContent.d.ts.map +1 -1
- package/dist/views/MessageInput/SelectContent.js +35 -30
- package/dist/views/MessageInput/SelectContent.js.map +1 -1
- package/dist/views/MessageInput/UploadBar.d.ts.map +1 -1
- package/dist/views/MessageInput/UploadBar.js +24 -2
- package/dist/views/MessageInput/UploadBar.js.map +1 -1
- package/dist/views/MessageInput/UploadDragNDrop.d.ts.map +1 -1
- package/dist/views/MessageInput/UploadDragNDrop.js +3 -2
- package/dist/views/MessageInput/UploadDragNDrop.js.map +1 -1
- package/dist/views/MessageInput/dictionary.d.ts +1 -1
- package/dist/views/MessageInput/dictionary.d.ts.map +1 -1
- package/dist/views/MessageInput/dictionary.js +4 -0
- package/dist/views/MessageInput/dictionary.js.map +1 -1
- package/dist/views/MessageInput/index.d.ts.map +1 -1
- package/dist/views/MessageInput/index.js +4 -3
- package/dist/views/MessageInput/index.js.map +1 -1
- package/dist/views/MessageInput/styled.d.ts +3 -1
- package/dist/views/MessageInput/styled.d.ts.map +1 -1
- package/dist/views/MessageInput/styled.js +27 -11
- package/dist/views/MessageInput/styled.js.map +1 -1
- package/dist/views/MinimizedHeader.d.ts.map +1 -1
- package/dist/views/MinimizedHeader.js +4 -2
- package/dist/views/MinimizedHeader.js.map +1 -1
- package/dist/views/Stacks.d.ts.map +1 -1
- package/dist/views/Stacks.js +28 -23
- package/dist/views/Stacks.js.map +1 -1
- package/dist/views/Steps/FlowChart/NodeStep.d.ts.map +1 -1
- package/dist/views/Steps/FlowChart/NodeStep.js +3 -3
- package/dist/views/Steps/FlowChart/NodeStep.js.map +1 -1
- package/dist/views/Steps/StepModal.d.ts.map +1 -1
- package/dist/views/Steps/StepModal.js +6 -4
- package/dist/views/Steps/StepModal.js.map +1 -1
- package/dist/views/Steps/dictionary.d.ts +1 -1
- package/dist/views/Steps/index.d.ts.map +1 -1
- package/dist/views/Steps/index.js +4 -3
- package/dist/views/Steps/index.js.map +1 -1
- package/dist/views/Steps/utils.d.ts +1 -2
- package/dist/views/Steps/utils.d.ts.map +1 -1
- package/dist/views/Steps/utils.js +8 -8
- package/dist/views/Steps/utils.js.map +1 -1
- package/dist/views/Tools.js +4 -2
- package/dist/views/Tools.js.map +1 -1
- package/dist/views/Workspaces/WorkspacesTab.d.ts.map +1 -1
- package/dist/views/Workspaces/WorkspacesTab.js +10 -7
- package/dist/views/Workspaces/WorkspacesTab.js.map +1 -1
- package/dist/views/Workspaces/index.js +2 -4
- package/dist/views/Workspaces/index.js.map +1 -1
- package/package.json +13 -12
- package/src/StackspotAIWidget.tsx +33 -30
- package/src/app-metadata.json +17 -13
- package/src/chat-interceptors/quick-commands.ts +11 -5
- package/src/components/Accordion.tsx +75 -0
- package/src/components/AdaptiveTextArea.tsx +1 -1
- package/src/components/AgentCard/AgentCardCreate.tsx +5 -3
- package/src/components/AgentCard/index.tsx +7 -7
- package/src/components/ButtonFavorite.tsx +47 -20
- package/src/components/Code.tsx +36 -31
- package/src/components/ComponentNavigator.tsx +8 -4
- package/src/components/FadingOverflow.tsx +7 -6
- package/src/components/FallbackBoundary/ErrorBoundary.tsx +71 -0
- package/src/components/FallbackBoundary/Loading.tsx +14 -0
- package/src/components/FallbackBoundary/index.tsx +26 -0
- package/src/components/FileDescription.tsx +10 -14
- package/src/components/HistoryList.tsx +1 -1
- package/src/components/IconInput.tsx +73 -0
- package/src/components/ListResource.tsx +5 -5
- package/src/components/Markdown.tsx +1 -1
- package/src/components/Modal.tsx +4 -2
- package/src/components/OverlayMenu.tsx +133 -0
- package/src/components/ProgressBar.tsx +183 -0
- package/src/components/QuickStartButton.tsx +4 -5
- package/src/components/RightPanelForm.tsx +13 -20
- package/src/components/RightPanelTabs.tsx +32 -4
- package/src/components/Selector/index.tsx +13 -17
- package/src/components/Selector/styled.ts +5 -8
- package/src/components/StackedBadge.tsx +5 -5
- package/src/components/TabManager.tsx +36 -8
- package/src/components/ToolBadge.tsx +129 -39
- package/src/components/Tooltip/Tooltip.tsx +78 -0
- package/src/components/Tooltip/TooltipAPI.ts +101 -0
- package/src/components/Tooltip/context.tsx +24 -0
- package/src/components/Tooltip/index.ts +2 -0
- package/src/components/Tooltip/style.tsx +24 -0
- package/src/components/Tooltip/types.ts +28 -0
- package/src/components/WorkspaceTabNavigator.tsx +25 -22
- package/src/components/form/DescribedCheckboxGroup.tsx +65 -90
- package/src/components/form/DescribedRadioGroup.tsx +46 -79
- package/src/index.ts +2 -1
- package/src/layout.css +26 -0
- package/src/right-panel/DefaultPanel.tsx +7 -3
- package/src/state/ChatEntry.ts +4 -3
- package/src/state/constants.ts +2 -2
- package/src/types.ts +3 -4
- package/src/utils/tools.ts +23 -2
- package/src/utils/upload/FileUpload.ts +1 -2
- package/src/views/Agents/AgentDescription.tsx +7 -6
- package/src/views/Agents/AgentsPanel.tsx +12 -11
- package/src/views/Agents/AgentsTab.tsx +56 -37
- package/src/views/Chat/AgentInfo.tsx +6 -7
- package/src/views/Chat/ChatMessage.tsx +118 -109
- package/src/views/Chat/StepsList.tsx +11 -10
- package/src/views/Chat/styled.ts +2 -8
- package/src/views/ChatHistory/HistoryItem.tsx +19 -12
- package/src/views/ChatHistory/index.tsx +1 -1
- package/src/views/ChatHistory/styled.ts +5 -3
- package/src/views/ChatTabSelection.tsx +3 -2
- package/src/views/Editor.tsx +14 -9
- package/src/views/Home/BuiltInAgent.tsx +8 -7
- package/src/views/Home/CustomAgent.tsx +3 -3
- package/src/views/Home/index.tsx +1 -1
- package/src/views/Home/styled.ts +22 -21
- package/src/views/KSDocument.tsx +8 -7
- package/src/views/KnowledgeSources.tsx +66 -24
- package/src/views/MessageInput/AgentSelector.tsx +8 -10
- package/src/views/MessageInput/ButtonAgent.tsx +12 -24
- package/src/views/MessageInput/ButtonBar.tsx +21 -25
- package/src/views/MessageInput/ContextBar.tsx +14 -12
- package/src/views/MessageInput/QuickCommandSelector.tsx +2 -2
- package/src/views/MessageInput/SelectContent.tsx +68 -39
- package/src/views/MessageInput/UploadBar.tsx +34 -2
- package/src/views/MessageInput/UploadDragNDrop.tsx +5 -2
- package/src/views/MessageInput/dictionary.ts +4 -0
- package/src/views/MessageInput/index.tsx +7 -5
- package/src/views/MessageInput/styled.ts +28 -12
- package/src/views/MinimizedHeader.tsx +7 -4
- package/src/views/Stacks.tsx +54 -31
- package/src/views/Steps/FlowChart/NodeStep.tsx +4 -6
- package/src/views/Steps/StepModal.tsx +18 -14
- package/src/views/Steps/index.tsx +5 -4
- package/src/views/Steps/utils.tsx +9 -9
- package/src/views/Tools.tsx +19 -12
- package/src/views/Workspaces/WorkspacesTab.tsx +21 -17
- package/src/views/Workspaces/index.tsx +2 -4
package/src/views/Stacks.tsx
CHANGED
|
@@ -1,12 +1,15 @@
|
|
|
1
|
-
import { Button
|
|
1
|
+
import { Button } from '@citric/core'
|
|
2
|
+
import { Search } from '@citric/icons'
|
|
2
3
|
import { Placeholder } from '@stack-spot/portal-components/Placeholder'
|
|
3
4
|
import { aiClient, workspaceAiClient } from '@stack-spot/portal-network'
|
|
4
|
-
import { VisibilityLevelEnum } from '@stack-spot/portal-network/api/ai'
|
|
5
|
+
import { GetAiStackResponse, VisibilityLevelEnum } from '@stack-spot/portal-network/api/ai'
|
|
5
6
|
import { WorkspaceResponse } from '@stack-spot/portal-network/api/workspace-ai'
|
|
6
7
|
import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
|
|
7
|
-
import { useEffect, useMemo, useRef, useState } from 'react'
|
|
8
|
+
import { ReactElement, useCallback, useEffect, useMemo, useRef, useState } from 'react'
|
|
9
|
+
import { ButtonFavorite } from '../components/ButtonFavorite'
|
|
8
10
|
import { NavigationComponent } from '../components/ComponentNavigator'
|
|
9
11
|
import { DescribedRadioGroup } from '../components/form/DescribedRadioGroup'
|
|
12
|
+
import { IconInput } from '../components/IconInput'
|
|
10
13
|
import { RightPanelContentList } from '../components/RightPanelContentList'
|
|
11
14
|
import { RightPanelTabs } from '../components/RightPanelTabs'
|
|
12
15
|
import { WorkspaceTabNavigator } from '../components/WorkspaceTabNavigator'
|
|
@@ -16,6 +19,8 @@ import { useRightPanel } from '../right-panel/hooks'
|
|
|
16
19
|
import { ChatProperties } from '../state/ChatState'
|
|
17
20
|
import { checkIsTrial } from '../utils/check-is-trial'
|
|
18
21
|
|
|
22
|
+
type TabElement = { title: string, content: ReactElement }
|
|
23
|
+
|
|
19
24
|
/**
|
|
20
25
|
* Renders the Stack selection form in the Right Panel if this is the panel that is currently opened.
|
|
21
26
|
*/
|
|
@@ -49,12 +54,12 @@ const StacksPanel = () => {
|
|
|
49
54
|
stack.current = chat.get('stack')
|
|
50
55
|
}, [chat])
|
|
51
56
|
|
|
52
|
-
const allTabsMap: Partial<Record<Scope,
|
|
53
|
-
favorite: {
|
|
54
|
-
personal: {
|
|
55
|
-
shared: {
|
|
56
|
-
workspace: {
|
|
57
|
-
account: {
|
|
57
|
+
const allTabsMap: Partial<Record<Scope, TabElement>> = {
|
|
58
|
+
favorite: { title: t.favorites, content: <StacksTab key="favorites" visibility="favorite" stack={stack} /> },
|
|
59
|
+
personal: { title: t.personal, content: <StacksTab key="personal" visibility="personal" stack={stack} /> },
|
|
60
|
+
shared: { title: t.shared, content: <StacksTab key="shared" visibility="shared" stack={stack} /> },
|
|
61
|
+
workspace: { title: t.spots, content: <StacksTabWorkspace key="workspace" visibility="workspace" stack={stack} /> },
|
|
62
|
+
account: { title: t.account, content: <StacksTab key="account" visibility="account" stack={stack} /> },
|
|
58
63
|
}
|
|
59
64
|
const defaultScopes: Scope[] = ['favorite', 'personal', 'shared', 'workspace', 'account']
|
|
60
65
|
|
|
@@ -65,8 +70,8 @@ const StacksPanel = () => {
|
|
|
65
70
|
: rawScopes
|
|
66
71
|
|
|
67
72
|
const tabs = scopesToRender
|
|
68
|
-
.map(scope =>
|
|
69
|
-
.filter(Boolean) as
|
|
73
|
+
.map(scope => allTabsMap[scope])
|
|
74
|
+
.filter(Boolean) as TabElement[]
|
|
70
75
|
|
|
71
76
|
return (isGroupResourcesByScope ? (
|
|
72
77
|
<RightPanelTabs key={chat.id} tabs={tabs} />
|
|
@@ -86,10 +91,11 @@ export const StacksTab = ({ visibility, workspaceId, stack, showSubmitButton = t
|
|
|
86
91
|
const t = useTranslate(dictionary)
|
|
87
92
|
const { close } = useRightPanel()
|
|
88
93
|
const chat = useCurrentChat()
|
|
94
|
+
const [filter, setFilter] = useState('')
|
|
95
|
+
|
|
89
96
|
const listFavorites = aiClient.aiStacks.useQuery({ visibility: 'favorite' })
|
|
90
97
|
const [addFavorite, pendingAddFav] = aiClient.addFavoriteStackAi.useMutation()
|
|
91
98
|
const [removeFavorite, pendingRemoveFav] = aiClient.removeFavoriteStackAi.useMutation()
|
|
92
|
-
const [submitEnabled, setSubmitEnabled] = useState(false)
|
|
93
99
|
|
|
94
100
|
const removeFavoriteStack = async (idOrSlug: string) => {
|
|
95
101
|
try {
|
|
@@ -140,40 +146,57 @@ export const StacksTab = ({ visibility, workspaceId, stack, showSubmitButton = t
|
|
|
140
146
|
reject(error)
|
|
141
147
|
}
|
|
142
148
|
})
|
|
149
|
+
|
|
150
|
+
|
|
143
151
|
|
|
144
152
|
const stacks = workspaceId
|
|
145
153
|
? workspaceAiClient.getStackFromWorkspaceAi.useQuery({ workspaceId })
|
|
146
154
|
//@ts-ignore
|
|
147
155
|
: aiClient.aiStacks.useQuery({ visibility, order: 'a-to-z' })
|
|
148
156
|
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
157
|
+
const currentStackId = stack.current ? stack.current.id : chat.get('stack')?.id
|
|
158
|
+
const [value, setValue] = useState<GetAiStackResponse | undefined>(stacks.find(s => s.id === currentStackId))
|
|
159
|
+
const filtered = useMemo(() => filter ?
|
|
160
|
+
// Recreate the list so that the favorites list is taken into account
|
|
161
|
+
stacks.filter(s => s === value || s.name.toLocaleLowerCase().includes(filter.toLocaleLowerCase())) : [...stacks],
|
|
162
|
+
[stacks, listFavorites, filter, value],
|
|
163
|
+
)
|
|
155
164
|
|
|
156
165
|
function submit() {
|
|
157
|
-
if (
|
|
166
|
+
if (value) chat.set('stack', { id: value.id, label: value.name })
|
|
158
167
|
close()
|
|
159
168
|
}
|
|
160
169
|
|
|
170
|
+
const onChange = useCallback((newValue: GetAiStackResponse) => {
|
|
171
|
+
setValue(newValue)
|
|
172
|
+
stack.current = { ...newValue, label: newValue.name }
|
|
173
|
+
}, [])
|
|
174
|
+
|
|
161
175
|
return (
|
|
162
176
|
<>
|
|
163
177
|
<div className="content">
|
|
164
|
-
<
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
}
|
|
174
|
-
|
|
178
|
+
<IconInput icon={<Search />} value={filter} onChange={setFilter} className="search" />
|
|
179
|
+
{!!filtered.length && <DescribedRadioGroup
|
|
180
|
+
options={filtered}
|
|
181
|
+
renderAfterElement={({ id }) =>
|
|
182
|
+
<ButtonFavorite favorite={{ idOrSlug:id, listFavorites, onAddFavorite, onRemoveFavorite }} />
|
|
183
|
+
}
|
|
184
|
+
keygen={s => s.id}
|
|
185
|
+
value={value}
|
|
186
|
+
onChange={onChange}
|
|
187
|
+
renderLabel={s => s.name}
|
|
188
|
+
renderDescription={s => s.use_case}
|
|
189
|
+
optionClassName={s => (s === value && filter && !s.name.toLocaleLowerCase().includes(filter.toLocaleLowerCase()))
|
|
190
|
+
? 'filtered-out'
|
|
191
|
+
: ''
|
|
192
|
+
}
|
|
193
|
+
className="option-list"
|
|
194
|
+
/>}
|
|
195
|
+
{!!stacks.length && !filtered.length &&
|
|
196
|
+
<Placeholder title={t.noSearchResults} description={t.noSearchResultsDescription} className="no-data-placeholder"/>}
|
|
197
|
+
{!stacks.length && <Placeholder title={t.noData} description={t.noDataDescription} />}
|
|
175
198
|
</div>
|
|
176
|
-
{!!
|
|
199
|
+
{!!filtered.length && showSubmitButton && <Button onClick={submit} disabled={!value}>{t.apply}</Button>}
|
|
177
200
|
</>
|
|
178
201
|
)
|
|
179
202
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { IconBox, Text } from '@citric/core'
|
|
2
|
+
import { Cog } from '@citric/icons'
|
|
3
3
|
import { listToClass } from '@stack-spot/portal-theme'
|
|
4
4
|
import { StackedBadge } from '../../../components/StackedBadge'
|
|
5
5
|
import { useStepsDictionary } from '../dictionary'
|
|
@@ -24,7 +24,7 @@ export const NodeStep = ({ data: { step, index, nextStatus, onClick } }: Props)
|
|
|
24
24
|
aria-label={getTitle(t, step, index)}
|
|
25
25
|
>
|
|
26
26
|
<header>
|
|
27
|
-
<
|
|
27
|
+
<IconBox>{getTypeIcon(step.type)}</IconBox>
|
|
28
28
|
<Text className="step-index">{getTitle(t, step, index)}</Text>
|
|
29
29
|
{getStatusIcon(step.status)}
|
|
30
30
|
</header>
|
|
@@ -36,9 +36,7 @@ export const NodeStep = ({ data: { step, index, nextStatus, onClick } }: Props)
|
|
|
36
36
|
</Text>
|
|
37
37
|
{!!step.attempts[0].tools?.length && <StackedBadge
|
|
38
38
|
label={t.tools}
|
|
39
|
-
images={step.attempts[0].tools?.slice(0, 3).map(
|
|
40
|
-
tool => ({ key: tool.id, name: tool.name, url: tool.image, icon: <Icon icon="Cog" /> }),
|
|
41
|
-
)}
|
|
39
|
+
images={step.attempts[0].tools?.slice(0, 3).map(tool => ({ key: tool.id, name: tool.name, url: tool.image, icon: <Cog /> }))}
|
|
42
40
|
/>}
|
|
43
41
|
</div>}
|
|
44
42
|
<HandleGroup renderSource={step.type !== 'answer'} renderTarget={step.type !== 'planning'} />
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Flex, Text } from '@citric/core'
|
|
2
|
+
import { ChevronLeft, ChevronRight } from '@citric/icons'
|
|
3
|
+
import { Badge, IconButton } from '@citric/ui'
|
|
2
4
|
import { theme } from '@stack-spot/portal-theme'
|
|
3
5
|
import { useMemo, useState } from 'react'
|
|
4
6
|
import { styled } from 'styled-components'
|
|
@@ -129,18 +131,18 @@ export const StepModal = ({ message, stepId, onClose }: Props) => {
|
|
|
129
131
|
<div className="tool" key={tool.id}>
|
|
130
132
|
<ToolBadge name={tool.name} duration={tool.duration} image={tool.image} description={tool.description} />
|
|
131
133
|
{tool.input && <>
|
|
132
|
-
<Text appearance="microtext1"
|
|
134
|
+
<Text appearance="microtext1" colorScheme="light.700">{t.input}:</Text>
|
|
133
135
|
<Code language="json" className="tool-input" showLineNumbers={false} showActionBar>{tool.input}</Code>
|
|
134
136
|
</>}
|
|
135
137
|
{tool.output && <>
|
|
136
|
-
<Text appearance="microtext1"
|
|
138
|
+
<Text appearance="microtext1" colorScheme="light.700">{t.response}:</Text>
|
|
137
139
|
<Code language="json" className="tool-input" showLineNumbers={false} showActionBar>{tool.output}</Code>
|
|
138
140
|
</>}
|
|
139
141
|
</div>
|
|
140
142
|
)) : undefined
|
|
141
143
|
|
|
142
144
|
const title = (
|
|
143
|
-
<
|
|
145
|
+
<Flex flex={1} justifyContent="space-between" alignItems="center">
|
|
144
146
|
<Text appearance="h6">{getTitle(t, step, stepIndex)}</Text>
|
|
145
147
|
<ExecutionBox>
|
|
146
148
|
<Text className="time" appearance="microtext1">
|
|
@@ -151,26 +153,28 @@ export const StepModal = ({ message, stepId, onClose }: Props) => {
|
|
|
151
153
|
{step?.type === 'step' && step.attempts.length > 1 && <div className="navigator">
|
|
152
154
|
{attempt > 0 && (
|
|
153
155
|
<IconButton
|
|
154
|
-
icon="ChevronLeft"
|
|
155
156
|
size="xs"
|
|
156
157
|
title={t.previousAttempt}
|
|
157
158
|
aria-label={t.previousAttempt}
|
|
158
159
|
onClick={() => setAttempt(attempt - 1)}
|
|
159
|
-
|
|
160
|
+
>
|
|
161
|
+
<ChevronLeft />
|
|
162
|
+
</IconButton>
|
|
160
163
|
)}
|
|
161
164
|
<Text appearance="microtext1">{attempt + 1}/{step.attempts.length}</Text>
|
|
162
165
|
{attempt < step.attempts.length - 1 && (
|
|
163
166
|
<IconButton
|
|
164
|
-
icon="ChevronRight"
|
|
165
167
|
size="xs"
|
|
166
168
|
title={t.nextAttempt}
|
|
167
169
|
aria-label={t.nextAttempt}
|
|
168
170
|
onClick={() => setAttempt(attempt + 1)}
|
|
169
|
-
|
|
171
|
+
>
|
|
172
|
+
<ChevronRight />
|
|
173
|
+
</IconButton>
|
|
170
174
|
)}
|
|
171
175
|
</div>}
|
|
172
176
|
</ExecutionBox>
|
|
173
|
-
</
|
|
177
|
+
</Flex>
|
|
174
178
|
)
|
|
175
179
|
|
|
176
180
|
return (
|
|
@@ -180,18 +184,18 @@ export const StepModal = ({ message, stepId, onClose }: Props) => {
|
|
|
180
184
|
</StyledSection>}
|
|
181
185
|
|
|
182
186
|
{step?.type === 'planning' && <StyledSection style={{ alignItems: 'stretch' }}>
|
|
183
|
-
<Badge appearance="square"
|
|
187
|
+
<Badge appearance="square" palette="blue" style={{ alignSelf: 'start' }}>Prompt</Badge>
|
|
184
188
|
<Text>{step.goal}</Text>
|
|
185
189
|
<ul className="steps">
|
|
186
190
|
{entry.steps?.filter(s => s.type === 'step').map((s, index) => (
|
|
187
191
|
<li key={index}>
|
|
188
|
-
<
|
|
192
|
+
<Flex mb={2}>
|
|
189
193
|
<Text>{t.step} {index + 1}: <span className="step-description">{s.input}</span></Text>
|
|
190
|
-
</
|
|
194
|
+
</Flex>
|
|
191
195
|
{!!s.attempts[0].tools?.length && <ul className="side-by-side-tools">
|
|
192
196
|
{s.attempts[0].tools.map((tool) => (
|
|
193
197
|
<li key={tool.id}>
|
|
194
|
-
<ToolBadge name={tool.name} image={tool.image} />
|
|
198
|
+
<ToolBadge name={tool.name} image={tool.image} appearance="round" />
|
|
195
199
|
</li>
|
|
196
200
|
))}
|
|
197
201
|
</ul>}
|
|
@@ -201,7 +205,7 @@ export const StepModal = ({ message, stepId, onClose }: Props) => {
|
|
|
201
205
|
</StyledSection>}
|
|
202
206
|
|
|
203
207
|
{step?.type === 'step' && step?.input && <StyledSection>
|
|
204
|
-
<Badge appearance="square"
|
|
208
|
+
<Badge appearance="square" palette="blue">Prompt</Badge>
|
|
205
209
|
<Text>{step.input}</Text>
|
|
206
210
|
</StyledSection>}
|
|
207
211
|
{!!tools?.length && <StyledSection>{tools}</StyledSection>}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Flex } from '@citric/core'
|
|
2
|
+
import { LoadingCircular } from '@citric/ui'
|
|
3
|
+
import { lazy, Suspense, useEffect } from 'react'
|
|
3
4
|
import { useWidget, useWidgetState } from '../../context/hooks'
|
|
4
5
|
import { useRightPanel } from '../../right-panel/hooks'
|
|
5
6
|
import { useStepsDictionary } from './dictionary'
|
|
@@ -18,9 +19,9 @@ export const Steps = () => {
|
|
|
18
19
|
|
|
19
20
|
useEffect(() => {
|
|
20
21
|
if (panel === 'steps' && message) open(
|
|
21
|
-
<
|
|
22
|
+
<Suspense fallback={<Flex alignItems="center" justifyContent="center" flex={1}><LoadingCircular /></Flex>}>
|
|
22
23
|
<LazyStepsPanel key={message.messageId} chatId={message.chatId} messageId={message.messageId} />
|
|
23
|
-
</
|
|
24
|
+
</Suspense>,
|
|
24
25
|
{
|
|
25
26
|
title: t.steps,
|
|
26
27
|
description: t.stepsPanelDescription,
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { IconBox } from '@citric/core'
|
|
2
|
+
import { CheckCircleFill, ListUnordered, PlayFill, TimesCircleFill } from '@citric/icons'
|
|
3
|
+
import { LoadingCircular } from '@citric/ui'
|
|
3
4
|
import { ChatStep } from '@stack-spot/portal-network'
|
|
4
|
-
import { theme } from '@stack-spot/portal-theme'
|
|
5
5
|
|
|
6
6
|
export function getStatusIcon(status: ChatStep['status']) {
|
|
7
7
|
switch (status) {
|
|
8
|
-
case 'success': return <
|
|
9
|
-
case 'error': return <
|
|
10
|
-
case 'running': return <
|
|
8
|
+
case 'success': return <IconBox colorIcon="success.500"><CheckCircleFill /></IconBox>
|
|
9
|
+
case 'error': return <IconBox colorIcon="danger.500"><TimesCircleFill /></IconBox>
|
|
10
|
+
case 'running': return <LoadingCircular colorScheme="inverse" size="xs" />
|
|
11
11
|
default: return null
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
-
export function getTypeIcon(type: ChatStep['type'])
|
|
15
|
+
export function getTypeIcon(type: ChatStep['type']) {
|
|
16
16
|
switch (type) {
|
|
17
|
-
case 'planning': return
|
|
18
|
-
default: return
|
|
17
|
+
case 'planning': return <ListUnordered />
|
|
18
|
+
default: return <PlayFill />
|
|
19
19
|
}
|
|
20
20
|
}
|
|
21
21
|
|
package/src/views/Tools.tsx
CHANGED
|
@@ -42,19 +42,26 @@ const ToolsPanel = () => {
|
|
|
42
42
|
}, [messageId])
|
|
43
43
|
|
|
44
44
|
const [toolKits] = agentToolsClient.tools.useStatefulQuery({}, { enabled: !!message?.agent?.id })
|
|
45
|
-
const
|
|
46
|
-
|
|
47
|
-
|
|
45
|
+
const [agent] = agentToolsClient.agent.useStatefulQuery({ agentId: message?.agent?.id || '' },
|
|
46
|
+
{ enabled: !!message?.agent?.id })
|
|
47
|
+
const tools = useMemo(() => message?.tools?.map(id => toolById(id, toolKits)), [messageId, toolKits])
|
|
48
|
+
const customTools = useMemo(() => message?.tools?.map(id => toolById(id, agent?.toolkits?.custom_toolkits)),
|
|
49
|
+
[messageId, agent?.toolkits?.custom_toolkits])
|
|
50
|
+
return !!(tools?.length || customTools?.length) && (
|
|
48
51
|
<ToolList>
|
|
49
|
-
{tools
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
52
|
+
{[...(tools || []), ...(customTools || [])].map(
|
|
53
|
+
(tool) =>
|
|
54
|
+
tool && (
|
|
55
|
+
<li key={tool.id}>
|
|
56
|
+
<ToolBadge
|
|
57
|
+
name={tool.name || tool.id}
|
|
58
|
+
image={tool.image ?? ''}
|
|
59
|
+
description={tool.description ?? ''}
|
|
60
|
+
backgroundColor="light.500"
|
|
61
|
+
/>
|
|
62
|
+
</li>
|
|
63
|
+
),
|
|
64
|
+
)}
|
|
58
65
|
</ToolList>
|
|
59
66
|
)
|
|
60
67
|
}
|
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Button, Flex, IconBox, Image, Text } from '@citric/core'
|
|
2
|
+
import { Agent, KnowledgeSource, Spaces, Stack } from '@citric/icons'
|
|
3
|
+
import { Avatar } from '@citric/ui'
|
|
3
4
|
import { workspaceAiClient } from '@stack-spot/portal-network'
|
|
4
5
|
import { WorkspaceResponse, WorkspaceVisibilityLevelEnum } from '@stack-spot/portal-network/api/workspace-ai'
|
|
5
6
|
import { Dictionary, useTranslate } from '@stack-spot/portal-translate'
|
|
6
7
|
import { useTransition } from 'react'
|
|
7
8
|
import { useComponentNavigation } from '../../components/ComponentNavigator'
|
|
9
|
+
import { Loading } from '../../components/FallbackBoundary/Loading'
|
|
8
10
|
import { ListResource } from '../../components/ListResource'
|
|
9
11
|
import { CardSpace, WorkspaceTabNavigator } from '../../components/WorkspaceTabNavigator'
|
|
10
12
|
import { ChatProperties } from '../../state/ChatState'
|
|
@@ -14,15 +16,17 @@ import { StacksTab } from '../Stacks'
|
|
|
14
16
|
|
|
15
17
|
const SpaceCard = ({ workspaceId }: { workspaceId: string }) => {
|
|
16
18
|
const workspace = workspaceAiClient.workspaceAi.useQuery({ id: workspaceId })
|
|
17
|
-
return <
|
|
18
|
-
<
|
|
19
|
-
<
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
19
|
+
return <Flex flexDirection="column" sx={{ gap: '8px' }}>
|
|
20
|
+
<Flex flexDirection="column" sx={{ gap: '4px' }}>
|
|
21
|
+
<Flex alignContent="center" alignItems="center" sx={{ gap: '8px', m: 1 }} >
|
|
22
|
+
<Avatar size="xxs" appearance="square" sx={{ bg: 'light.600', r: 'xxs' }}>
|
|
23
|
+
{workspace.logo ? <Image src={workspace.logo} /> : <IconBox> <Spaces /> </IconBox>}
|
|
24
|
+
</Avatar>
|
|
25
|
+
<Text appearance="body2" weight="medium">{workspace.name} </Text>
|
|
26
|
+
</Flex>
|
|
27
|
+
<Text colorScheme="light.700">{workspace.description}</Text>
|
|
28
|
+
</Flex>
|
|
29
|
+
</Flex>
|
|
26
30
|
}
|
|
27
31
|
|
|
28
32
|
export interface TabProps {
|
|
@@ -48,9 +52,9 @@ export const WorkspaceResources = ({ workspaceId, allKS, agent, stack }: Omit<Ta
|
|
|
48
52
|
const { navigate } = useComponentNavigation<typeof workspaceTabComponents>()
|
|
49
53
|
const [isPending, startTransition] = useTransition()
|
|
50
54
|
const resourceTypes: WorkspaceResource[] = [
|
|
51
|
-
{ id: 'agents', resourceType: 'agent', displayName: 'Agents', workspaceId, icon: <
|
|
52
|
-
{ id: 'ks', resourceType: 'ks', displayName: 'Knowledge Sources', workspaceId, icon: <
|
|
53
|
-
{ id: 'stack', resourceType: 'stack', displayName: 'Stacks', workspaceId, icon: <
|
|
55
|
+
{ id: 'agents', resourceType: 'agent', displayName: 'Agents', workspaceId, icon: <Agent /> },
|
|
56
|
+
{ id: 'ks', resourceType: 'ks', displayName: 'Knowledge Sources', workspaceId, icon: <KnowledgeSource /> },
|
|
57
|
+
{ id: 'stack', resourceType: 'stack', displayName: 'Stacks', workspaceId, icon: <Stack /> },
|
|
54
58
|
]
|
|
55
59
|
|
|
56
60
|
const handleNavigate = (resource: WorkspaceResource) => {
|
|
@@ -68,14 +72,14 @@ export const WorkspaceResources = ({ workspaceId, allKS, agent, stack }: Omit<Ta
|
|
|
68
72
|
|
|
69
73
|
return (<>
|
|
70
74
|
{workspaceId && <SpaceCard workspaceId={workspaceId} />}
|
|
71
|
-
{<
|
|
75
|
+
{isPending ? <Loading /> :
|
|
72
76
|
<ListResource
|
|
73
77
|
list={resourceTypes}
|
|
74
78
|
keygen={w => w.id}
|
|
75
79
|
renderLabel={r => <CardSpace name={r.displayName} icon={r.icon} onClick={() => handleNavigate(r)} />}
|
|
76
80
|
style={{ gap: '6px', display: 'flex', flexDirection: 'column' }}
|
|
77
81
|
/>
|
|
78
|
-
|
|
82
|
+
}
|
|
79
83
|
</>
|
|
80
84
|
)
|
|
81
85
|
}
|
|
@@ -101,7 +105,7 @@ export function WorkspacesTab({ visibility, allKS, agent, stack, onSubmit }: Tab
|
|
|
101
105
|
getNavigateParam={buildNavigateParams}
|
|
102
106
|
visibility={visibility}
|
|
103
107
|
/>
|
|
104
|
-
<Button className="workspace-submit" onClick={onSubmit}>{t.apply}</Button>
|
|
108
|
+
<Button className="workspace-submit" onClick={onSubmit} >{t.apply}</Button>
|
|
105
109
|
</>
|
|
106
110
|
)
|
|
107
111
|
}
|
|
@@ -48,13 +48,11 @@ const WorkspacesPanel = () => {
|
|
|
48
48
|
|
|
49
49
|
return <RightPanelTabs key={chat.id} tabs={[
|
|
50
50
|
{
|
|
51
|
-
|
|
52
|
-
label: t.favorites,
|
|
51
|
+
title: t.favorites,
|
|
53
52
|
content: <WorkspacesTab key="favorite" visibility="favorite" allKS={allKS} agent={agent} stack={stack} onSubmit={onSubmit} />,
|
|
54
53
|
},
|
|
55
54
|
{
|
|
56
|
-
|
|
57
|
-
label: t.all,
|
|
55
|
+
title: t.all,
|
|
58
56
|
content: <WorkspacesTab key="all" visibility="all" allKS={allKS} agent={agent} stack={stack} onSubmit={onSubmit} />,
|
|
59
57
|
},
|
|
60
58
|
]}
|