chore: initialize repository baseline
Import the existing Electron + React + TypeScript app as the version-control baseline before the scanner rework (C# input/capture sidecar, resolution-anchored layout profiles, OCR preprocessing, eval harness, rescan-merge, GOOD interop). Housekeeping in this commit: - Remove orphaned temp_inputhelper_block.ts (duplicate of the input-helper script). - Ignore .claude/scheduled_tasks.lock local session state. - Add .gitattributes to normalize line endings (LF in repo). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
const { contextBridge, ipcRenderer } = require("electron");
|
||||
|
||||
contextBridge.exposeInMainWorld("assistantApi", {
|
||||
loadSnapshot: () => ipcRenderer.invoke("snapshot:load"),
|
||||
saveSnapshot: (snapshot) => ipcRenderer.invoke("snapshot:save", snapshot),
|
||||
runMockScan: () => ipcRenderer.invoke("scan:runMock"),
|
||||
listCaptureSources: () => ipcRenderer.invoke("capture:listSources"),
|
||||
captureSource: (sourceId, delayMs = 0, focusGenshin = false, options) => ipcRenderer.invoke("capture:captureSource", sourceId, delayMs, focusGenshin, options),
|
||||
clickScreen: (x, y) => ipcRenderer.invoke("automation:clickScreen", x, y),
|
||||
scrollScreen: (notches, anchorX, anchorY) => ipcRenderer.invoke("automation:scrollScreen", notches, anchorX, anchorY),
|
||||
getAutomationGuard: () => ipcRenderer.invoke("automation:getGuard"),
|
||||
focusMainWindow: () => ipcRenderer.invoke("app:focusMainWindow"),
|
||||
focusGenshin: () => ipcRenderer.invoke("automation:focusGenshin"),
|
||||
getRuntimeInfo: () => ipcRenderer.invoke("app:getRuntimeInfo"),
|
||||
saveReviewSample: (sample) => ipcRenderer.invoke("review:saveSample", sample),
|
||||
loadReviewSamples: (limit = 50) => ipcRenderer.invoke("review:loadSamples", limit),
|
||||
loadScannerLearningRules: () => ipcRenderer.invoke("scanner:loadLearningRules"),
|
||||
saveScannerLearningRules: (rules) => ipcRenderer.invoke("scanner:saveLearningRules", rules),
|
||||
loadArtifacts: () => ipcRenderer.invoke("artifacts:load"),
|
||||
saveArtifacts: (records) => ipcRenderer.invoke("artifacts:saveMany", records),
|
||||
exportGood: (payload) => ipcRenderer.invoke("good:export", payload),
|
||||
publishScannerStatus: (status) => ipcRenderer.invoke("scanner:publishStatus", status),
|
||||
showOverlay: () => ipcRenderer.invoke("overlay:show"),
|
||||
hideOverlay: () => ipcRenderer.invoke("overlay:hide"),
|
||||
onScannerCommand: (callback) => {
|
||||
const listener = (_event, command) => callback(command);
|
||||
ipcRenderer.on("scanner:command", listener);
|
||||
return () => ipcRenderer.removeListener("scanner:command", listener);
|
||||
},
|
||||
});
|
||||
Reference in New Issue
Block a user