diff --git a/src/renderer/src/assets/styles/index.css b/src/renderer/src/assets/styles/index.css index 79a2959363..eaa984270f 100644 --- a/src/renderer/src/assets/styles/index.css +++ b/src/renderer/src/assets/styles/index.css @@ -21,8 +21,8 @@ } .lucide:not(.lucide-custom) { - color: var(--color-icon); -} + color: var(--color-icon); + } } *:focus { diff --git a/src/renderer/src/components/Popups/SelectModelPopup/api-model-popup.tsx b/src/renderer/src/components/Popups/SelectModelPopup/api-model-popup.tsx index 17a644bdcb..5a1a090fc3 100644 --- a/src/renderer/src/components/Popups/SelectModelPopup/api-model-popup.tsx +++ b/src/renderer/src/components/Popups/SelectModelPopup/api-model-popup.tsx @@ -153,7 +153,7 @@ const PopupContainer: React.FC = ({ model, apiFilter, modelFilter, showTa // 获取可选择的模型项(过滤掉分组标题) const modelItems = items.filter((item) => item.type === 'model') return { listItems: items, modelItems } - }, [searchFilter, adaptedModels, showTagFilter, tagFilter, createModelItem]) + }, [searchFilter, adaptedModels, showTagFilter, tagFilter, createModelItem, modelFilter]) const listHeight = useMemo(() => { return Math.min(PAGE_SIZE, listItems.length) * ITEM_HEIGHT diff --git a/src/renderer/src/pages/home/ChatNavbar.tsx b/src/renderer/src/pages/home/ChatNavbar.tsx index a33b5f2bd3..ff80b13e43 100644 --- a/src/renderer/src/pages/home/ChatNavbar.tsx +++ b/src/renderer/src/pages/home/ChatNavbar.tsx @@ -1,7 +1,9 @@ import { NavbarHeader } from '@renderer/components/app/Navbar' import { HStack } from '@renderer/components/Layout' import SearchPopup from '@renderer/components/Popups/SearchPopup' +import { permissionModeCards } from '@renderer/constants/permissionModes' import { useAgent } from '@renderer/hooks/agents/useAgent' +import { useSession } from '@renderer/hooks/agents/useSession' import { useUpdateAgent } from '@renderer/hooks/agents/useUpdateAgent' import { useAssistant } from '@renderer/hooks/useAssistant' import { modelGenerating, useRuntime } from '@renderer/hooks/useRuntime' @@ -11,12 +13,12 @@ import { useShowAssistants, useShowTopics } from '@renderer/hooks/useStore' import { EVENT_NAMES, EventEmitter } from '@renderer/services/EventService' import { useAppDispatch } from '@renderer/store' import { setNarrowMode } from '@renderer/store/settings' -import { ApiModel, Assistant, Topic } from '@renderer/types' +import { ApiModel, Assistant, PermissionMode, Topic } from '@renderer/types' import { Tooltip } from 'antd' import { t } from 'i18next' import { Menu, PanelLeftClose, PanelRightClose, Search } from 'lucide-react' import { AnimatePresence, motion } from 'motion/react' -import { FC, useCallback } from 'react' +import { FC, ReactNode, useCallback } from 'react' import styled from 'styled-components' import AssistantsDrawer from './components/AssistantsDrawer' @@ -40,6 +42,7 @@ const HeaderNavbar: FC = ({ activeAssistant, setActiveAssistant, activeTo const dispatch = useAppDispatch() const { chat } = useRuntime() const { activeTopicOrSession, activeAgentId } = chat + const sessionId = activeAgentId ? (chat.activeSessionId[activeAgentId] ?? null) : null const { agent } = useAgent(activeAgentId) const { updateModel } = useUpdateAgent() @@ -111,7 +114,10 @@ const HeaderNavbar: FC = ({ activeAssistant, setActiveAssistant, activeTo {activeTopicOrSession === 'topic' && } {activeTopicOrSession === 'session' && agent && ( - + <> + + {activeAgentId && sessionId && } + )} @@ -145,6 +151,50 @@ const HeaderNavbar: FC = ({ activeAssistant, setActiveAssistant, activeTo ) } +const SessionWorkspaceMeta: FC<{ agentId: string; sessionId: string }> = ({ agentId, sessionId }) => { + const { session } = useSession(agentId, sessionId) + if (!session) { + return null + } + + const firstAccessiblePath = session.accessible_paths?.[0] + const permissionMode = (session.configuration?.permission_mode ?? 'default') as PermissionMode + const permissionModeCard = permissionModeCards.find((card) => card.mode === permissionMode) + const permissionModeLabel = permissionModeCard + ? t(permissionModeCard.titleKey, permissionModeCard.titleFallback) + : permissionMode + + const infoItems: ReactNode[] = [] + + if (firstAccessiblePath) { + infoItems.push( +
+ {firstAccessiblePath} +
+ ) + } + + infoItems.push( +
+ {permissionModeLabel} +
+ ) + + if (infoItems.length === 0) { + return null + } + + return
{infoItems}
+} + export const NavbarIcon = styled.div` -webkit-app-region: none; border-radius: 8px;