From a02c90cdc5b9d3351eff34a93ac79cc390cc0e6d Mon Sep 17 00:00:00 2001 From: Aleksander Grygier Date: Fri, 4 Sep 2026 13:09:32 +0200 Subject: [PATCH] ui : move discover download types, enums and constants to lib Extract the download-options shared symbols out of the component-local download-options.utils.ts into their lib-scoped folders: QuantOption, DownloadEntryState, BitDepthRow and SelectableFile into $lib/types; a new SelectableFileKind enum (replacing the 'main'/'draft'/'aux' string union) into $lib/enums; SPEC_TYPE, the bit-depth buckets and the draft label into a new models-discover-download.constants.ts. The util keeps only its dedicated functions, with named constants for its magic values. Assisted-by: llama-ui:Qwen3.8-Flash-Next --- .../ModelsDiscoverDetails.svelte | 6 +- ...odelsDiscoverDetailsDownloadOptions.svelte | 17 ++--- ...tailsDownloadOptionsDownloadCommand.svelte | 8 +- ...sDownloadOptionsQuantDownloadButton.svelte | 4 +- ...lsDiscoverDetailsDownloadOptionsRow.svelte | 7 +- .../download-options.utils.ts | 74 ++++++------------- tools/ui/src/lib/constants/index.ts | 1 + .../models-discover-download.constants.ts | 34 +++++++++ tools/ui/src/lib/enums/index.ts | 8 +- tools/ui/src/lib/enums/model.enums.ts | 16 +++- tools/ui/src/lib/types/index.ts | 8 ++ tools/ui/src/lib/types/models-discover.d.ts | 30 ++++++++ 12 files changed, 134 insertions(+), 79 deletions(-) create mode 100644 tools/ui/src/lib/constants/models-discover-download.constants.ts create mode 100644 tools/ui/src/lib/types/models-discover.d.ts diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetails.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetails.svelte index d5ecf4edb2..d9331089fe 100644 --- a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetails.svelte +++ b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetails.svelte @@ -3,9 +3,10 @@ import ModelsDiscoverDetailsHeader from './ModelsDiscoverDetailsHeader.svelte'; import ModelsDiscoverDetailsReadme from './ModelsDiscoverDetailsReadme.svelte'; import ModelsDiscoverDetailsSkeleton from './ModelsDiscoverDetailsSkeleton.svelte'; + import { OTHER_BIT_DEPTH } from '$lib/constants'; import { ModelAuxSidecar } from '$lib/enums'; import { HuggingFaceService } from '$lib/services'; - import type { HfModelDetailInfo, HfModelSibling } from '$lib/types/huggingface'; + import type { BitDepthRow, HfModelDetailInfo, HfModelSibling } from '$lib/types'; import { detectThinkingSupport, detectToolUseSupport } from '$lib/utils'; import { SvelteMap } from 'svelte/reactivity'; @@ -48,7 +49,6 @@ // Draft sidecars (mtp, dflash, dspark, eagle3) present in the repo, e.g. // speculative-decoding drafts. mmproj is excluded: it is vision. - type BitDepthRow = { bitDepth: number; files: HfModelSibling[] }; let bitDepthRows = $derived.by(() => { const rows = new SvelteMap(); @@ -60,7 +60,7 @@ if (meta?.sidecar === ModelAuxSidecar.MMPROJ) continue; const depth = meta?.quant ? HuggingFaceService.getBitDepth(meta.quant) : null; - const bucket = depth ?? 99; + const bucket = depth ?? OTHER_BIT_DEPTH; const list = rows.get(bucket) ?? []; list.push(file); diff --git a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptions.svelte b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptions.svelte index 0e934033c4..3f99329e34 100644 --- a/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptions.svelte +++ b/tools/ui/src/lib/components/app/models/discover/ModelsDiscoverDetails/ModelsDiscoverDetailsDownloadOptions/ModelsDiscoverDetailsDownloadOptions.svelte @@ -1,16 +1,11 @@