* chore: upgrade marked-katex-extension (#3049) * fix: handle long word without space to avoid right panel disappears (#3048) * add time weighted retrieval (#2908) * add time weighted retrieval * add missing configuration for timeWeightedVectorStore * resolving conflict * add missing configuration for timeWeightedVectorStore * resolving conflict * fix linting issues * fix build failed due to requirement for useTimeWeightedRetriever in AssistantTool * update web packages complying the new structure --------- Co-authored-by: thu <thu@treehouse.finance> * fix: model dropdown search by configured model (#3047) * bump version (#3082) (#3083) Co-authored-by: Hoang Ha <64120343+hahuyhoang411@users.noreply.github.com> * Update cortex cpp nightly to version 0.4.18 (#3072) * Update cortex cpp nightly to version 0.4.17 * update linux downloadnitro * cortex 0.4.18 --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Van Pham <64197333+Van-QA@users.noreply.github.com> * chore: update download.ts (#3088) infomation -> information * chore: cortex version update (#3098) * fix: handle words without space (#3101) * fix: handle long thread title without space (#3107) * fix: handle long thread title without space, and make searchbar autofocus inside model dropdown * feat: enable right click to show setting on thread items (#3108) * chore: Bump-cortex-0.4.17 (#3111) * Update cortex cpp nightly to version 0.4.18 (#3114) * Update cortex cpp nightly to version 0.4.18 * cortex 0.4.19 --------- Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Van Pham <64197333+Van-QA@users.noreply.github.com> * Chore: Add stop token for Gemma 2b (#3125) * add stop token * Bump version * fix: set specific version for terminate (#3126) Signed-off-by: James <namnh0122@gmail.com> * feat: add claude 3.5 sonnet (#3129) Signed-off-by: James <namnh0122@gmail.com> * feat: add options config spell check for chat input (#3131) * fixed grammar nits (#3132) * Update cortex cpp nightly to version 0.4.20 * fix: toggle button for expand log section on modal troubleshoot (#3130) * fix: add tooltip messages toolbar (#3138) * fix: handle error message when apikey is not setup (#3149) * fix: title thread not updated on input edit title (#3148) * merge dev * fix move jan folder * Update electron/preload.ts * refactor * Update electron/preload.ts * fix wrong param * use correct method * chore: fix lint --------- Signed-off-by: James <namnh0122@gmail.com> Co-authored-by: Faisal Amir <urmauur@gmail.com> Co-authored-by: Nathan <thu.nhuanh99@gmail.com> Co-authored-by: thu <thu@treehouse.finance> Co-authored-by: Van Pham <64197333+Van-QA@users.noreply.github.com> Co-authored-by: Hoang Ha <64120343+hahuyhoang411@users.noreply.github.com> Co-authored-by: jan-service-account <136811300+jan-service-account@users.noreply.github.com> Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com> Co-authored-by: Ikko Eltociear Ashimine <eltociear@gmail.com> Co-authored-by: NamH <NamNh0122@gmail.com> Co-authored-by: Saurabh <saurabhrai1717@gmail.com> Co-authored-by: Louis <louis@jan.ai>
60 lines
2.0 KiB
TypeScript
60 lines
2.0 KiB
TypeScript
/**
|
|
* Exposes a set of APIs to the renderer process via the contextBridge object.
|
|
* @module preload
|
|
*/
|
|
|
|
import { APIEvents, APIRoutes, AppConfiguration, getAppConfigurations, updateAppConfiguration } from '@janhq/core/node'
|
|
import { contextBridge, ipcRenderer } from 'electron'
|
|
import { readdirSync } from 'fs'
|
|
|
|
const interfaces: { [key: string]: (...args: any[]) => any } = {}
|
|
|
|
// Loop over each route in APIRoutes
|
|
APIRoutes.forEach((method) => {
|
|
// For each method, create a function on the interfaces object
|
|
// This function invokes the method on the ipcRenderer with any provided arguments
|
|
|
|
interfaces[method] = (...args: any[]) => ipcRenderer.invoke(method, ...args)
|
|
|
|
})
|
|
|
|
// Loop over each method in APIEvents
|
|
APIEvents.forEach((method) => {
|
|
// For each method, create a function on the interfaces object
|
|
// This function sets up an event listener on the ipcRenderer for the method
|
|
// The handler for the event is provided as an argument to the function
|
|
interfaces[method] = (handler: any) => ipcRenderer.on(method, handler)
|
|
})
|
|
|
|
|
|
interfaces['changeDataFolder'] = async path => {
|
|
const appConfiguration: AppConfiguration = await ipcRenderer.invoke('getAppConfigurations')
|
|
const currentJanDataFolder = appConfiguration.data_folder
|
|
appConfiguration.data_folder = path
|
|
const reflect = require('@alumna/reflect')
|
|
const { err } = await reflect({
|
|
src: currentJanDataFolder,
|
|
dest: path,
|
|
recursive: true,
|
|
delete: false,
|
|
overwrite: true,
|
|
errorOnExist: false,
|
|
})
|
|
if (err) {
|
|
console.error(err)
|
|
throw err
|
|
}
|
|
await ipcRenderer.invoke('updateAppConfiguration', appConfiguration)
|
|
}
|
|
|
|
interfaces['isDirectoryEmpty'] = async path => {
|
|
const dirChildren = await readdirSync(path)
|
|
return dirChildren.filter((x) => x !== '.DS_Store').length === 0
|
|
}
|
|
|
|
// Expose the 'interfaces' object in the main world under the name 'electronAPI'
|
|
// This allows the renderer process to access these methods directly
|
|
contextBridge.exposeInMainWorld('electronAPI', {
|
|
...interfaces,
|
|
})
|