@quanta-intellect/vessel-browser 0.1.56 → 0.1.60

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,241 +1,397 @@
1
1
  "use strict";
2
2
  const electron = require("electron");
3
- const channels = require("./chunks/channels-Dfv8z3Ui.js");
3
+ const Channels = {
4
+ // Tab management
5
+ TAB_CREATE: "tab:create",
6
+ TAB_CLOSE: "tab:close",
7
+ TAB_SWITCH: "tab:switch",
8
+ TAB_NAVIGATE: "tab:navigate",
9
+ TAB_BACK: "tab:back",
10
+ TAB_FORWARD: "tab:forward",
11
+ TAB_RELOAD: "tab:reload",
12
+ TAB_STATE_GET: "tab:state-get",
13
+ TAB_STATE_UPDATE: "tab:state-update",
14
+ RENDERER_VIEW_READY: "renderer:view-ready",
15
+ // AI
16
+ AI_QUERY: "ai:query",
17
+ AI_STREAM_START: "ai:stream-start",
18
+ AI_STREAM_CHUNK: "ai:stream-chunk",
19
+ AI_STREAM_END: "ai:stream-end",
20
+ AI_STREAM_IDLE: "ai:stream-idle",
21
+ AUTOMATION_ACTIVITY_START: "automation:activity-start",
22
+ AUTOMATION_ACTIVITY_CHUNK: "automation:activity-chunk",
23
+ AUTOMATION_ACTIVITY_END: "automation:activity-end",
24
+ AI_CANCEL: "ai:cancel",
25
+ AI_FETCH_MODELS: "ai:fetch-models",
26
+ AGENT_RUNTIME_GET: "agent-runtime:get",
27
+ AGENT_RUNTIME_UPDATE: "agent-runtime:update",
28
+ AGENT_PAUSE: "agent:pause",
29
+ AGENT_RESUME: "agent:resume",
30
+ AGENT_SET_APPROVAL_MODE: "agent:set-approval-mode",
31
+ AGENT_APPROVAL_RESOLVE: "agent:approval-resolve",
32
+ AGENT_CHECKPOINT_CREATE: "agent:checkpoint-create",
33
+ AGENT_CHECKPOINT_RESTORE: "agent:checkpoint-restore",
34
+ AGENT_SESSION_CAPTURE: "agent:session-capture",
35
+ AGENT_SESSION_RESTORE: "agent:session-restore",
36
+ // Content
37
+ CONTENT_EXTRACT: "content:extract",
38
+ READER_MODE_TOGGLE: "reader:toggle",
39
+ // UI state
40
+ SIDEBAR_TOGGLE: "ui:sidebar-toggle",
41
+ SIDEBAR_RESIZE: "ui:sidebar-resize",
42
+ SIDEBAR_RESIZE_START: "ui:sidebar-resize-start",
43
+ SIDEBAR_RESIZE_COMMIT: "ui:sidebar-resize-commit",
44
+ SIDEBAR_CONTEXT_MENU: "ui:sidebar-context-menu",
45
+ FOCUS_MODE_TOGGLE: "ui:focus-mode-toggle",
46
+ SETTINGS_VISIBILITY: "ui:settings-visibility",
47
+ // Settings
48
+ SETTINGS_GET: "settings:get",
49
+ SETTINGS_SET: "settings:set",
50
+ SETTINGS_UPDATE: "settings:update",
51
+ SETTINGS_HEALTH_GET: "settings:health:get",
52
+ SETTINGS_HEALTH_UPDATE: "settings:health:update",
53
+ // Bookmarks
54
+ BOOKMARKS_GET: "bookmarks:get",
55
+ BOOKMARKS_UPDATE: "bookmarks:update",
56
+ BOOKMARK_SAVE: "bookmarks:save",
57
+ BOOKMARK_REMOVE: "bookmarks:remove",
58
+ BOOKMARK_ADD_CONTEXT_TO_CHAT: "bookmarks:add-context-to-chat",
59
+ FOLDER_CREATE: "bookmarks:folder-create",
60
+ FOLDER_REMOVE: "bookmarks:folder-remove",
61
+ FOLDER_RENAME: "bookmarks:folder-rename",
62
+ // Highlights
63
+ HIGHLIGHT_CAPTURE: "highlights:capture",
64
+ HIGHLIGHT_CAPTURE_RESULT: "highlights:capture-result",
65
+ HIGHLIGHT_NAV_COUNT: "highlights:nav-count",
66
+ HIGHLIGHT_COUNT_UPDATE: "highlights:count-update",
67
+ HIGHLIGHT_NAV_SCROLL: "highlights:nav-scroll",
68
+ HIGHLIGHT_NAV_REMOVE: "highlights:nav-remove",
69
+ HIGHLIGHT_NAV_CLEAR: "highlights:nav-clear",
70
+ SIDEBAR_HIGHLIGHT_ACTION: "highlights:sidebar-action",
71
+ // DevTools panel
72
+ DEVTOOLS_PANEL_TOGGLE: "devtools-panel:toggle",
73
+ DEVTOOLS_PANEL_STATE: "devtools-panel:state",
74
+ DEVTOOLS_PANEL_RESIZE: "devtools-panel:resize",
75
+ // Ad blocking
76
+ TAB_TOGGLE_AD_BLOCK: "tab:toggle-ad-block",
77
+ // Find in page
78
+ FIND_IN_PAGE_START: "find:start",
79
+ FIND_IN_PAGE_NEXT: "find:next",
80
+ FIND_IN_PAGE_STOP: "find:stop",
81
+ FIND_IN_PAGE_RESULT: "find:result",
82
+ // Browsing history
83
+ HISTORY_GET: "history:get",
84
+ HISTORY_SEARCH: "history:search",
85
+ HISTORY_CLEAR: "history:clear",
86
+ HISTORY_UPDATE: "history:update",
87
+ // Downloads
88
+ DOWNLOAD_STARTED: "download:started",
89
+ DOWNLOAD_PROGRESS: "download:progress",
90
+ DOWNLOAD_DONE: "download:done",
91
+ // Premium
92
+ PREMIUM_GET_STATE: "premium:get-state",
93
+ PREMIUM_ACTIVATION_START: "premium:activation-start",
94
+ PREMIUM_ACTIVATION_VERIFY: "premium:activation-verify",
95
+ PREMIUM_CHECKOUT: "premium:checkout",
96
+ PREMIUM_PORTAL: "premium:portal",
97
+ PREMIUM_RESET: "premium:reset",
98
+ PREMIUM_TRACK_CONTEXT: "premium:track-context",
99
+ PREMIUM_UPDATE: "premium:update",
100
+ // Named sessions
101
+ SESSION_LIST: "session:list",
102
+ SESSION_SAVE: "session:save",
103
+ SESSION_LOAD: "session:load",
104
+ SESSION_DELETE: "session:delete",
105
+ // Agent Credential Vault
106
+ VAULT_LIST: "vault:list",
107
+ VAULT_ADD: "vault:add",
108
+ VAULT_UPDATE: "vault:update",
109
+ VAULT_REMOVE: "vault:remove",
110
+ VAULT_AUDIT_LOG: "vault:audit-log",
111
+ // Automation kits
112
+ AUTOMATION_GET_INSTALLED: "automation:get-installed",
113
+ AUTOMATION_INSTALL_FROM_FILE: "automation:install-from-file",
114
+ AUTOMATION_UNINSTALL: "automation:uninstall",
115
+ // Scheduled jobs
116
+ SCHEDULE_GET_ALL: "schedule:get-all",
117
+ SCHEDULE_CREATE: "schedule:create",
118
+ SCHEDULE_UPDATE: "schedule:update",
119
+ SCHEDULE_DELETE: "schedule:delete",
120
+ SCHEDULE_JOBS_UPDATE: "schedule:jobs-update",
121
+ // Window controls
122
+ WINDOW_MINIMIZE: "window:minimize",
123
+ WINDOW_MAXIMIZE: "window:maximize",
124
+ WINDOW_CLOSE: "window:close",
125
+ // Autofill
126
+ AUTOFILL_LIST: "autofill:list",
127
+ AUTOFILL_ADD: "autofill:add",
128
+ AUTOFILL_UPDATE: "autofill:update",
129
+ AUTOFILL_DELETE: "autofill:delete",
130
+ AUTOFILL_FILL: "autofill:fill",
131
+ PAGE_CHANGED: "page:changed",
132
+ PAGE_DIFF_GET: "page:diff-get"
133
+ };
4
134
  const api = {
5
135
  tabs: {
6
- create: (url) => electron.ipcRenderer.invoke(channels.Channels.TAB_CREATE, url),
7
- close: (id) => electron.ipcRenderer.invoke(channels.Channels.TAB_CLOSE, id),
8
- switch: (id) => electron.ipcRenderer.invoke(channels.Channels.TAB_SWITCH, id),
9
- navigate: (id, url, postBody) => electron.ipcRenderer.invoke(channels.Channels.TAB_NAVIGATE, id, url, postBody),
10
- back: (id) => electron.ipcRenderer.invoke(channels.Channels.TAB_BACK, id),
11
- forward: (id) => electron.ipcRenderer.invoke(channels.Channels.TAB_FORWARD, id),
12
- reload: (id) => electron.ipcRenderer.invoke(channels.Channels.TAB_RELOAD, id),
136
+ create: (url) => electron.ipcRenderer.invoke(Channels.TAB_CREATE, url),
137
+ close: (id) => electron.ipcRenderer.invoke(Channels.TAB_CLOSE, id),
138
+ switch: (id) => electron.ipcRenderer.invoke(Channels.TAB_SWITCH, id),
139
+ navigate: (id, url, postBody) => electron.ipcRenderer.invoke(Channels.TAB_NAVIGATE, id, url, postBody),
140
+ back: (id) => electron.ipcRenderer.invoke(Channels.TAB_BACK, id),
141
+ forward: (id) => electron.ipcRenderer.invoke(Channels.TAB_FORWARD, id),
142
+ reload: (id) => electron.ipcRenderer.invoke(Channels.TAB_RELOAD, id),
143
+ toggleAdBlock: (id) => electron.ipcRenderer.invoke(Channels.TAB_TOGGLE_AD_BLOCK, id),
144
+ getState: () => electron.ipcRenderer.invoke(Channels.TAB_STATE_GET),
13
145
  onStateUpdate: (cb) => {
14
146
  const handler = (_, tabs, activeId) => cb(tabs, activeId);
15
- electron.ipcRenderer.on(channels.Channels.TAB_STATE_UPDATE, handler);
16
- return () => electron.ipcRenderer.removeListener(channels.Channels.TAB_STATE_UPDATE, handler);
147
+ electron.ipcRenderer.on(Channels.TAB_STATE_UPDATE, handler);
148
+ return () => electron.ipcRenderer.removeListener(Channels.TAB_STATE_UPDATE, handler);
17
149
  }
18
150
  },
19
151
  ai: {
20
- query: (prompt, history) => electron.ipcRenderer.invoke(channels.Channels.AI_QUERY, prompt, history),
152
+ query: (prompt, history) => electron.ipcRenderer.invoke(Channels.AI_QUERY, prompt, history),
21
153
  onStreamStart: (cb) => {
22
154
  const handler = (_, prompt) => cb(prompt);
23
- electron.ipcRenderer.on(channels.Channels.AI_STREAM_START, handler);
24
- return () => electron.ipcRenderer.removeListener(channels.Channels.AI_STREAM_START, handler);
155
+ electron.ipcRenderer.on(Channels.AI_STREAM_START, handler);
156
+ return () => electron.ipcRenderer.removeListener(Channels.AI_STREAM_START, handler);
25
157
  },
26
158
  onStreamChunk: (cb) => {
27
159
  const handler = (_, chunk) => cb(chunk);
28
- electron.ipcRenderer.on(channels.Channels.AI_STREAM_CHUNK, handler);
29
- return () => electron.ipcRenderer.removeListener(channels.Channels.AI_STREAM_CHUNK, handler);
160
+ electron.ipcRenderer.on(Channels.AI_STREAM_CHUNK, handler);
161
+ return () => electron.ipcRenderer.removeListener(Channels.AI_STREAM_CHUNK, handler);
30
162
  },
31
163
  onStreamEnd: (cb) => {
32
164
  const handler = (_, status = "completed") => cb(status);
33
- electron.ipcRenderer.on(channels.Channels.AI_STREAM_END, handler);
34
- return () => electron.ipcRenderer.removeListener(channels.Channels.AI_STREAM_END, handler);
165
+ electron.ipcRenderer.on(Channels.AI_STREAM_END, handler);
166
+ return () => electron.ipcRenderer.removeListener(Channels.AI_STREAM_END, handler);
35
167
  },
36
168
  onStreamIdle: (cb) => {
37
169
  const handler = () => cb();
38
- electron.ipcRenderer.on(channels.Channels.AI_STREAM_IDLE, handler);
39
- return () => electron.ipcRenderer.removeListener(channels.Channels.AI_STREAM_IDLE, handler);
170
+ electron.ipcRenderer.on(Channels.AI_STREAM_IDLE, handler);
171
+ return () => electron.ipcRenderer.removeListener(Channels.AI_STREAM_IDLE, handler);
40
172
  },
41
173
  onAutomationActivityStart: (cb) => {
42
174
  const handler = (_, entry) => cb(entry);
43
- electron.ipcRenderer.on(channels.Channels.AUTOMATION_ACTIVITY_START, handler);
44
- return () => electron.ipcRenderer.removeListener(channels.Channels.AUTOMATION_ACTIVITY_START, handler);
175
+ electron.ipcRenderer.on(Channels.AUTOMATION_ACTIVITY_START, handler);
176
+ return () => electron.ipcRenderer.removeListener(Channels.AUTOMATION_ACTIVITY_START, handler);
45
177
  },
46
178
  onAutomationActivityChunk: (cb) => {
47
179
  const handler = (_, payload) => cb(payload);
48
- electron.ipcRenderer.on(channels.Channels.AUTOMATION_ACTIVITY_CHUNK, handler);
49
- return () => electron.ipcRenderer.removeListener(channels.Channels.AUTOMATION_ACTIVITY_CHUNK, handler);
180
+ electron.ipcRenderer.on(Channels.AUTOMATION_ACTIVITY_CHUNK, handler);
181
+ return () => electron.ipcRenderer.removeListener(Channels.AUTOMATION_ACTIVITY_CHUNK, handler);
50
182
  },
51
183
  onAutomationActivityEnd: (cb) => {
52
184
  const handler = (_, payload) => cb(payload);
53
- electron.ipcRenderer.on(channels.Channels.AUTOMATION_ACTIVITY_END, handler);
54
- return () => electron.ipcRenderer.removeListener(channels.Channels.AUTOMATION_ACTIVITY_END, handler);
185
+ electron.ipcRenderer.on(Channels.AUTOMATION_ACTIVITY_END, handler);
186
+ return () => electron.ipcRenderer.removeListener(Channels.AUTOMATION_ACTIVITY_END, handler);
55
187
  },
56
- cancel: () => electron.ipcRenderer.invoke(channels.Channels.AI_CANCEL),
57
- fetchModels: (config) => electron.ipcRenderer.invoke(channels.Channels.AI_FETCH_MODELS, config),
58
- getRuntime: () => electron.ipcRenderer.invoke(channels.Channels.AGENT_RUNTIME_GET),
188
+ cancel: () => electron.ipcRenderer.invoke(Channels.AI_CANCEL),
189
+ fetchModels: (config) => electron.ipcRenderer.invoke(Channels.AI_FETCH_MODELS, config),
190
+ getRuntime: () => electron.ipcRenderer.invoke(Channels.AGENT_RUNTIME_GET),
59
191
  onRuntimeUpdate: (cb) => {
60
192
  const handler = (_, state) => cb(state);
61
- electron.ipcRenderer.on(channels.Channels.AGENT_RUNTIME_UPDATE, handler);
62
- return () => electron.ipcRenderer.removeListener(channels.Channels.AGENT_RUNTIME_UPDATE, handler);
63
- },
64
- pause: () => electron.ipcRenderer.invoke(channels.Channels.AGENT_PAUSE),
65
- resume: () => electron.ipcRenderer.invoke(channels.Channels.AGENT_RESUME),
66
- setApprovalMode: (mode) => electron.ipcRenderer.invoke(channels.Channels.AGENT_SET_APPROVAL_MODE, mode),
67
- resolveApproval: (approvalId, approved) => electron.ipcRenderer.invoke(channels.Channels.AGENT_APPROVAL_RESOLVE, approvalId, approved),
68
- createCheckpoint: (name, note) => electron.ipcRenderer.invoke(channels.Channels.AGENT_CHECKPOINT_CREATE, name, note),
69
- restoreCheckpoint: (checkpointId) => electron.ipcRenderer.invoke(channels.Channels.AGENT_CHECKPOINT_RESTORE, checkpointId),
70
- captureSession: (note) => electron.ipcRenderer.invoke(channels.Channels.AGENT_SESSION_CAPTURE, note),
71
- restoreSession: (snapshot) => electron.ipcRenderer.invoke(channels.Channels.AGENT_SESSION_RESTORE, snapshot)
193
+ electron.ipcRenderer.on(Channels.AGENT_RUNTIME_UPDATE, handler);
194
+ return () => electron.ipcRenderer.removeListener(Channels.AGENT_RUNTIME_UPDATE, handler);
195
+ },
196
+ pause: () => electron.ipcRenderer.invoke(Channels.AGENT_PAUSE),
197
+ resume: () => electron.ipcRenderer.invoke(Channels.AGENT_RESUME),
198
+ setApprovalMode: (mode) => electron.ipcRenderer.invoke(Channels.AGENT_SET_APPROVAL_MODE, mode),
199
+ resolveApproval: (approvalId, approved) => electron.ipcRenderer.invoke(Channels.AGENT_APPROVAL_RESOLVE, approvalId, approved),
200
+ createCheckpoint: (name, note) => electron.ipcRenderer.invoke(Channels.AGENT_CHECKPOINT_CREATE, name, note),
201
+ restoreCheckpoint: (checkpointId) => electron.ipcRenderer.invoke(Channels.AGENT_CHECKPOINT_RESTORE, checkpointId),
202
+ captureSession: (note) => electron.ipcRenderer.invoke(Channels.AGENT_SESSION_CAPTURE, note),
203
+ restoreSession: (snapshot) => electron.ipcRenderer.invoke(Channels.AGENT_SESSION_RESTORE, snapshot)
72
204
  },
