* hackathon: Refactor Jan into an Electron app * chore: correct NextJS export output path * chore: build electron app for all production targets * fix: correct assetPrefix for production build * chore: preferences shortcut * chore: refactor * chore: refactor into ts * feature/#52-compile-plugin-with-webpack * chore: introduce renderer <=> plugins <=> main invocation * chore: suppress errors - deprecate graphql & next-auth * chore: data plugin functions * add llm support Signed-off-by: James <james@jan.ai> * chore: update plugin * chore: introduce data-plugin * chore: plugin invokes main with args and synchronously * chore: install db plugin should setup db * feature: Data Driver Plugin - Load conversations and messages from data plugin * chore: store text message sent * chore: shared core services * feature: inference service * chore: conversations ordering * adding model management service Signed-off-by: James <james@jan.ai> * chore: strict type * feature: abstract plugin preferences * chore: abstract plugin preference * Revert "chore: strict type" This reverts commit 9be188d827a0b2e081e9e04b192c323799de5bb5. * chore: base-plugin styling * feature: create and delete conversation * chore: fix plugin search & clean messages * chore: typing indicator * chore: refactor useSendChatMessage * chore: persists inserted id to in-memory messages * chore: search conversation history * add delete and download model (#189) Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai> * chore: add empty state for conversation list * chore: prompt missing extension function & fix app crashes * chore: prompt user to install required plugins * chore: add launch background * chore: relaunch app on model downloaded * Jan app add installation instruction (#191) Co-authored-by: Hien To <> * Chore: rename folder web-client to app (#192) * Chore: rename folder web-client to app --------- Co-authored-by: Hien To <> * revert: add pre-install package * add progress for downloading model Signed-off-by: James <james@jan.ai> * feature: production bundle * add download progress Signed-off-by: James <james@jan.ai> * chore: add new chat function * fix: electron asar unpack modules & dynamic import * chore: fix unpack * chore: fix dev pack * Add instruction to build dmg file to README.md * init model dynamically Signed-off-by: James <james@jan.ai> --------- Signed-off-by: James <james@jan.ai> Co-authored-by: James <james@jan.ai> Co-authored-by: NamH <NamNh0122@gmail.com> Co-authored-by: hiento09 <136591877+hiento09@users.noreply.github.com> Co-authored-by: Hien To <>
32 lines
1.1 KiB
JavaScript
32 lines
1.1 KiB
JavaScript
/* eslint-disable react-hooks/rules-of-hooks */
|
|
// Make Pluggable Electron's facade available to the renderer on window.plugins
|
|
const useFacade = require("pluggable-electron/facade");
|
|
useFacade();
|
|
|
|
const { contextBridge, ipcRenderer } = require("electron");
|
|
|
|
contextBridge.exposeInMainWorld("electronAPI", {
|
|
invokePluginFunc: (plugin, method, ...args) =>
|
|
ipcRenderer.invoke("invokePluginFunc", plugin, method, ...args),
|
|
|
|
userData: () => ipcRenderer.invoke("userData"),
|
|
|
|
sendInquiry: (question) => ipcRenderer.invoke("sendInquiry", question),
|
|
|
|
initModel: (product) => ipcRenderer.invoke("initModel", product),
|
|
|
|
getDownloadedModels: () => ipcRenderer.invoke("getDownloadedModels"),
|
|
|
|
getAvailableModels: () => ipcRenderer.invoke("getAvailableModels"),
|
|
|
|
deleteModel: (path) => ipcRenderer.invoke("deleteModel", path),
|
|
|
|
downloadModel: (url) => ipcRenderer.invoke("downloadModel", url),
|
|
|
|
onModelDownloadUpdate: (callback) =>
|
|
ipcRenderer.on("model-download-update", callback),
|
|
|
|
onModelDownloadError: (callback) =>
|
|
ipcRenderer.on("model-download-error", callback),
|
|
});
|