]> git.djapps.eu Git - pkg/ggml/sources/llama.cpp/commit
webui: Server tools (#21237)
authorAleksander Grygier <redacted>
Tue, 28 Apr 2026 11:35:49 +0000 (14:35 +0300)
committerGitHub <redacted>
Tue, 28 Apr 2026 11:35:49 +0000 (14:35 +0300)
commitf42e29fdf199481effd31f281bf095ec6067757b
tree11e74b610b1d1bdb61155919426f1b75546385f4
parent19821178be599edaf6a30d12efeaf835e7162995
webui: Server tools (#21237)

* wip: server_tools

* feat: Integrate with `/tools` endpoint

* feat: Builtin + MCP + JSON Schema Tools WIP

* refactor

* displayName -> display_name

* snake_case everywhere

* rm redundant field

* feat: Improvements

* chore: update webui build output

* refactor: Updates after server updates

* chore: update webui build output

* change arg to --tools all

* feat: UI improvements

* chore: update webui build output

* add readme mention

* llama-gen-docs

* chore: update webui build output

* chore: update webui build output

* chore: update webui build output

* feat: Reorganize settings sections

* feat: Separate dialogs for MCP Servers Settings and Import/Export

* feat: WIP

* feat: WIP

* feat: WIP

* feat: WIP

* feat: WIP

* feat: WIP

* WIP on allozaur/20677-webui-server-tools

* feat: UI improvements

* chore: Update package lock

* chore: Run `npm audit fix`

* feat: UI WIP

* feat: UI

* refactor: Desktop Icon Strip DRY

* feat: Cleaner rendering and transition for ChatScreen

* feat: UI improvements

* feat: UI improvement

* feat: Remove MCP Server "enable" switch from Tools submenu

* chore: Run `npm audit fix`

* feat: WIP

* feat: Logic improvements

* refactor: Cleanup

* refactor: DRY

* test: Fix Chat Sidebar UI Tests

* chore: Update package lock

* refactor: Cleanup

* feat: Chat Message Action Card with Continue and Permission flow implementations

* feat: Add agentic steering messages, draft messages and improve chat UX

* fix: Search results UI

* test: Fix unit test

* feat: UI/UX improvements

* refactor: Simplify `useToolsPanel` access in components

* feat: Implement Processing Info Context API

* feat: Implement 'Go back to chat' functionality for settings

* feat: Enhance MCP Server management in Chat Form Attachments

* style: Minor UI and branding adjustments

* chore: Update webui static build output

* chore: Formatting, linting & type checks

* feat: Draft messages logic

* feat: UI improvements

* feat: Steering Messages improvements

* refactor: Cleanup

* refactor: Cleanup

* feat: Improve UI

* refactor: Settings navigation hook

* refactor: DRY code

* refactor: DRY ChatMessageUser UI components

* refactor: Desktop Icon Strip DRY

* refactor: Tools & permissions

* fix: Navigation condition

* refactor: Cleanup

* refactor: Cleanup

* refactor: Cleanup

* fix: preserve reasoning_content in agentic flow

---------

Co-authored-by: Xuan Son Nguyen <redacted>
145 files changed:
tools/server/public/bundle.css
tools/server/public/bundle.js
tools/server/public/index.html
tools/server/webui/package-lock.json
tools/server/webui/src/app.css
tools/server/webui/src/lib/components/app/actions/ActionIcon.svelte
tools/server/webui/src/lib/components/app/chat/ChatForm/ChatForm.svelte
tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActionAttachmentsDropdown.svelte [deleted file]
tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActionAttachmentsSheet.svelte [deleted file]
tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActionMcpServersSubmenu.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActionSubmit.svelte
tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActionToolsSubmenu.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActions.svelte
tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActionsAttachments/ChatFormActionAttachmentsDropdown.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/chat/ChatForm/ChatFormActions/ChatFormActionsAttachments/ChatFormActionAttachmentsSheet.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessage.svelte
tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageActionCard.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageAgenticContent.svelte
tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageAssistant.svelte
tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageContinueRequest.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessagePermissionRequest.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageUser.svelte
tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageUserBubble.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessageUserPending.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/chat/ChatMessages/ChatMessages.svelte
tools/server/webui/src/lib/components/app/chat/ChatScreen/ChatScreen.svelte
tools/server/webui/src/lib/components/app/chat/ChatScreen/ChatScreenForm.svelte
tools/server/webui/src/lib/components/app/chat/ChatScreen/ChatScreenHeader.svelte [deleted file]
tools/server/webui/src/lib/components/app/chat/ChatScreen/ChatScreenProcessingInfo.svelte
tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettings.svelte
tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettingsFields.svelte
tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettingsFooter.svelte
tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettingsImportExportTab.svelte [deleted file]
tools/server/webui/src/lib/components/app/chat/ChatSettings/ChatSettingsToolsTab.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/chat/ChatSidebar/ChatSidebar.svelte
tools/server/webui/src/lib/components/app/chat/ChatSidebar/ChatSidebarActions.svelte
tools/server/webui/src/lib/components/app/chat/ChatSidebar/ChatSidebarConversationItem.svelte
tools/server/webui/src/lib/components/app/chat/index.ts
tools/server/webui/src/lib/components/app/dialogs/DialogChatSettings.svelte [deleted file]
tools/server/webui/src/lib/components/app/dialogs/DialogMcpServerAddNew.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/dialogs/DialogMcpServersSettings.svelte [deleted file]
tools/server/webui/src/lib/components/app/dialogs/index.ts
tools/server/webui/src/lib/components/app/forms/SearchInput.svelte
tools/server/webui/src/lib/components/app/index.ts
tools/server/webui/src/lib/components/app/mcp/McpActiveServersAvatars.svelte
tools/server/webui/src/lib/components/app/mcp/McpServerCard/McpServerCardHeader.svelte
tools/server/webui/src/lib/components/app/mcp/McpServersSelector.svelte [deleted file]
tools/server/webui/src/lib/components/app/mcp/McpServersSettings.svelte [deleted file]
tools/server/webui/src/lib/components/app/mcp/index.ts
tools/server/webui/src/lib/components/app/misc/ConversationSelection.svelte
tools/server/webui/src/lib/components/app/models/ModelId.svelte
tools/server/webui/src/lib/components/app/models/ModelsSelector.svelte [deleted file]
tools/server/webui/src/lib/components/app/models/ModelsSelectorDropdown.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/models/ModelsSelectorList.svelte
tools/server/webui/src/lib/components/app/models/ModelsSelectorOption.svelte
tools/server/webui/src/lib/components/app/models/ModelsSelectorSheet.svelte
tools/server/webui/src/lib/components/app/models/index.ts
tools/server/webui/src/lib/components/app/navigation/DesktopIconStrip.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/navigation/index.ts
tools/server/webui/src/lib/components/app/settings/SettingsChat.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/settings/SettingsChatDesktopSidebar.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/settings/SettingsChatMobileHeader.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/settings/SettingsImportExport.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/settings/SettingsMcpServers.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/app/settings/index.ts [new file with mode: 0644]
tools/server/webui/src/lib/components/ui/button-group/button-group-root.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/ui/button-group/button-group-separator.svelte [new file with mode: 0644]
tools/server/webui/src/lib/components/ui/button-group/index.ts [new file with mode: 0644]
tools/server/webui/src/lib/components/ui/button/button.svelte
tools/server/webui/src/lib/components/ui/dropdown-menu/dropdown-menu-sub-content.svelte
tools/server/webui/src/lib/components/ui/sidebar/constants.ts
tools/server/webui/src/lib/components/ui/sidebar/context.svelte.ts
tools/server/webui/src/lib/components/ui/sidebar/sidebar-footer.svelte
tools/server/webui/src/lib/components/ui/sidebar/sidebar-menu-button.svelte
tools/server/webui/src/lib/components/ui/sidebar/sidebar-provider.svelte
tools/server/webui/src/lib/components/ui/sidebar/sidebar-trigger.svelte
tools/server/webui/src/lib/components/ui/sidebar/sidebar.svelte
tools/server/webui/src/lib/components/ui/tooltip/tooltip-trigger.svelte
tools/server/webui/src/lib/constants/agentic.ts
tools/server/webui/src/lib/constants/api-endpoints.ts
tools/server/webui/src/lib/constants/attachment-menu.ts [new file with mode: 0644]
tools/server/webui/src/lib/constants/chat-form.ts
tools/server/webui/src/lib/constants/context-keys.ts
tools/server/webui/src/lib/constants/index.ts
tools/server/webui/src/lib/constants/localstorage-keys.ts
tools/server/webui/src/lib/constants/mcp.ts
tools/server/webui/src/lib/constants/settings-config.ts
tools/server/webui/src/lib/constants/settings-keys.ts
tools/server/webui/src/lib/constants/settings-sections.ts
tools/server/webui/src/lib/constants/tools.ts [new file with mode: 0644]
tools/server/webui/src/lib/constants/ui.ts
tools/server/webui/src/lib/contexts/chat-settings-config.context.ts [new file with mode: 0644]
tools/server/webui/src/lib/contexts/chat-settings-dialog.context.ts [deleted file]
tools/server/webui/src/lib/contexts/index.ts
tools/server/webui/src/lib/contexts/processing-info.context.ts [new file with mode: 0644]
tools/server/webui/src/lib/enums/attachment.ts
tools/server/webui/src/lib/enums/chat.ts
tools/server/webui/src/lib/enums/index.ts
tools/server/webui/src/lib/enums/tools.ts [new file with mode: 0644]
tools/server/webui/src/lib/enums/ui.ts
tools/server/webui/src/lib/hooks/use-attachment-menu.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/hooks/use-draft-messages.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/hooks/use-keyboard-shortcuts.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/hooks/use-message-edit-context.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/hooks/use-models-selector.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/hooks/use-scroll-carousel.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/hooks/use-settings-navigation.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/hooks/use-tools-panel.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/services/chat.service.ts
tools/server/webui/src/lib/services/parameter-sync.service.ts
tools/server/webui/src/lib/services/tools.service.ts [new file with mode: 0644]
tools/server/webui/src/lib/stores/agentic.svelte.ts
tools/server/webui/src/lib/stores/chat.svelte.ts
tools/server/webui/src/lib/stores/conversations.svelte.ts
tools/server/webui/src/lib/stores/draft-messages.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/stores/permissions.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/stores/settings-referrer.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/stores/settings.svelte.ts
tools/server/webui/src/lib/stores/tools.svelte.ts [new file with mode: 0644]
tools/server/webui/src/lib/types/agentic.d.ts
tools/server/webui/src/lib/types/index.ts
tools/server/webui/src/lib/types/mcp.d.ts
tools/server/webui/src/lib/types/tools.d.ts [new file with mode: 0644]
tools/server/webui/src/lib/utils/agentic.ts
tools/server/webui/src/lib/utils/css.ts [new file with mode: 0644]
tools/server/webui/src/lib/utils/index.ts
tools/server/webui/src/routes/(chat)/+layout.svelte [new file with mode: 0644]
tools/server/webui/src/routes/(chat)/+page.svelte [new file with mode: 0644]
tools/server/webui/src/routes/(chat)/+page.ts [new file with mode: 0644]
tools/server/webui/src/routes/(chat)/chat/[id]/+page.svelte [new file with mode: 0644]
tools/server/webui/src/routes/(chat)/chat/[id]/+page.ts [new file with mode: 0644]
tools/server/webui/src/routes/+layout.svelte
tools/server/webui/src/routes/+page.svelte [deleted file]
tools/server/webui/src/routes/+page.ts [deleted file]
tools/server/webui/src/routes/chat/[id]/+page.svelte [deleted file]
tools/server/webui/src/routes/chat/[id]/+page.ts [deleted file]
tools/server/webui/src/routes/settings/+layout.svelte [new file with mode: 0644]
tools/server/webui/src/routes/settings/chat/[section]/+page.svelte [new file with mode: 0644]
tools/server/webui/src/routes/settings/import-export/+page.svelte [new file with mode: 0644]
tools/server/webui/src/routes/settings/mcp/+page.svelte [new file with mode: 0644]
tools/server/webui/tests/client/components/TestWrapper.svelte
tools/server/webui/tests/stories/ChatSettings.stories.svelte [deleted file]
tools/server/webui/tests/stories/ChatSidebar.stories.svelte
tools/server/webui/tests/unit/agentic-sections.test.ts
tools/server/webui/vite.config.ts