73
205
  content: {
74
- extract: () => electron.ipcRenderer.invoke(channels.Channels.CONTENT_EXTRACT),
75
- toggleReader: () => electron.ipcRenderer.invoke(channels.Channels.READER_MODE_TOGGLE)
206
+ extract: () => electron.ipcRenderer.invoke(Channels.CONTENT_EXTRACT),
207
+ toggleReader: () => electron.ipcRenderer.invoke(Channels.READER_MODE_TOGGLE)
76
208
  },
77
209
  highlights: {
78
- capture: () => electron.ipcRenderer.invoke(channels.Channels.HIGHLIGHT_CAPTURE),
210
+ capture: () => electron.ipcRenderer.invoke(Channels.HIGHLIGHT_CAPTURE),
79
211
  onCaptureResult: (cb) => {
80
212
  const handler = (_, result) => cb(result);
81
- electron.ipcRenderer.on(channels.Channels.HIGHLIGHT_CAPTURE_RESULT, handler);
82
- return () => electron.ipcRenderer.removeListener(channels.Channels.HIGHLIGHT_CAPTURE_RESULT, handler);
213
+ electron.ipcRenderer.on(Channels.HIGHLIGHT_CAPTURE_RESULT, handler);
214
+ return () => electron.ipcRenderer.removeListener(Channels.HIGHLIGHT_CAPTURE_RESULT, handler);
83
215
  },
84
- getCount: () => electron.ipcRenderer.invoke(channels.Channels.HIGHLIGHT_NAV_COUNT),
216
+ getCount: () => electron.ipcRenderer.invoke(Channels.HIGHLIGHT_NAV_COUNT),
85
217
  onCountUpdate: (cb) => {
86
218
  const handler = (_, count) => cb(count);
87
- electron.ipcRenderer.on(channels.Channels.HIGHLIGHT_COUNT_UPDATE, handler);
88
- return () => electron.ipcRenderer.removeListener(channels.Channels.HIGHLIGHT_COUNT_UPDATE, handler);
219
+ electron.ipcRenderer.on(Channels.HIGHLIGHT_COUNT_UPDATE, handler);
220
+ return () => electron.ipcRenderer.removeListener(Channels.HIGHLIGHT_COUNT_UPDATE, handler);
89
221
  },
90
- scrollTo: (index) => electron.ipcRenderer.invoke(channels.Channels.HIGHLIGHT_NAV_SCROLL, index),
91
- remove: (index) => electron.ipcRenderer.invoke(channels.Channels.HIGHLIGHT_NAV_REMOVE, index),
92
- clearAll: () => electron.ipcRenderer.invoke(channels.Channels.HIGHLIGHT_NAV_CLEAR),
222
+ scrollTo: (index) => electron.ipcRenderer.invoke(Channels.HIGHLIGHT_NAV_SCROLL, index),
223
+ remove: (index) => electron.ipcRenderer.invoke(Channels.HIGHLIGHT_NAV_REMOVE, index),
224
+ clearAll: () => electron.ipcRenderer.invoke(Channels.HIGHLIGHT_NAV_CLEAR),
93
225
  onSidebarAction: (cb) => {
94
226
  const handler = (_, action) => cb(action);
95
- electron.ipcRenderer.on(channels.Channels.SIDEBAR_HIGHLIGHT_ACTION, handler);
96
- return () => electron.ipcRenderer.removeListener(channels.Channels.SIDEBAR_HIGHLIGHT_ACTION, handler);
227
+ electron.ipcRenderer.on(Channels.SIDEBAR_HIGHLIGHT_ACTION, handler);
228
+ return () => electron.ipcRenderer.removeListener(Channels.SIDEBAR_HIGHLIGHT_ACTION, handler);
97
229
  }
98
230
  },
