openpetswithchatandmcp/apps/desktop/prompt-window-preload.cjs
OpenPets Dev 727cce07d6 fix(prompt-window,pet): repair signed-build prompt window and add scale handle + arrow nudges
- Switch prompt window preload path to dirname(import.meta.url) so the
  unpacked preload resolves correctly in packaged (app.asar) builds.
- Load prompt window from a temp file instead of a data: URL; sandboxed
  preload + file:// origin works more reliably with Electron's security
  model than an inline data: document.
- Add renderer error logging through the preload bridge and guard against
  a missing API object.
- Render a visible scale handle inside the pet shell; add CSS so it is
  grabbable, pointer-events-enabled, and not clipped.
- Add keyboard arrow nudges (up/down/left/right) to adjust pet scale when
  the pet window is focused, with a debounced commit.

Refs: v3.1.0-integrated follow-up
2026-06-14 03:14:16 +00:00

16 lines
1 KiB
JavaScript

const { contextBridge, ipcRenderer } = require("electron");
const api = {
getState: () => ipcRenderer.invoke("openpets:prompt-window-state"),
submitPrompt: (prompt) => ipcRenderer.invoke("openpets:prompt-window-submit", prompt),
resetConversation: () => ipcRenderer.invoke("openpets:prompt-window-reset-conversation"),
createConversation: () => ipcRenderer.invoke("openpets:prompt-window-create-conversation"),
switchConversation: (conversationId) => ipcRenderer.invoke("openpets:prompt-window-switch-conversation", conversationId),
deleteConversation: (conversationId) => ipcRenderer.invoke("openpets:prompt-window-delete-conversation", conversationId),
openSettings: () => ipcRenderer.invoke("openpets:prompt-window-open-settings"),
resizeWindow: (bounds) => ipcRenderer.invoke("openpets:prompt-window-resize", bounds),
close: () => ipcRenderer.invoke("openpets:prompt-window-close"),
log: (level, message) => ipcRenderer.send("openpets:prompt-window-log", level, message),
};
contextBridge.exposeInMainWorld("openPetsPromptWindow", api);