37 lines
999 B
TypeScript
37 lines
999 B
TypeScript
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
'use client'
|
|
import { ExtensionType } from '@janhq/core'
|
|
|
|
import { extensionManager } from '@/extension/ExtensionManager'
|
|
|
|
export const isCoreExtensionInstalled = () => {
|
|
if (!extensionManager.get(ExtensionType.Conversational)) {
|
|
return false
|
|
}
|
|
if (!extensionManager.get(ExtensionType.Inference)) return false
|
|
if (!extensionManager.get(ExtensionType.Model)) {
|
|
return false
|
|
}
|
|
return true
|
|
}
|
|
export const setupBaseExtensions = async () => {
|
|
if (
|
|
typeof window === 'undefined' ||
|
|
typeof window.electronAPI === 'undefined'
|
|
) {
|
|
return
|
|
}
|
|
const baseExtensions = await window.electronAPI.baseExtensions()
|
|
|
|
if (
|
|
!extensionManager.get(ExtensionType.Conversational) ||
|
|
!extensionManager.get(ExtensionType.Inference) ||
|
|
!extensionManager.get(ExtensionType.Model)
|
|
) {
|
|
const installed = await extensionManager.install(baseExtensions)
|
|
if (installed) {
|
|
window.location.reload()
|
|
}
|
|
}
|
|
}
|