99
231
  ui: {
100
- toggleSidebar: () => electron.ipcRenderer.invoke(channels.Channels.SIDEBAR_TOGGLE),
101
- startSidebarResize: () => electron.ipcRenderer.invoke(channels.Channels.SIDEBAR_RESIZE_START),
102
- resizeSidebar: (width) => electron.ipcRenderer.invoke(channels.Channels.SIDEBAR_RESIZE, width),
103
- commitSidebarResize: () => electron.ipcRenderer.invoke(channels.Channels.SIDEBAR_RESIZE_COMMIT),
232
+ toggleSidebar: () => electron.ipcRenderer.invoke(Channels.SIDEBAR_TOGGLE),
233
+ startSidebarResize: () => electron.ipcRenderer.invoke(Channels.SIDEBAR_RESIZE_START),
234
+ resizeSidebar: (width) => electron.ipcRenderer.invoke(Channels.SIDEBAR_RESIZE, width),
235
+ commitSidebarResize: () => electron.ipcRenderer.invoke(Channels.SIDEBAR_RESIZE_COMMIT),
236
+ rendererReady: (view) => electron.ipcRenderer.send(Channels.RENDERER_VIEW_READY, view),
104
237
  onSidebarContextMenu: (cb) => {
105
238
  const handler = (_, position) => cb(position);
106
- electron.ipcRenderer.on(channels.Channels.SIDEBAR_CONTEXT_MENU, handler);
107
- return () => electron.ipcRenderer.removeListener(channels.Channels.SIDEBAR_CONTEXT_MENU, handler);
239
+ electron.ipcRenderer.on(Channels.SIDEBAR_CONTEXT_MENU, handler);
240
+ return () => electron.ipcRenderer.removeListener(Channels.SIDEBAR_CONTEXT_MENU, handler);
108
241
  },
109
- toggleFocusMode: () => electron.ipcRenderer.invoke(channels.Channels.FOCUS_MODE_TOGGLE),
110
- setSettingsVisibility: (open) => electron.ipcRenderer.invoke(channels.Channels.SETTINGS_VISIBILITY, open)
242
+ toggleFocusMode: () => electron.ipcRenderer.invoke(Channels.FOCUS_MODE_TOGGLE),
243
+ setSettingsVisibility: (open) => electron.ipcRenderer.invoke(Channels.SETTINGS_VISIBILITY, open)
111
244
  },
