* feat: better hardware setting * chore: update layout * feat: better hardware setting * chore: fix title section * chore: added hardware engine management * chore: integrate gpus and enable set gpu activate * chore: update calculate ram and vram * chore: update calulate vram and ram used * fix: set active gpus * chore: fix progress bar spacing * chore: always update cache vram gpu * chore: update cpu usage percentage * chore: fix type usage cpu * chore: update ram cpus usage getsystemmonitor from new api harware engine management system * test: update test case data using hardware management extension * chore: resolve conflict lock json * chore: cleanup app services * chore: update type OperationSystemInfo * chore: update app service * chore: show list gpus on system monitor * chore: remove monitoring extension * chore: update test case app service * chore: remove unused hooks useGpusSetting * chore: remove monitor from shource index * chore: fix test core * chore: update gpu and cpu info on engine management ext * chore: fix app service test * chore: update test appService include cpu info * chore: filter gpus show or hide on system monitor based activated gpu * chore: remove unused run_mode * chore: remove tensort * chore: update check gpu run_mode * chore: handle undefined gpus * chore: cleanup PR * chore: cleanup process node error * chore: fix type
62 lines
1.5 KiB
TypeScript
62 lines
1.5 KiB
TypeScript
import {
|
|
ExtensionTypeEnum,
|
|
HardwareManagementExtension,
|
|
SupportedPlatform,
|
|
SystemInformation,
|
|
GpuSetting,
|
|
GpuSettingInfo,
|
|
} from '@janhq/core'
|
|
|
|
import { getDefaultStore } from 'jotai'
|
|
|
|
import { toaster } from '@/containers/Toast'
|
|
|
|
import { extensionManager } from '@/extension'
|
|
|
|
import { LocalEngineDefaultVariantAtom } from '@/helpers/atoms/App.atom'
|
|
|
|
export const appService = {
|
|
systemInformation: async (): Promise<SystemInformation | undefined> => {
|
|
const selectedVariants = getDefaultStore().get(
|
|
LocalEngineDefaultVariantAtom
|
|
)
|
|
|
|
const hardwareExtension =
|
|
extensionManager?.get<HardwareManagementExtension>(
|
|
ExtensionTypeEnum.Hardware
|
|
)
|
|
|
|
if (!hardwareExtension) {
|
|
console.warn('Hardware extension not found')
|
|
return undefined
|
|
}
|
|
|
|
const hardwareInfo = await hardwareExtension?.getHardware()
|
|
|
|
const gpuSettingInfo: GpuSetting | undefined = {
|
|
gpus: hardwareInfo.gpus as GpuSettingInfo[],
|
|
vulkan: isMac ? false : selectedVariants.includes('vulkan'),
|
|
cpu: hardwareInfo.cpu,
|
|
}
|
|
|
|
const updateOsInfo = {
|
|
platform: PLATFORM as SupportedPlatform,
|
|
arch: hardwareInfo.cpu.arch,
|
|
freeMem: hardwareInfo.ram.available,
|
|
totalMem: hardwareInfo.ram.total,
|
|
}
|
|
|
|
return {
|
|
gpuSetting: gpuSettingInfo,
|
|
osInfo: updateOsInfo,
|
|
}
|
|
},
|
|
|
|
showToast: (title: string, description: string) => {
|
|
toaster({
|
|
title,
|
|
description: description,
|
|
})
|
|
},
|
|
}
|