From 4f13cb742476d81a6b42a2aa5996e82a478c2481 Mon Sep 17 00:00:00 2001 From: Judd <4046440+foldl@users.noreply.github.com> Date: Sun, 17 May 2026 08:13:44 +0800 Subject: [PATCH] webui: support video files as input (#22830) --- tools/ui/src/app.d.ts | 2 ++ .../app/badges/BadgesModality.svelte | 10 ++++--- ...hatAttachmentsListItemThumbnailFile.svelte | 14 ++++++++-- .../ChatAttachmentsPreview.svelte | 24 ++++++++++++++++- .../ChatAttachmentsPreviewCurrentItem.svelte | 15 ++++++++--- ...tAttachmentsPreviewCurrentItemVideo.svelte | 26 +++++++++++++++++++ ...hatAttachmentsPreviewThumbnailStrip.svelte | 5 +++- .../ChatFormActionAddDropdown.svelte | 3 +++ .../ChatFormActionAddSheet.svelte | 3 +++ .../ChatFormActionsAdd.svelte | 4 +++ .../ChatFormActionModels.svelte | 6 +++++ .../ChatFormActions/ChatFormActions.svelte | 3 +++ .../app/chat/ChatScreen/ChatScreen.svelte | 17 +++++++++++- tools/ui/src/lib/constants/attachment-menu.ts | 9 +++++++ tools/ui/src/lib/constants/icons.ts | 10 ++++--- .../src/lib/constants/supported-file-types.ts | 13 ++++++++++ tools/ui/src/lib/enums/attachment.ts | 5 +++- tools/ui/src/lib/enums/chat.ts | 3 ++- tools/ui/src/lib/enums/files.ts | 16 ++++++++++++ tools/ui/src/lib/enums/index.ts | 1 + tools/ui/src/lib/enums/model.ts | 3 ++- .../lib/hooks/use-attachment-menu.svelte.ts | 1 + tools/ui/src/lib/services/chat.service.ts | 19 ++++++++++++++ tools/ui/src/lib/stores/models.svelte.ts | 20 +++++++++++--- tools/ui/src/lib/types/api.d.ts | 5 ++++ tools/ui/src/lib/types/common.d.ts | 7 ++++- tools/ui/src/lib/types/database.d.ts | 9 +++++++ tools/ui/src/lib/types/index.ts | 1 + tools/ui/src/lib/types/models.d.ts | 2 ++ tools/ui/src/lib/utils/attachment-type.ts | 21 +++++++++++++++ .../src/lib/utils/convert-files-to-extra.ts | 15 +++++++++++ tools/ui/src/lib/utils/file-type.ts | 13 ++++++++++ tools/ui/src/lib/utils/index.ts | 2 +- .../src/lib/utils/modality-file-validation.ts | 16 ++++++++++-- .../src/lib/utils/process-uploaded-files.ts | 4 +++ .../tests/stories/fixtures/storybook-mocks.ts | 11 +++++--- 36 files changed, 310 insertions(+), 28 deletions(-) create mode 100644 tools/ui/src/lib/components/app/chat/ChatAttachments/ChatAttachmentsPreview/ChatAttachmentsPreviewCurrentItem/ChatAttachmentsPreviewCurrentItemVideo.svelte diff --git a/tools/ui/src/app.d.ts b/tools/ui/src/app.d.ts index f5af7323c..ec65952e9 100644 --- a/tools/ui/src/app.d.ts +++ b/tools/ui/src/app.d.ts @@ -39,6 +39,7 @@ import type { DatabaseMessage, DatabaseMessageExtra, DatabaseMessageExtraAudioFile, + DatabaseMessageExtraVideoFile, DatabaseMessageExtraImageFile, DatabaseMessageExtraTextFile, DatabaseMessageExtraPdfFile, @@ -102,6 +103,7 @@ declare global { DatabaseMessage, DatabaseMessageExtra, DatabaseMessageExtraAudioFile, + DatabaseMessageExtraVideoFile, DatabaseMessageExtraImageFile, DatabaseMessageExtraTextFile, DatabaseMessageExtraPdfFile, diff --git a/tools/ui/src/lib/components/app/badges/BadgesModality.svelte b/tools/ui/src/lib/components/app/badges/BadgesModality.svelte index 841f1dd9f..d87184ea9 100644 --- a/tools/ui/src/lib/components/app/badges/BadgesModality.svelte +++ b/tools/ui/src/lib/components/app/badges/BadgesModality.svelte @@ -1,5 +1,5 @@ {#each modalities as modality (modality)} - {#if modality === ModelModality.VISION || modality === ModelModality.AUDIO} + {#if modality === ModelModality.VISION || modality === ModelModality.AUDIO || modality === ModelModality.VIDEO} - Vision + Vision (Image) + {:else if modality === ModelModality.VIDEO} +