112
245
  settings: {
113
- get: () => electron.ipcRenderer.invoke(channels.Channels.SETTINGS_GET),
114
- getHealth: () => electron.ipcRenderer.invoke(channels.Channels.SETTINGS_HEALTH_GET),
246
+ get: () => electron.ipcRenderer.invoke(Channels.SETTINGS_GET),
247
+ getHealth: () => electron.ipcRenderer.invoke(Channels.SETTINGS_HEALTH_GET),
115
248
  onHealthUpdate: (cb) => {
116
249
  const handler = (_, health) => cb(health);
117
- electron.ipcRenderer.on(channels.Channels.SETTINGS_HEALTH_UPDATE, handler);
118
- return () => electron.ipcRenderer.removeListener(channels.Channels.SETTINGS_HEALTH_UPDATE, handler);
250
+ electron.ipcRenderer.on(Channels.SETTINGS_HEALTH_UPDATE, handler);
251
+ return () => electron.ipcRenderer.removeListener(Channels.SETTINGS_HEALTH_UPDATE, handler);
119
252
  },
120
- set: (key, value) => electron.ipcRenderer.invoke(channels.Channels.SETTINGS_SET, key, value),
253
+ set: (key, value) => electron.ipcRenderer.invoke(Channels.SETTINGS_SET, key, value),
121
254
  onUpdate: (cb) => {
122
255
  const handler = (_, settings) => cb(settings);
123
- electron.ipcRenderer.on(channels.Channels.SETTINGS_UPDATE, handler);
124
- return () => electron.ipcRenderer.removeListener(channels.Channels.SETTINGS_UPDATE, handler);
256
+ electron.ipcRenderer.on(Channels.SETTINGS_UPDATE, handler);
257
+ return () => electron.ipcRenderer.removeListener(Channels.SETTINGS_UPDATE, handler);
125
258
  }
126
259
  },
