@@ -2,6 +2,7 @@ import process from "process";
22import path from "path" ;
33import { DownloadEngineMultiDownload , DownloadEngineNodejs , downloadFile , downloadSequence } from "ipull" ;
44import fs from "fs-extra" ;
5+ import chalk from "chalk" ;
56import { createSplitPartFilename , resolveSplitGgufParts } from "../gguf/utils/resolveSplitGgufParts.js" ;
67import { getFilenameForBinarySplitGgufPartUrls , resolveBinarySplitGgufPartUrls } from "../gguf/utils/resolveBinarySplitGgufPartUrls.js" ;
78import { cliModelsDirectory , isCI } from "../config.js" ;
@@ -10,6 +11,7 @@ import {ModelFileAccessTokens, resolveModelFileAccessTokensTryHeaders} from "./m
1011import { pushAll } from "./pushAll.js" ;
1112import { resolveModelDestination } from "./resolveModelDestination.js" ;
1213import { getAuthorizationHeader , resolveParsedModelUri } from "./parseModelUri.js" ;
14+ import withOra from "./withOra.js" ;
1315
1416export type ModelDownloaderOptions = ( {
1517 /**
@@ -65,7 +67,10 @@ export type ModelDownloaderOptions = ({
6567 */
6668 parallelDownloads ?: number ,
6769
68- tokens ?: ModelFileAccessTokens
70+ tokens ?: ModelFileAccessTokens ,
71+
72+ /** @internal */
73+ _showUriResolvingProgress ?: boolean
6974} ;
7075
7176/**
@@ -436,7 +441,7 @@ export class ModelDownloader {
436441 /** @internal */
437442 public static async _create ( options : ModelDownloaderOptions ) {
438443 const {
439- modelUri, modelUrl, dirPath = cliModelsDirectory , fileName
444+ modelUri, modelUrl, dirPath = cliModelsDirectory , fileName, _showUriResolvingProgress = false
440445 } = options as ModelDownloaderOptions & {
441446 modelUri ?: string ,
442447 modelUrl ?: string
@@ -468,10 +473,22 @@ export class ModelDownloader {
468473 resolvedFileName : fileName || resolvedModelDestination . parsedUri . fullFilename
469474 } ;
470475
471- const resolvedUri = await resolveParsedModelUri ( resolvedModelDestination . parsedUri , {
472- tokens : options . tokens ,
473- authorizationHeader : getAuthorizationHeader ( options . headers )
474- } ) ;
476+ const resolvedUri = _showUriResolvingProgress
477+ ? await withOra ( {
478+ loading : chalk . blue ( "Resolving model URI" ) ,
479+ success : chalk . blue ( "Resolved model URI" ) ,
480+ fail : chalk . blue ( "Failed to resolve model URI" ) ,
481+ noSuccessLiveStatus : true
482+ } , ( ) => {
483+ return resolveParsedModelUri ( resolvedModelDestination . parsedUri , {
484+ tokens : options . tokens ,
485+ authorizationHeader : getAuthorizationHeader ( options . headers )
486+ } ) ;
487+ } )
488+ : await resolveParsedModelUri ( resolvedModelDestination . parsedUri , {
489+ tokens : options . tokens ,
490+ authorizationHeader : getAuthorizationHeader ( options . headers )
491+ } ) ;
475492
476493 return {
477494 resolvedModelUrl : resolvedUri . resolvedUrl ,
0 commit comments