diff --git a/extensions/engine-management-extension/package.json b/extensions/engine-management-extension/package.json index de690c1ab6..bc21f3957d 100644 --- a/extensions/engine-management-extension/package.json +++ b/extensions/engine-management-extension/package.json @@ -26,7 +26,7 @@ "webpack-cli": "^5.1.4" }, "dependencies": { - "@janhq/core": "file:../../core", + "@janhq/core": "../../core/package.tgz", "cpu-instructions": "^0.0.13", "ky": "^1.7.2", "p-queue": "^8.0.1" diff --git a/extensions/inference-cortex-extension/src/index.ts b/extensions/inference-cortex-extension/src/index.ts index b631a048f9..ba9cb3b369 100644 --- a/extensions/inference-cortex-extension/src/index.ts +++ b/extensions/inference-cortex-extension/src/index.ts @@ -289,7 +289,10 @@ export default class JanInferenceCortexExtension extends LocalOAIEngine { ) if (data.task.type === 'Engine') { - events.emit(EngineEvent.OnEngineUpdate, {}) + events.emit(EngineEvent.OnEngineUpdate, { + type: data.type, + percent: percent, + }) } else { if (data.type === DownloadTypes.DownloadSuccess) { // Delay for the state update from cortex.cpp diff --git a/web/containers/Providers/EventListener.tsx b/web/containers/Providers/EventListener.tsx index f28057626f..55c172beb8 100644 --- a/web/containers/Providers/EventListener.tsx +++ b/web/containers/Providers/EventListener.tsx @@ -96,10 +96,7 @@ const EventListener = () => { const onFileDownloadSuccess = useCallback( async (state: DownloadState) => { console.debug('onFileDownloadSuccess', state) - if ( - state.downloadType !== 'extension' && - state.downloadType !== 'Engine' - ) { + if (state.downloadType !== 'extension') { // Update model metadata accordingly const model = ModelManager.instance().models.get(state.modelId) if (model) { @@ -111,6 +108,12 @@ const EventListener = () => { ...model.parameters, } as Partial) .catch((e) => console.debug(e)) + + toaster({ + title: 'Download Completed', + description: `Download ${state.modelId} completed`, + type: 'success', + }) } state.downloadState = 'end' setDownloadState(state) diff --git a/web/hooks/useDownloadState.ts b/web/hooks/useDownloadState.ts index 32a9d32556..632ca31a8f 100644 --- a/web/hooks/useDownloadState.ts +++ b/web/hooks/useDownloadState.ts @@ -54,11 +54,6 @@ export const setDownloadStateAtom = atom( (e) => e.id === state.modelId ) if (model) set(downloadedModelsAtom, (prev) => [...prev, model]) - toaster({ - title: 'Download Completed', - description: `Download ${state.modelId} completed`, - type: 'success', - }) } } else if (state.downloadState === 'error') { // download error diff --git a/web/screens/Settings/Engines/Settings.tsx b/web/screens/Settings/Engines/Settings.tsx index 4fd04d85a9..572e8f1ef5 100644 --- a/web/screens/Settings/Engines/Settings.tsx +++ b/web/screens/Settings/Engines/Settings.tsx @@ -1,5 +1,5 @@ /* eslint-disable @typescript-eslint/no-explicit-any */ -import React, { useCallback, useEffect, useState } from 'react' +import React, { useCallback, useEffect, useMemo, useState } from 'react' import { EngineEvent, events, InferenceEngine } from '@janhq/core' import { Button, ScrollArea, Badge, Select } from '@janhq/joi' @@ -67,6 +67,14 @@ const EngineSettings = ({ engine }: { engine: InferenceEngine }) => { defaultEngineVariant?.variant ) + const selectedVariant = useMemo( + () => + options?.map((e) => e.value).includes(selectedVariants) + ? selectedVariants + : undefined, + [selectedVariants, options] + ) + useEffect(() => { if (defaultEngineVariant?.variant) { setSelectedVariants(defaultEngineVariant.variant || '') @@ -157,7 +165,7 @@ const EngineSettings = ({ engine }: { engine: InferenceEngine }) => {