127
260
  bookmarks: {
128
- get: () => electron.ipcRenderer.invoke(channels.Channels.BOOKMARKS_GET),
129
- saveBookmark: (url, title, folderId, note) => electron.ipcRenderer.invoke(channels.Channels.BOOKMARK_SAVE, url, title, folderId, note),
130
- removeBookmark: (id) => electron.ipcRenderer.invoke(channels.Channels.BOOKMARK_REMOVE, id),
131
- createFolder: (name) => electron.ipcRenderer.invoke(channels.Channels.FOLDER_CREATE, name),
132
- createFolderWithSummary: (name, summary) => electron.ipcRenderer.invoke(channels.Channels.FOLDER_CREATE, name, summary),
133
- removeFolder: (id, deleteContents) => electron.ipcRenderer.invoke(channels.Channels.FOLDER_REMOVE, id, deleteContents),
134
- renameFolder: (id, newName, summary) => electron.ipcRenderer.invoke(channels.Channels.FOLDER_RENAME, id, newName, summary),
261
+ get: () => electron.ipcRenderer.invoke(Channels.BOOKMARKS_GET),
262
+ saveBookmark: (url, title, folderId, note) => electron.ipcRenderer.invoke(Channels.BOOKMARK_SAVE, url, title, folderId, note),
263
+ removeBookmark: (id) => electron.ipcRenderer.invoke(Channels.BOOKMARK_REMOVE, id),
264
+ createFolder: (name) => electron.ipcRenderer.invoke(Channels.FOLDER_CREATE, name),
265
+ createFolderWithSummary: (name, summary) => electron.ipcRenderer.invoke(Channels.FOLDER_CREATE, name, summary),
266
+ removeFolder: (id, deleteContents) => electron.ipcRenderer.invoke(Channels.FOLDER_REMOVE, id, deleteContents),
267
+ renameFolder: (id, newName, summary) => electron.ipcRenderer.invoke(Channels.FOLDER_RENAME, id, newName, summary),
135
268
  onAddContextToChat: (cb) => {
136
269
  const handler = (_, bookmarkId) => cb(bookmarkId);
137
- electron.ipcRenderer.on(channels.Channels.BOOKMARK_ADD_CONTEXT_TO_CHAT, handler);
270
+ electron.ipcRenderer.on(Channels.BOOKMARK_ADD_CONTEXT_TO_CHAT, handler);
138
271
  return () => electron.ipcRenderer.removeListener(
139
- channels.Channels.BOOKMARK_ADD_CONTEXT_TO_CHAT,
272
+ Channels.BOOKMARK_ADD_CONTEXT_TO_CHAT,
140
273
  handler
141
274
  );
142
275
  },
143
276
  onUpdate: (cb) => {
144
277
  const handler = (_, state) => cb(state);
145
- electron.ipcRenderer.on(channels.Channels.BOOKMARKS_UPDATE, handler);
146
- return () => electron.ipcRenderer.removeListener(channels.Channels.BOOKMARKS_UPDATE, handler);
278
+ electron.ipcRenderer.on(Channels.BOOKMARKS_UPDATE, handler);
279
+ return () => electron.ipcRenderer.removeListener(Channels.BOOKMARKS_UPDATE, handler);
147
280
  }
148
281
  },
149
282
  devtoolsPanel: {
150
- toggle: () => electron.ipcRenderer.invoke(channels.Channels.DEVTOOLS_PANEL_TOGGLE),
151
- resize: (height) => electron.ipcRenderer.invoke(channels.Channels.DEVTOOLS_PANEL_RESIZE, height),
283
+ toggle: () => electron.ipcRenderer.invoke(Channels.DEVTOOLS_PANEL_TOGGLE),
284
+ resize: (height) => electron.ipcRenderer.invoke(Channels.DEVTOOLS_PANEL_RESIZE, height),
152
285
  onStateUpdate: (cb) => {
153
286
  const handler = (_, state) => cb(state);
154
- electron.ipcRenderer.on(channels.Channels.DEVTOOLS_PANEL_STATE, handler);
155
- return () => electron.ipcRenderer.removeListener(channels.Channels.DEVTOOLS_PANEL_STATE, handler);
287
+ electron.ipcRenderer.on(Channels.DEVTOOLS_PANEL_STATE, handler);
288
+ return () => electron.ipcRenderer.removeListener(Channels.DEVTOOLS_PANEL_STATE, handler);
156
289
  }
157
290
  },
158
291
  find: {
159
- start: (text, options) => electron.ipcRenderer.invoke(channels.Channels.FIND_IN_PAGE_START, text, options),
160
- next: (forward) => electron.ipcRenderer.invoke(channels.Channels.FIND_IN_PAGE_NEXT, forward),
161
- stop: (action) => electron.ipcRenderer.invoke(channels.Channels.FIND_IN_PAGE_STOP, action),
292
+ start: (text, options) => electron.ipcRenderer.invoke(Channels.FIND_IN_PAGE_START, text, options),
293
+ next: (forward) => electron.ipcRenderer.invoke(Channels.FIND_IN_PAGE_NEXT, forward),
294
+ stop: (action) => electron.ipcRenderer.invoke(Channels.FIND_IN_PAGE_STOP, action),
162
295
  onResult: (cb) => {
163
296
  const handler = (_, result) => cb(result);
164
- electron.ipcRenderer.on(channels.Channels.FIND_IN_PAGE_RESULT, handler);
165
- return () => electron.ipcRenderer.removeListener(channels.Channels.FIND_IN_PAGE_RESULT, handler);
297
+ electron.ipcRenderer.on(Channels.FIND_IN_PAGE_RESULT, handler);
298
+ return () => electron.ipcRenderer.removeListener(Channels.FIND_IN_PAGE_RESULT, handler);
166
299
  }
167
300
  },
168
301
  history: {
169
- get: () => electron.ipcRenderer.invoke(channels.Channels.HISTORY_GET),
170
- search: (query) => electron.ipcRenderer.invoke(channels.Channels.HISTORY_SEARCH, query),
171
- clear: () => electron.ipcRenderer.invoke(channels.Channels.HISTORY_CLEAR),
302
+ get: () => electron.ipcRenderer.invoke(Channels.HISTORY_GET),
303
+ search: (query) => electron.ipcRenderer.invoke(Channels.HISTORY_SEARCH, query),
304
+ clear: () => electron.ipcRenderer.invoke(Channels.HISTORY_CLEAR),
172
305
  onUpdate: (cb) => {
173
306
  const handler = (_, state) => cb(state);
174
- electron.ipcRenderer.on(channels.Channels.HISTORY_UPDATE, handler);
175
- return () => electron.ipcRenderer.removeListener(channels.Channels.HISTORY_UPDATE, handler);
307
+ electron.ipcRenderer.on(Channels.HISTORY_UPDATE, handler);
308
+ return () => electron.ipcRenderer.removeListener(Channels.HISTORY_UPDATE, handler);
176
309
  }
177
310
  },
178
311
  premium: {
179
- getState: () => electron.ipcRenderer.invoke(channels.Channels.PREMIUM_GET_STATE),
180
- requestCode: (email) => electron.ipcRenderer.invoke(channels.Channels.PREMIUM_ACTIVATION_START, email),
312
+ getState: () => electron.ipcRenderer.invoke(Channels.PREMIUM_GET_STATE),
313
+ requestCode: (email) => electron.ipcRenderer.invoke(Channels.PREMIUM_ACTIVATION_START, email),
181
314
  verifyCode: (email, code, challengeToken) => electron.ipcRenderer.invoke(
182
- channels.Channels.PREMIUM_ACTIVATION_VERIFY,
315
+ Channels.PREMIUM_ACTIVATION_VERIFY,
183
316
  email,
184
317
  code,
185
318
  challengeToken
186
319
  ),
187
- checkout: (email) => electron.ipcRenderer.invoke(channels.Channels.PREMIUM_CHECKOUT, email),
188
- portal: () => electron.ipcRenderer.invoke(channels.Channels.PREMIUM_PORTAL),
189
- reset: () => electron.ipcRenderer.invoke(channels.Channels.PREMIUM_RESET),
190
- trackContext: (step) => electron.ipcRenderer.invoke(channels.Channels.PREMIUM_TRACK_CONTEXT, step),
320
+ checkout: (email) => electron.ipcRenderer.invoke(Channels.PREMIUM_CHECKOUT, email),
321
+ portal: () => electron.ipcRenderer.invoke(Channels.PREMIUM_PORTAL),
322
+ reset: () => electron.ipcRenderer.invoke(Channels.PREMIUM_RESET),
323
+ trackContext: (step) => electron.ipcRenderer.invoke(Channels.PREMIUM_TRACK_CONTEXT, step),
191
324
  onUpdate: (cb) => {
192
325
  const handler = (_, state) => cb(state);
193
- electron.ipcRenderer.on(channels.Channels.PREMIUM_UPDATE, handler);
194
- return () => electron.ipcRenderer.removeListener(channels.Channels.PREMIUM_UPDATE, handler);
326
+ electron.ipcRenderer.on(Channels.PREMIUM_UPDATE, handler);
327
+ return () => electron.ipcRenderer.removeListener(Channels.PREMIUM_UPDATE, handler);
195
328
  }
196
329
  },
330
+ sessions: {
331
+ list: () => electron.ipcRenderer.invoke(Channels.SESSION_LIST),
332
+ save: (name) => electron.ipcRenderer.invoke(Channels.SESSION_SAVE, name),
333
+ load: (name) => electron.ipcRenderer.invoke(Channels.SESSION_LOAD, name),
334
+ delete: (name) => electron.ipcRenderer.invoke(Channels.SESSION_DELETE, name)
335
+ },
197
336
  vault: {
198
- list: () => electron.ipcRenderer.invoke(channels.Channels.VAULT_LIST),
199
- add: (entry) => electron.ipcRenderer.invoke(channels.Channels.VAULT_ADD, entry),
200
- update: (id, updates) => electron.ipcRenderer.invoke(channels.Channels.VAULT_UPDATE, id, updates),
201
- remove: (id) => electron.ipcRenderer.invoke(channels.Channels.VAULT_REMOVE, id),
202
- auditLog: (limit) => electron.ipcRenderer.invoke(channels.Channels.VAULT_AUDIT_LOG, limit)
337
+ list: () => electron.ipcRenderer.invoke(Channels.VAULT_LIST),
338
+ add: (entry) => electron.ipcRenderer.invoke(Channels.VAULT_ADD, entry),
339
+ update: (id, updates) => electron.ipcRenderer.invoke(Channels.VAULT_UPDATE, id, updates),
340
+ remove: (id) => electron.ipcRenderer.invoke(Channels.VAULT_REMOVE, id),
341
+ auditLog: (limit) => electron.ipcRenderer.invoke(Channels.VAULT_AUDIT_LOG, limit)
203
342
  },
204
343
  automation: {
205
- getInstalled: () => electron.ipcRenderer.invoke(channels.Channels.AUTOMATION_GET_INSTALLED),
206
- installFromFile: () => electron.ipcRenderer.invoke(channels.Channels.AUTOMATION_INSTALL_FROM_FILE),
207
- uninstall: (id) => electron.ipcRenderer.invoke(channels.Channels.AUTOMATION_UNINSTALL, id)
344
+ getInstalled: () => electron.ipcRenderer.invoke(Channels.AUTOMATION_GET_INSTALLED),
345
+ installFromFile: () => electron.ipcRenderer.invoke(Channels.AUTOMATION_INSTALL_FROM_FILE),
346
+ uninstall: (id) => electron.ipcRenderer.invoke(Channels.AUTOMATION_UNINSTALL, id)
208
347
  },
209
348
  schedule: {
210
- getAll: () => electron.ipcRenderer.invoke(channels.Channels.SCHEDULE_GET_ALL),
211
- create: (job) => electron.ipcRenderer.invoke(channels.Channels.SCHEDULE_CREATE, job),
212
- update: (id, updates) => electron.ipcRenderer.invoke(channels.Channels.SCHEDULE_UPDATE, id, updates),
213
- delete: (id) => electron.ipcRenderer.invoke(channels.Channels.SCHEDULE_DELETE, id),
349
+ getAll: () => electron.ipcRenderer.invoke(Channels.SCHEDULE_GET_ALL),
350
+ create: (job) => electron.ipcRenderer.invoke(Channels.SCHEDULE_CREATE, job),
351
+ update: (id, updates) => electron.ipcRenderer.invoke(Channels.SCHEDULE_UPDATE, id, updates),
352
+ delete: (id) => electron.ipcRenderer.invoke(Channels.SCHEDULE_DELETE, id),
214
353
  onJobsUpdate: (cb) => {
215
354
  const handler = (_, updatedJobs) => cb(updatedJobs);
216
- electron.ipcRenderer.on(channels.Channels.SCHEDULE_JOBS_UPDATE, handler);
217
- return () => electron.ipcRenderer.removeListener(channels.Channels.SCHEDULE_JOBS_UPDATE, handler);
355
+ electron.ipcRenderer.on(Channels.SCHEDULE_JOBS_UPDATE, handler);
356
+ return () => electron.ipcRenderer.removeListener(Channels.SCHEDULE_JOBS_UPDATE, handler);
218
357
  }
219
358
  },
220
359
  window: {
221
- minimize: () => electron.ipcRenderer.invoke(channels.Channels.WINDOW_MINIMIZE),
222
- maximize: () => electron.ipcRenderer.invoke(channels.Channels.WINDOW_MAXIMIZE),
223
- close: () => electron.ipcRenderer.invoke(channels.Channels.WINDOW_CLOSE)
360
+ minimize: () => electron.ipcRenderer.invoke(Channels.WINDOW_MINIMIZE),
361
+ maximize: () => electron.ipcRenderer.invoke(Channels.WINDOW_MAXIMIZE),
362
+ close: () => electron.ipcRenderer.invoke(Channels.WINDOW_CLOSE)
224
363
  },
225
364
  autofill: {
226
- list: () => electron.ipcRenderer.invoke(channels.Channels.AUTOFILL_LIST),
227
- add: (profile) => electron.ipcRenderer.invoke(channels.Channels.AUTOFILL_ADD, profile),
228
- update: (id, updates) => electron.ipcRenderer.invoke(channels.Channels.AUTOFILL_UPDATE, id, updates),
229
- delete: (id) => electron.ipcRenderer.invoke(channels.Channels.AUTOFILL_DELETE, id),
230
- fill: (profileId) => electron.ipcRenderer.invoke(channels.Channels.AUTOFILL_FILL, profileId)
365
+ list: () => electron.ipcRenderer.invoke(Channels.AUTOFILL_LIST),
366
+ add: (profile) => electron.ipcRenderer.invoke(Channels.AUTOFILL_ADD, profile),
367
+ update: (id, updates) => electron.ipcRenderer.invoke(Channels.AUTOFILL_UPDATE, id, updates),
368
+ delete: (id) => electron.ipcRenderer.invoke(Channels.AUTOFILL_DELETE, id),
369
+ fill: (profileId) => electron.ipcRenderer.invoke(Channels.AUTOFILL_FILL, profileId)
370
+ },
371
+ downloads: {
372
+ onStarted: (cb) => {
373
+ const handler = (_, info) => cb(info);
374
+ electron.ipcRenderer.on(Channels.DOWNLOAD_STARTED, handler);
375
+ return () => electron.ipcRenderer.removeListener(Channels.DOWNLOAD_STARTED, handler);
376
+ },
377
+ onProgress: (cb) => {
378
+ const handler = (_, info) => cb(info);
379
+ electron.ipcRenderer.on(Channels.DOWNLOAD_PROGRESS, handler);
380
+ return () => electron.ipcRenderer.removeListener(Channels.DOWNLOAD_PROGRESS, handler);
381
+ },
382
+ onDone: (cb) => {
383
+ const handler = (_, info) => cb(info);
384
+ electron.ipcRenderer.on(Channels.DOWNLOAD_DONE, handler);
385
+ return () => electron.ipcRenderer.removeListener(Channels.DOWNLOAD_DONE, handler);
386
+ }
231
387
  },
232
388
  pageDiff: {
233
389
  onChanged: (cb) => {
234
390
  const handler = (_, diff) => cb(diff);
235
- electron.ipcRenderer.on(channels.Channels.PAGE_CHANGED, handler);
236
- return () => electron.ipcRenderer.removeListener(channels.Channels.PAGE_CHANGED, handler);
391
+ electron.ipcRenderer.on(Channels.PAGE_CHANGED, handler);
392
+ return () => electron.ipcRenderer.removeListener(Channels.PAGE_CHANGED, handler);
237
393
  },
238
- get: () => electron.ipcRenderer.invoke(channels.Channels.PAGE_DIFF_GET)
394
+ get: () => electron.ipcRenderer.invoke(Channels.PAGE_DIFF_GET)
239
395
  }
240
396
  };
241
397
  electron.contextBridge.exposeInMainWorld("vessel", api);