@quanta-intellect/vessel-browser 0.1.56 → 0.1.58
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.
- package/out/main/index.js +33 -4
- package/out/preload/content-script.js +2 -3
- package/out/preload/index.js +246 -125
- package/out/renderer/assets/{index-DRj77a_O.css → index-Bn4ixapT.css} +2 -1
- package/out/renderer/assets/{index-DRVDsSQe.js → index-DGIC7Iij.js} +21 -5
- package/out/renderer/index.html +2 -2
- package/package.json +1 -1
- package/out/preload/chunks/channels-Dfv8z3Ui.js +0 -123
package/out/main/index.js
CHANGED
|
@@ -1376,6 +1376,10 @@ async function highlightBatchOnPage(wc, entries) {
|
|
|
1376
1376
|
}
|
|
1377
1377
|
const HIGHLIGHT_SELECTOR = "'.__vessel-highlight, .__vessel-highlight-text'";
|
|
1378
1378
|
async function getHighlightCount(wc) {
|
|
1379
|
+
if (wc.isDestroyed()) return 0;
|
|
1380
|
+
if (wc.isLoading()) return 0;
|
|
1381
|
+
const currentUrl = wc.getURL();
|
|
1382
|
+
if (!currentUrl || currentUrl === "about:blank") return 0;
|
|
1379
1383
|
return wc.executeJavaScript(
|
|
1380
1384
|
`document.querySelectorAll(${HIGHLIGHT_SELECTOR}).length`
|
|
1381
1385
|
);
|
|
@@ -2615,7 +2619,9 @@ const Channels = {
|
|
|
2615
2619
|
TAB_BACK: "tab:back",
|
|
2616
2620
|
TAB_FORWARD: "tab:forward",
|
|
2617
2621
|
TAB_RELOAD: "tab:reload",
|
|
2622
|
+
TAB_STATE_GET: "tab:state-get",
|
|
2618
2623
|
TAB_STATE_UPDATE: "tab:state-update",
|
|
2624
|
+
RENDERER_VIEW_READY: "renderer:view-ready",
|
|
2619
2625
|
// AI
|
|
2620
2626
|
AI_QUERY: "ai:query",
|
|
2621
2627
|
AI_STREAM_START: "ai:stream-start",
|
|
@@ -5518,9 +5524,9 @@ function layoutViews(state2) {
|
|
|
5518
5524
|
if (uiState.sidebarOpen) {
|
|
5519
5525
|
sidebarView.setBounds({
|
|
5520
5526
|
x: width - sidebarWidth - resizeHandleOverlap,
|
|
5521
|
-
y:
|
|
5527
|
+
y: chromeHeight,
|
|
5522
5528
|
width: sidebarWidth + resizeHandleOverlap,
|
|
5523
|
-
height
|
|
5529
|
+
height: height - chromeHeight
|
|
5524
5530
|
});
|
|
5525
5531
|
} else {
|
|
5526
5532
|
sidebarView.setBounds({ x: width, y: 0, width: 0, height: 0 });
|
|
@@ -22938,6 +22944,10 @@ function registerIpcHandlers(windowState, runtime2) {
|
|
|
22938
22944
|
electron.ipcMain.handle(Channels.TAB_RELOAD, (_, id) => {
|
|
22939
22945
|
tabManager.reloadTab(id);
|
|
22940
22946
|
});
|
|
22947
|
+
electron.ipcMain.handle(Channels.TAB_STATE_GET, () => ({
|
|
22948
|
+
tabs: tabManager.getAllStates(),
|
|
22949
|
+
activeId: tabManager.getActiveTabId() || ""
|
|
22950
|
+
}));
|
|
22941
22951
|
electron.ipcMain.handle(Channels.AI_QUERY, async (_, query, history) => {
|
|
22942
22952
|
const settings2 = loadSettings();
|
|
22943
22953
|
const chatConfig = settings2.chatProvider;
|
|
@@ -23049,6 +23059,16 @@ function registerIpcHandlers(windowState, runtime2) {
|
|
|
23049
23059
|
setSetting("sidebarWidth", windowState.uiState.sidebarWidth);
|
|
23050
23060
|
layoutViews(windowState);
|
|
23051
23061
|
});
|
|
23062
|
+
electron.ipcMain.on(
|
|
23063
|
+
Channels.RENDERER_VIEW_READY,
|
|
23064
|
+
(_event, view) => {
|
|
23065
|
+
if (view !== "sidebar") return;
|
|
23066
|
+
if (!windowState.uiState.sidebarOpen) {
|
|
23067
|
+
windowState.uiState.sidebarOpen = true;
|
|
23068
|
+
layoutViews(windowState);
|
|
23069
|
+
}
|
|
23070
|
+
}
|
|
23071
|
+
);
|
|
23052
23072
|
electron.ipcMain.handle(Channels.FOCUS_MODE_TOGGLE, () => {
|
|
23053
23073
|
windowState.uiState.focusMode = !windowState.uiState.focusMode;
|
|
23054
23074
|
layoutViews(windowState);
|
|
@@ -24750,6 +24770,7 @@ async function bootstrap() {
|
|
|
24750
24770
|
windowState.mainWindow.show();
|
|
24751
24771
|
closeSplash(splash, 0);
|
|
24752
24772
|
};
|
|
24773
|
+
let didInitializeChromeRenderer = false;
|
|
24753
24774
|
const splashTimeout = setTimeout(() => {
|
|
24754
24775
|
console.warn("[bootstrap] Renderer did not finish loading before splash timeout");
|
|
24755
24776
|
revealMainWindow();
|
|
@@ -24776,8 +24797,9 @@ async function bootstrap() {
|
|
|
24776
24797
|
installDownloadHandler(chromeView);
|
|
24777
24798
|
startBackgroundRevalidation();
|
|
24778
24799
|
startTelemetry();
|
|
24779
|
-
|
|
24780
|
-
|
|
24800
|
+
const initializeChromeRenderer = () => {
|
|
24801
|
+
if (didInitializeChromeRenderer) return;
|
|
24802
|
+
didInitializeChromeRenderer = true;
|
|
24781
24803
|
const savedSession = runtime.getState().session;
|
|
24782
24804
|
if (settings2.autoRestoreSession && savedSession?.tabs.length) {
|
|
24783
24805
|
runtime.restoreSession(savedSession);
|
|
@@ -24790,6 +24812,12 @@ async function bootstrap() {
|
|
|
24790
24812
|
clearTimeout(splashTimeout);
|
|
24791
24813
|
revealMainWindow();
|
|
24792
24814
|
void maybeShowStartupHealthDialog(windowState);
|
|
24815
|
+
};
|
|
24816
|
+
chromeView.webContents.once("dom-ready", () => {
|
|
24817
|
+
initializeChromeRenderer();
|
|
24818
|
+
});
|
|
24819
|
+
chromeView.webContents.once("did-finish-load", () => {
|
|
24820
|
+
initializeChromeRenderer();
|
|
24793
24821
|
});
|
|
24794
24822
|
chromeView.webContents.once(
|
|
24795
24823
|
"did-fail-load",
|
|
@@ -24805,6 +24833,7 @@ async function bootstrap() {
|
|
|
24805
24833
|
revealMainWindow();
|
|
24806
24834
|
}
|
|
24807
24835
|
);
|
|
24836
|
+
loadRenderers(chromeView, sidebarView, devtoolsPanelView);
|
|
24808
24837
|
startMcpServer(tabManager, runtime, settings2.mcpPort).catch((err) => {
|
|
24809
24838
|
console.error("[bootstrap] MCP server failed to start:", err);
|
|
24810
24839
|
});
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const electron = require("electron");
|
|
3
|
-
const channels = require("./chunks/channels-Dfv8z3Ui.js");
|
|
4
3
|
var Readability = { exports: {} };
|
|
5
4
|
var hasRequiredReadability$1;
|
|
6
5
|
function requireReadability$1() {
|
|
@@ -2187,11 +2186,11 @@ function emitPageDiffDirty() {
|
|
|
2187
2186
|
const nextSignature = getPageDiffSignature();
|
|
2188
2187
|
if (!nextSignature || nextSignature === lastPageDiffSignature) return;
|
|
2189
2188
|
lastPageDiffSignature = nextSignature;
|
|
2190
|
-
electron.ipcRenderer.send(
|
|
2189
|
+
electron.ipcRenderer.send("page:diff-dirty");
|
|
2191
2190
|
}
|
|
2192
2191
|
function notifyPageDiffActivity() {
|
|
2193
2192
|
if (pageDiffActivityThrottleTimer) return;
|
|
2194
|
-
electron.ipcRenderer.send(
|
|
2193
|
+
electron.ipcRenderer.send("page:diff-activity");
|
|
2195
2194
|
pageDiffActivityThrottleTimer = setTimeout(() => {
|
|
2196
2195
|
pageDiffActivityThrottleTimer = null;
|
|
2197
2196
|
}, PAGE_DIFF_ACTIVITY_THROTTLE_MS);
|
package/out/preload/index.js
CHANGED
|
@@ -1,241 +1,362 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
const electron = require("electron");
|
|
3
|
-
const
|
|
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
|
+
// Find in page
|
|
76
|
+
FIND_IN_PAGE_START: "find:start",
|
|
77
|
+
FIND_IN_PAGE_NEXT: "find:next",
|
|
78
|
+
FIND_IN_PAGE_STOP: "find:stop",
|
|
79
|
+
FIND_IN_PAGE_RESULT: "find:result",
|
|
80
|
+
// Browsing history
|
|
81
|
+
HISTORY_GET: "history:get",
|
|
82
|
+
HISTORY_SEARCH: "history:search",
|
|
83
|
+
HISTORY_CLEAR: "history:clear",
|
|
84
|
+
HISTORY_UPDATE: "history:update",
|
|
85
|
+
// Premium
|
|
86
|
+
PREMIUM_GET_STATE: "premium:get-state",
|
|
87
|
+
PREMIUM_ACTIVATION_START: "premium:activation-start",
|
|
88
|
+
PREMIUM_ACTIVATION_VERIFY: "premium:activation-verify",
|
|
89
|
+
PREMIUM_CHECKOUT: "premium:checkout",
|
|
90
|
+
PREMIUM_PORTAL: "premium:portal",
|
|
91
|
+
PREMIUM_RESET: "premium:reset",
|
|
92
|
+
PREMIUM_TRACK_CONTEXT: "premium:track-context",
|
|
93
|
+
PREMIUM_UPDATE: "premium:update",
|
|
94
|
+
// Agent Credential Vault
|
|
95
|
+
VAULT_LIST: "vault:list",
|
|
96
|
+
VAULT_ADD: "vault:add",
|
|
97
|
+
VAULT_UPDATE: "vault:update",
|
|
98
|
+
VAULT_REMOVE: "vault:remove",
|
|
99
|
+
VAULT_AUDIT_LOG: "vault:audit-log",
|
|
100
|
+
// Automation kits
|
|
101
|
+
AUTOMATION_GET_INSTALLED: "automation:get-installed",
|
|
102
|
+
AUTOMATION_INSTALL_FROM_FILE: "automation:install-from-file",
|
|
103
|
+
AUTOMATION_UNINSTALL: "automation:uninstall",
|
|
104
|
+
// Scheduled jobs
|
|
105
|
+
SCHEDULE_GET_ALL: "schedule:get-all",
|
|
106
|
+
SCHEDULE_CREATE: "schedule:create",
|
|
107
|
+
SCHEDULE_UPDATE: "schedule:update",
|
|
108
|
+
SCHEDULE_DELETE: "schedule:delete",
|
|
109
|
+
SCHEDULE_JOBS_UPDATE: "schedule:jobs-update",
|
|
110
|
+
// Window controls
|
|
111
|
+
WINDOW_MINIMIZE: "window:minimize",
|
|
112
|
+
WINDOW_MAXIMIZE: "window:maximize",
|
|
113
|
+
WINDOW_CLOSE: "window:close",
|
|
114
|
+
// Autofill
|
|
115
|
+
AUTOFILL_LIST: "autofill:list",
|
|
116
|
+
AUTOFILL_ADD: "autofill:add",
|
|
117
|
+
AUTOFILL_UPDATE: "autofill:update",
|
|
118
|
+
AUTOFILL_DELETE: "autofill:delete",
|
|
119
|
+
AUTOFILL_FILL: "autofill:fill",
|
|
120
|
+
PAGE_CHANGED: "page:changed",
|
|
121
|
+
PAGE_DIFF_GET: "page:diff-get"
|
|
122
|
+
};
|
|
4
123
|
const api = {
|
|
5
124
|
tabs: {
|
|
6
|
-
create: (url) => electron.ipcRenderer.invoke(
|
|
7
|
-
close: (id) => electron.ipcRenderer.invoke(
|
|
8
|
-
switch: (id) => electron.ipcRenderer.invoke(
|
|
9
|
-
navigate: (id, url, postBody) => electron.ipcRenderer.invoke(
|
|
10
|
-
back: (id) => electron.ipcRenderer.invoke(
|
|
11
|
-
forward: (id) => electron.ipcRenderer.invoke(
|
|
12
|
-
reload: (id) => electron.ipcRenderer.invoke(
|
|
125
|
+
create: (url) => electron.ipcRenderer.invoke(Channels.TAB_CREATE, url),
|
|
126
|
+
close: (id) => electron.ipcRenderer.invoke(Channels.TAB_CLOSE, id),
|
|
127
|
+
switch: (id) => electron.ipcRenderer.invoke(Channels.TAB_SWITCH, id),
|
|
128
|
+
navigate: (id, url, postBody) => electron.ipcRenderer.invoke(Channels.TAB_NAVIGATE, id, url, postBody),
|
|
129
|
+
back: (id) => electron.ipcRenderer.invoke(Channels.TAB_BACK, id),
|
|
130
|
+
forward: (id) => electron.ipcRenderer.invoke(Channels.TAB_FORWARD, id),
|
|
131
|
+
reload: (id) => electron.ipcRenderer.invoke(Channels.TAB_RELOAD, id),
|
|
132
|
+
getState: () => electron.ipcRenderer.invoke(Channels.TAB_STATE_GET),
|
|
13
133
|
onStateUpdate: (cb) => {
|
|
14
134
|
const handler = (_, tabs, activeId) => cb(tabs, activeId);
|
|
15
|
-
electron.ipcRenderer.on(
|
|
16
|
-
return () => electron.ipcRenderer.removeListener(
|
|
135
|
+
electron.ipcRenderer.on(Channels.TAB_STATE_UPDATE, handler);
|
|
136
|
+
return () => electron.ipcRenderer.removeListener(Channels.TAB_STATE_UPDATE, handler);
|
|
17
137
|
}
|
|
18
138
|
},
|
|
19
139
|
ai: {
|
|
20
|
-
query: (prompt, history) => electron.ipcRenderer.invoke(
|
|
140
|
+
query: (prompt, history) => electron.ipcRenderer.invoke(Channels.AI_QUERY, prompt, history),
|
|
21
141
|
onStreamStart: (cb) => {
|
|
22
142
|
const handler = (_, prompt) => cb(prompt);
|
|
23
|
-
electron.ipcRenderer.on(
|
|
24
|
-
return () => electron.ipcRenderer.removeListener(
|
|
143
|
+
electron.ipcRenderer.on(Channels.AI_STREAM_START, handler);
|
|
144
|
+
return () => electron.ipcRenderer.removeListener(Channels.AI_STREAM_START, handler);
|
|
25
145
|
},
|
|
26
146
|
onStreamChunk: (cb) => {
|
|
27
147
|
const handler = (_, chunk) => cb(chunk);
|
|
28
|
-
electron.ipcRenderer.on(
|
|
29
|
-
return () => electron.ipcRenderer.removeListener(
|
|
148
|
+
electron.ipcRenderer.on(Channels.AI_STREAM_CHUNK, handler);
|
|
149
|
+
return () => electron.ipcRenderer.removeListener(Channels.AI_STREAM_CHUNK, handler);
|
|
30
150
|
},
|
|
31
151
|
onStreamEnd: (cb) => {
|
|
32
152
|
const handler = (_, status = "completed") => cb(status);
|
|
33
|
-
electron.ipcRenderer.on(
|
|
34
|
-
return () => electron.ipcRenderer.removeListener(
|
|
153
|
+
electron.ipcRenderer.on(Channels.AI_STREAM_END, handler);
|
|
154
|
+
return () => electron.ipcRenderer.removeListener(Channels.AI_STREAM_END, handler);
|
|
35
155
|
},
|
|
36
156
|
onStreamIdle: (cb) => {
|
|
37
157
|
const handler = () => cb();
|
|
38
|
-
electron.ipcRenderer.on(
|
|
39
|
-
return () => electron.ipcRenderer.removeListener(
|
|
158
|
+
electron.ipcRenderer.on(Channels.AI_STREAM_IDLE, handler);
|
|
159
|
+
return () => electron.ipcRenderer.removeListener(Channels.AI_STREAM_IDLE, handler);
|
|
40
160
|
},
|
|
41
161
|
onAutomationActivityStart: (cb) => {
|
|
42
162
|
const handler = (_, entry) => cb(entry);
|
|
43
|
-
electron.ipcRenderer.on(
|
|
44
|
-
return () => electron.ipcRenderer.removeListener(
|
|
163
|
+
electron.ipcRenderer.on(Channels.AUTOMATION_ACTIVITY_START, handler);
|
|
164
|
+
return () => electron.ipcRenderer.removeListener(Channels.AUTOMATION_ACTIVITY_START, handler);
|
|
45
165
|
},
|
|
46
166
|
onAutomationActivityChunk: (cb) => {
|
|
47
167
|
const handler = (_, payload) => cb(payload);
|
|
48
|
-
electron.ipcRenderer.on(
|
|
49
|
-
return () => electron.ipcRenderer.removeListener(
|
|
168
|
+
electron.ipcRenderer.on(Channels.AUTOMATION_ACTIVITY_CHUNK, handler);
|
|
169
|
+
return () => electron.ipcRenderer.removeListener(Channels.AUTOMATION_ACTIVITY_CHUNK, handler);
|
|
50
170
|
},
|
|
51
171
|
onAutomationActivityEnd: (cb) => {
|
|
52
172
|
const handler = (_, payload) => cb(payload);
|
|
53
|
-
electron.ipcRenderer.on(
|
|
54
|
-
return () => electron.ipcRenderer.removeListener(
|
|
173
|
+
electron.ipcRenderer.on(Channels.AUTOMATION_ACTIVITY_END, handler);
|
|
174
|
+
return () => electron.ipcRenderer.removeListener(Channels.AUTOMATION_ACTIVITY_END, handler);
|
|
55
175
|
},
|
|
56
|
-
cancel: () => electron.ipcRenderer.invoke(
|
|
57
|
-
fetchModels: (config) => electron.ipcRenderer.invoke(
|
|
58
|
-
getRuntime: () => electron.ipcRenderer.invoke(
|
|
176
|
+
cancel: () => electron.ipcRenderer.invoke(Channels.AI_CANCEL),
|
|
177
|
+
fetchModels: (config) => electron.ipcRenderer.invoke(Channels.AI_FETCH_MODELS, config),
|
|
178
|
+
getRuntime: () => electron.ipcRenderer.invoke(Channels.AGENT_RUNTIME_GET),
|
|
59
179
|
onRuntimeUpdate: (cb) => {
|
|
60
180
|
const handler = (_, state) => cb(state);
|
|
61
|
-
electron.ipcRenderer.on(
|
|
62
|
-
return () => electron.ipcRenderer.removeListener(
|
|
181
|
+
electron.ipcRenderer.on(Channels.AGENT_RUNTIME_UPDATE, handler);
|
|
182
|
+
return () => electron.ipcRenderer.removeListener(Channels.AGENT_RUNTIME_UPDATE, handler);
|
|
63
183
|
},
|
|
64
|
-
pause: () => electron.ipcRenderer.invoke(
|
|
65
|
-
resume: () => electron.ipcRenderer.invoke(
|
|
66
|
-
setApprovalMode: (mode) => electron.ipcRenderer.invoke(
|
|
67
|
-
resolveApproval: (approvalId, approved) => electron.ipcRenderer.invoke(
|
|
68
|
-
createCheckpoint: (name, note) => electron.ipcRenderer.invoke(
|
|
69
|
-
restoreCheckpoint: (checkpointId) => electron.ipcRenderer.invoke(
|
|
70
|
-
captureSession: (note) => electron.ipcRenderer.invoke(
|
|
71
|
-
restoreSession: (snapshot) => electron.ipcRenderer.invoke(
|
|
184
|
+
pause: () => electron.ipcRenderer.invoke(Channels.AGENT_PAUSE),
|
|
185
|
+
resume: () => electron.ipcRenderer.invoke(Channels.AGENT_RESUME),
|
|
186
|
+
setApprovalMode: (mode) => electron.ipcRenderer.invoke(Channels.AGENT_SET_APPROVAL_MODE, mode),
|
|
187
|
+
resolveApproval: (approvalId, approved) => electron.ipcRenderer.invoke(Channels.AGENT_APPROVAL_RESOLVE, approvalId, approved),
|
|
188
|
+
createCheckpoint: (name, note) => electron.ipcRenderer.invoke(Channels.AGENT_CHECKPOINT_CREATE, name, note),
|
|
189
|
+
restoreCheckpoint: (checkpointId) => electron.ipcRenderer.invoke(Channels.AGENT_CHECKPOINT_RESTORE, checkpointId),
|
|
190
|
+
captureSession: (note) => electron.ipcRenderer.invoke(Channels.AGENT_SESSION_CAPTURE, note),
|
|
191
|
+
restoreSession: (snapshot) => electron.ipcRenderer.invoke(Channels.AGENT_SESSION_RESTORE, snapshot)
|
|
72
192
|
},
|
|
73
193
|
content: {
|
|
74
|
-
extract: () => electron.ipcRenderer.invoke(
|
|
75
|
-
toggleReader: () => electron.ipcRenderer.invoke(
|
|
194
|
+
extract: () => electron.ipcRenderer.invoke(Channels.CONTENT_EXTRACT),
|
|
195
|
+
toggleReader: () => electron.ipcRenderer.invoke(Channels.READER_MODE_TOGGLE)
|
|
76
196
|
},
|
|
77
197
|
highlights: {
|
|
78
|
-
capture: () => electron.ipcRenderer.invoke(
|
|
198
|
+
capture: () => electron.ipcRenderer.invoke(Channels.HIGHLIGHT_CAPTURE),
|
|
79
199
|
onCaptureResult: (cb) => {
|
|
80
200
|
const handler = (_, result) => cb(result);
|
|
81
|
-
electron.ipcRenderer.on(
|
|
82
|
-
return () => electron.ipcRenderer.removeListener(
|
|
201
|
+
electron.ipcRenderer.on(Channels.HIGHLIGHT_CAPTURE_RESULT, handler);
|
|
202
|
+
return () => electron.ipcRenderer.removeListener(Channels.HIGHLIGHT_CAPTURE_RESULT, handler);
|
|
83
203
|
},
|
|
84
|
-
getCount: () => electron.ipcRenderer.invoke(
|
|
204
|
+
getCount: () => electron.ipcRenderer.invoke(Channels.HIGHLIGHT_NAV_COUNT),
|
|
85
205
|
onCountUpdate: (cb) => {
|
|
86
206
|
const handler = (_, count) => cb(count);
|
|
87
|
-
electron.ipcRenderer.on(
|
|
88
|
-
return () => electron.ipcRenderer.removeListener(
|
|
207
|
+
electron.ipcRenderer.on(Channels.HIGHLIGHT_COUNT_UPDATE, handler);
|
|
208
|
+
return () => electron.ipcRenderer.removeListener(Channels.HIGHLIGHT_COUNT_UPDATE, handler);
|
|
89
209
|
},
|
|
90
|
-
scrollTo: (index) => electron.ipcRenderer.invoke(
|
|
91
|
-
remove: (index) => electron.ipcRenderer.invoke(
|
|
92
|
-
clearAll: () => electron.ipcRenderer.invoke(
|
|
210
|
+
scrollTo: (index) => electron.ipcRenderer.invoke(Channels.HIGHLIGHT_NAV_SCROLL, index),
|
|
211
|
+
remove: (index) => electron.ipcRenderer.invoke(Channels.HIGHLIGHT_NAV_REMOVE, index),
|
|
212
|
+
clearAll: () => electron.ipcRenderer.invoke(Channels.HIGHLIGHT_NAV_CLEAR),
|
|
93
213
|
onSidebarAction: (cb) => {
|
|
94
214
|
const handler = (_, action) => cb(action);
|
|
95
|
-
electron.ipcRenderer.on(
|
|
96
|
-
return () => electron.ipcRenderer.removeListener(
|
|
215
|
+
electron.ipcRenderer.on(Channels.SIDEBAR_HIGHLIGHT_ACTION, handler);
|
|
216
|
+
return () => electron.ipcRenderer.removeListener(Channels.SIDEBAR_HIGHLIGHT_ACTION, handler);
|
|
97
217
|
}
|
|
98
218
|
},
|
|
99
219
|
ui: {
|
|
100
|
-
toggleSidebar: () => electron.ipcRenderer.invoke(
|
|
101
|
-
startSidebarResize: () => electron.ipcRenderer.invoke(
|
|
102
|
-
resizeSidebar: (width) => electron.ipcRenderer.invoke(
|
|
103
|
-
commitSidebarResize: () => electron.ipcRenderer.invoke(
|
|
220
|
+
toggleSidebar: () => electron.ipcRenderer.invoke(Channels.SIDEBAR_TOGGLE),
|
|
221
|
+
startSidebarResize: () => electron.ipcRenderer.invoke(Channels.SIDEBAR_RESIZE_START),
|
|
222
|
+
resizeSidebar: (width) => electron.ipcRenderer.invoke(Channels.SIDEBAR_RESIZE, width),
|
|
223
|
+
commitSidebarResize: () => electron.ipcRenderer.invoke(Channels.SIDEBAR_RESIZE_COMMIT),
|
|
224
|
+
rendererReady: (view) => electron.ipcRenderer.send(Channels.RENDERER_VIEW_READY, view),
|
|
104
225
|
onSidebarContextMenu: (cb) => {
|
|
105
226
|
const handler = (_, position) => cb(position);
|
|
106
|
-
electron.ipcRenderer.on(
|
|
107
|
-
return () => electron.ipcRenderer.removeListener(
|
|
227
|
+
electron.ipcRenderer.on(Channels.SIDEBAR_CONTEXT_MENU, handler);
|
|
228
|
+
return () => electron.ipcRenderer.removeListener(Channels.SIDEBAR_CONTEXT_MENU, handler);
|
|
108
229
|
},
|
|
109
|
-
toggleFocusMode: () => electron.ipcRenderer.invoke(
|
|
110
|
-
setSettingsVisibility: (open) => electron.ipcRenderer.invoke(
|
|
230
|
+
toggleFocusMode: () => electron.ipcRenderer.invoke(Channels.FOCUS_MODE_TOGGLE),
|
|
231
|
+
setSettingsVisibility: (open) => electron.ipcRenderer.invoke(Channels.SETTINGS_VISIBILITY, open)
|
|
111
232
|
},
|
|
112
233
|
settings: {
|
|
113
|
-
get: () => electron.ipcRenderer.invoke(
|
|
114
|
-
getHealth: () => electron.ipcRenderer.invoke(
|
|
234
|
+
get: () => electron.ipcRenderer.invoke(Channels.SETTINGS_GET),
|
|
235
|
+
getHealth: () => electron.ipcRenderer.invoke(Channels.SETTINGS_HEALTH_GET),
|
|
115
236
|
onHealthUpdate: (cb) => {
|
|
116
237
|
const handler = (_, health) => cb(health);
|
|
117
|
-
electron.ipcRenderer.on(
|
|
118
|
-
return () => electron.ipcRenderer.removeListener(
|
|
238
|
+
electron.ipcRenderer.on(Channels.SETTINGS_HEALTH_UPDATE, handler);
|
|
239
|
+
return () => electron.ipcRenderer.removeListener(Channels.SETTINGS_HEALTH_UPDATE, handler);
|
|
119
240
|
},
|
|
120
|
-
set: (key, value) => electron.ipcRenderer.invoke(
|
|
241
|
+
set: (key, value) => electron.ipcRenderer.invoke(Channels.SETTINGS_SET, key, value),
|
|
121
242
|
onUpdate: (cb) => {
|
|
122
243
|
const handler = (_, settings) => cb(settings);
|
|
123
|
-
electron.ipcRenderer.on(
|
|
124
|
-
return () => electron.ipcRenderer.removeListener(
|
|
244
|
+
electron.ipcRenderer.on(Channels.SETTINGS_UPDATE, handler);
|
|
245
|
+
return () => electron.ipcRenderer.removeListener(Channels.SETTINGS_UPDATE, handler);
|
|
125
246
|
}
|
|
126
247
|
},
|
|
127
248
|
bookmarks: {
|
|
128
|
-
get: () => electron.ipcRenderer.invoke(
|
|
129
|
-
saveBookmark: (url, title, folderId, note) => electron.ipcRenderer.invoke(
|
|
130
|
-
removeBookmark: (id) => electron.ipcRenderer.invoke(
|
|
131
|
-
createFolder: (name) => electron.ipcRenderer.invoke(
|
|
132
|
-
createFolderWithSummary: (name, summary) => electron.ipcRenderer.invoke(
|
|
133
|
-
removeFolder: (id, deleteContents) => electron.ipcRenderer.invoke(
|
|
134
|
-
renameFolder: (id, newName, summary) => electron.ipcRenderer.invoke(
|
|
249
|
+
get: () => electron.ipcRenderer.invoke(Channels.BOOKMARKS_GET),
|
|
250
|
+
saveBookmark: (url, title, folderId, note) => electron.ipcRenderer.invoke(Channels.BOOKMARK_SAVE, url, title, folderId, note),
|
|
251
|
+
removeBookmark: (id) => electron.ipcRenderer.invoke(Channels.BOOKMARK_REMOVE, id),
|
|
252
|
+
createFolder: (name) => electron.ipcRenderer.invoke(Channels.FOLDER_CREATE, name),
|
|
253
|
+
createFolderWithSummary: (name, summary) => electron.ipcRenderer.invoke(Channels.FOLDER_CREATE, name, summary),
|
|
254
|
+
removeFolder: (id, deleteContents) => electron.ipcRenderer.invoke(Channels.FOLDER_REMOVE, id, deleteContents),
|
|
255
|
+
renameFolder: (id, newName, summary) => electron.ipcRenderer.invoke(Channels.FOLDER_RENAME, id, newName, summary),
|
|
135
256
|
onAddContextToChat: (cb) => {
|
|
136
257
|
const handler = (_, bookmarkId) => cb(bookmarkId);
|
|
137
|
-
electron.ipcRenderer.on(
|
|
258
|
+
electron.ipcRenderer.on(Channels.BOOKMARK_ADD_CONTEXT_TO_CHAT, handler);
|
|
138
259
|
return () => electron.ipcRenderer.removeListener(
|
|
139
|
-
|
|
260
|
+
Channels.BOOKMARK_ADD_CONTEXT_TO_CHAT,
|
|
140
261
|
handler
|
|
141
262
|
);
|
|
142
263
|
},
|
|
143
264
|
onUpdate: (cb) => {
|
|
144
265
|
const handler = (_, state) => cb(state);
|
|
145
|
-
electron.ipcRenderer.on(
|
|
146
|
-
return () => electron.ipcRenderer.removeListener(
|
|
266
|
+
electron.ipcRenderer.on(Channels.BOOKMARKS_UPDATE, handler);
|
|
267
|
+
return () => electron.ipcRenderer.removeListener(Channels.BOOKMARKS_UPDATE, handler);
|
|
147
268
|
}
|
|
148
269
|
},
|
|
149
270
|
devtoolsPanel: {
|
|
150
|
-
toggle: () => electron.ipcRenderer.invoke(
|
|
151
|
-
resize: (height) => electron.ipcRenderer.invoke(
|
|
271
|
+
toggle: () => electron.ipcRenderer.invoke(Channels.DEVTOOLS_PANEL_TOGGLE),
|
|
272
|
+
resize: (height) => electron.ipcRenderer.invoke(Channels.DEVTOOLS_PANEL_RESIZE, height),
|
|
152
273
|
onStateUpdate: (cb) => {
|
|
153
274
|
const handler = (_, state) => cb(state);
|
|
154
|
-
electron.ipcRenderer.on(
|
|
155
|
-
return () => electron.ipcRenderer.removeListener(
|
|
275
|
+
electron.ipcRenderer.on(Channels.DEVTOOLS_PANEL_STATE, handler);
|
|
276
|
+
return () => electron.ipcRenderer.removeListener(Channels.DEVTOOLS_PANEL_STATE, handler);
|
|
156
277
|
}
|
|
157
278
|
},
|
|
158
279
|
find: {
|
|
159
|
-
start: (text, options) => electron.ipcRenderer.invoke(
|
|
160
|
-
next: (forward) => electron.ipcRenderer.invoke(
|
|
161
|
-
stop: (action) => electron.ipcRenderer.invoke(
|
|
280
|
+
start: (text, options) => electron.ipcRenderer.invoke(Channels.FIND_IN_PAGE_START, text, options),
|
|
281
|
+
next: (forward) => electron.ipcRenderer.invoke(Channels.FIND_IN_PAGE_NEXT, forward),
|
|
282
|
+
stop: (action) => electron.ipcRenderer.invoke(Channels.FIND_IN_PAGE_STOP, action),
|
|
162
283
|
onResult: (cb) => {
|
|
163
284
|
const handler = (_, result) => cb(result);
|
|
164
|
-
electron.ipcRenderer.on(
|
|
165
|
-
return () => electron.ipcRenderer.removeListener(
|
|
285
|
+
electron.ipcRenderer.on(Channels.FIND_IN_PAGE_RESULT, handler);
|
|
286
|
+
return () => electron.ipcRenderer.removeListener(Channels.FIND_IN_PAGE_RESULT, handler);
|
|
166
287
|
}
|
|
167
288
|
},
|
|
168
289
|
history: {
|
|
169
|
-
get: () => electron.ipcRenderer.invoke(
|
|
170
|
-
search: (query) => electron.ipcRenderer.invoke(
|
|
171
|
-
clear: () => electron.ipcRenderer.invoke(
|
|
290
|
+
get: () => electron.ipcRenderer.invoke(Channels.HISTORY_GET),
|
|
291
|
+
search: (query) => electron.ipcRenderer.invoke(Channels.HISTORY_SEARCH, query),
|
|
292
|
+
clear: () => electron.ipcRenderer.invoke(Channels.HISTORY_CLEAR),
|
|
172
293
|
onUpdate: (cb) => {
|
|
173
294
|
const handler = (_, state) => cb(state);
|
|
174
|
-
electron.ipcRenderer.on(
|
|
175
|
-
return () => electron.ipcRenderer.removeListener(
|
|
295
|
+
electron.ipcRenderer.on(Channels.HISTORY_UPDATE, handler);
|
|
296
|
+
return () => electron.ipcRenderer.removeListener(Channels.HISTORY_UPDATE, handler);
|
|
176
297
|
}
|
|
177
298
|
},
|
|
178
299
|
premium: {
|
|
179
|
-
getState: () => electron.ipcRenderer.invoke(
|
|
180
|
-
requestCode: (email) => electron.ipcRenderer.invoke(
|
|
300
|
+
getState: () => electron.ipcRenderer.invoke(Channels.PREMIUM_GET_STATE),
|
|
301
|
+
requestCode: (email) => electron.ipcRenderer.invoke(Channels.PREMIUM_ACTIVATION_START, email),
|
|
181
302
|
verifyCode: (email, code, challengeToken) => electron.ipcRenderer.invoke(
|
|
182
|
-
|
|
303
|
+
Channels.PREMIUM_ACTIVATION_VERIFY,
|
|
183
304
|
email,
|
|
184
305
|
code,
|
|
185
306
|
challengeToken
|
|
186
307
|
),
|
|
187
|
-
checkout: (email) => electron.ipcRenderer.invoke(
|
|
188
|
-
portal: () => electron.ipcRenderer.invoke(
|
|
189
|
-
reset: () => electron.ipcRenderer.invoke(
|
|
190
|
-
trackContext: (step) => electron.ipcRenderer.invoke(
|
|
308
|
+
checkout: (email) => electron.ipcRenderer.invoke(Channels.PREMIUM_CHECKOUT, email),
|
|
309
|
+
portal: () => electron.ipcRenderer.invoke(Channels.PREMIUM_PORTAL),
|
|
310
|
+
reset: () => electron.ipcRenderer.invoke(Channels.PREMIUM_RESET),
|
|
311
|
+
trackContext: (step) => electron.ipcRenderer.invoke(Channels.PREMIUM_TRACK_CONTEXT, step),
|
|
191
312
|
onUpdate: (cb) => {
|
|
192
313
|
const handler = (_, state) => cb(state);
|
|
193
|
-
electron.ipcRenderer.on(
|
|
194
|
-
return () => electron.ipcRenderer.removeListener(
|
|
314
|
+
electron.ipcRenderer.on(Channels.PREMIUM_UPDATE, handler);
|
|
315
|
+
return () => electron.ipcRenderer.removeListener(Channels.PREMIUM_UPDATE, handler);
|
|
195
316
|
}
|
|
196
317
|
},
|
|
197
318
|
vault: {
|
|
198
|
-
list: () => electron.ipcRenderer.invoke(
|
|
199
|
-
add: (entry) => electron.ipcRenderer.invoke(
|
|
200
|
-
update: (id, updates) => electron.ipcRenderer.invoke(
|
|
201
|
-
remove: (id) => electron.ipcRenderer.invoke(
|
|
202
|
-
auditLog: (limit) => electron.ipcRenderer.invoke(
|
|
319
|
+
list: () => electron.ipcRenderer.invoke(Channels.VAULT_LIST),
|
|
320
|
+
add: (entry) => electron.ipcRenderer.invoke(Channels.VAULT_ADD, entry),
|
|
321
|
+
update: (id, updates) => electron.ipcRenderer.invoke(Channels.VAULT_UPDATE, id, updates),
|
|
322
|
+
remove: (id) => electron.ipcRenderer.invoke(Channels.VAULT_REMOVE, id),
|
|
323
|
+
auditLog: (limit) => electron.ipcRenderer.invoke(Channels.VAULT_AUDIT_LOG, limit)
|
|
203
324
|
},
|
|
204
325
|
automation: {
|
|
205
|
-
getInstalled: () => electron.ipcRenderer.invoke(
|
|
206
|
-
installFromFile: () => electron.ipcRenderer.invoke(
|
|
207
|
-
uninstall: (id) => electron.ipcRenderer.invoke(
|
|
326
|
+
getInstalled: () => electron.ipcRenderer.invoke(Channels.AUTOMATION_GET_INSTALLED),
|
|
327
|
+
installFromFile: () => electron.ipcRenderer.invoke(Channels.AUTOMATION_INSTALL_FROM_FILE),
|
|
328
|
+
uninstall: (id) => electron.ipcRenderer.invoke(Channels.AUTOMATION_UNINSTALL, id)
|
|
208
329
|
},
|
|
209
330
|
schedule: {
|
|
210
|
-
getAll: () => electron.ipcRenderer.invoke(
|
|
211
|
-
create: (job) => electron.ipcRenderer.invoke(
|
|
212
|
-
update: (id, updates) => electron.ipcRenderer.invoke(
|
|
213
|
-
delete: (id) => electron.ipcRenderer.invoke(
|
|
331
|
+
getAll: () => electron.ipcRenderer.invoke(Channels.SCHEDULE_GET_ALL),
|
|
332
|
+
create: (job) => electron.ipcRenderer.invoke(Channels.SCHEDULE_CREATE, job),
|
|
333
|
+
update: (id, updates) => electron.ipcRenderer.invoke(Channels.SCHEDULE_UPDATE, id, updates),
|
|
334
|
+
delete: (id) => electron.ipcRenderer.invoke(Channels.SCHEDULE_DELETE, id),
|
|
214
335
|
onJobsUpdate: (cb) => {
|
|
215
336
|
const handler = (_, updatedJobs) => cb(updatedJobs);
|
|
216
|
-
electron.ipcRenderer.on(
|
|
217
|
-
return () => electron.ipcRenderer.removeListener(
|
|
337
|
+
electron.ipcRenderer.on(Channels.SCHEDULE_JOBS_UPDATE, handler);
|
|
338
|
+
return () => electron.ipcRenderer.removeListener(Channels.SCHEDULE_JOBS_UPDATE, handler);
|
|
218
339
|
}
|
|
219
340
|
},
|
|
220
341
|
window: {
|
|
221
|
-
minimize: () => electron.ipcRenderer.invoke(
|
|
222
|
-
maximize: () => electron.ipcRenderer.invoke(
|
|
223
|
-
close: () => electron.ipcRenderer.invoke(
|
|
342
|
+
minimize: () => electron.ipcRenderer.invoke(Channels.WINDOW_MINIMIZE),
|
|
343
|
+
maximize: () => electron.ipcRenderer.invoke(Channels.WINDOW_MAXIMIZE),
|
|
344
|
+
close: () => electron.ipcRenderer.invoke(Channels.WINDOW_CLOSE)
|
|
224
345
|
},
|
|
225
346
|
autofill: {
|
|
226
|
-
list: () => electron.ipcRenderer.invoke(
|
|
227
|
-
add: (profile) => electron.ipcRenderer.invoke(
|
|
228
|
-
update: (id, updates) => electron.ipcRenderer.invoke(
|
|
229
|
-
delete: (id) => electron.ipcRenderer.invoke(
|
|
230
|
-
fill: (profileId) => electron.ipcRenderer.invoke(
|
|
347
|
+
list: () => electron.ipcRenderer.invoke(Channels.AUTOFILL_LIST),
|
|
348
|
+
add: (profile) => electron.ipcRenderer.invoke(Channels.AUTOFILL_ADD, profile),
|
|
349
|
+
update: (id, updates) => electron.ipcRenderer.invoke(Channels.AUTOFILL_UPDATE, id, updates),
|
|
350
|
+
delete: (id) => electron.ipcRenderer.invoke(Channels.AUTOFILL_DELETE, id),
|
|
351
|
+
fill: (profileId) => electron.ipcRenderer.invoke(Channels.AUTOFILL_FILL, profileId)
|
|
231
352
|
},
|
|
232
353
|
pageDiff: {
|
|
233
354
|
onChanged: (cb) => {
|
|
234
355
|
const handler = (_, diff) => cb(diff);
|
|
235
|
-
electron.ipcRenderer.on(
|
|
236
|
-
return () => electron.ipcRenderer.removeListener(
|
|
356
|
+
electron.ipcRenderer.on(Channels.PAGE_CHANGED, handler);
|
|
357
|
+
return () => electron.ipcRenderer.removeListener(Channels.PAGE_CHANGED, handler);
|
|
237
358
|
},
|
|
238
|
-
get: () => electron.ipcRenderer.invoke(
|
|
359
|
+
get: () => electron.ipcRenderer.invoke(Channels.PAGE_DIFF_GET)
|
|
239
360
|
}
|
|
240
361
|
};
|
|
241
362
|
electron.contextBridge.exposeInMainWorld("vessel", api);
|
|
@@ -1511,7 +1511,7 @@
|
|
|
1511
1511
|
|
|
1512
1512
|
.sidebar-tab {
|
|
1513
1513
|
position: relative;
|
|
1514
|
-
padding: 9px
|
|
1514
|
+
padding: 9px 8px 10px;
|
|
1515
1515
|
font-size: 11.5px;
|
|
1516
1516
|
white-space: nowrap;
|
|
1517
1517
|
flex-shrink: 0;
|
|
@@ -4767,6 +4767,7 @@ button:active:not(:disabled) {
|
|
|
4767
4767
|
|
|
4768
4768
|
.chrome {
|
|
4769
4769
|
position: relative;
|
|
4770
|
+
-webkit-app-region: no-drag;
|
|
4770
4771
|
}
|
|
4771
4772
|
|
|
4772
4773
|
.loading-bar {
|
|
@@ -1489,15 +1489,30 @@ delegateEvents(["click"]);
|
|
|
1489
1489
|
const [tabs, setTabs] = createSignal([]);
|
|
1490
1490
|
const [activeTabId, setActiveTabId] = createSignal("");
|
|
1491
1491
|
let initialized$3 = false;
|
|
1492
|
+
let initPromise$2 = null;
|
|
1492
1493
|
function init$3() {
|
|
1494
|
+
if (initPromise$2) return initPromise$2;
|
|
1493
1495
|
if (initialized$3) return;
|
|
1494
1496
|
initialized$3 = true;
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1497
|
+
initPromise$2 = (async () => {
|
|
1498
|
+
try {
|
|
1499
|
+
window.vessel.tabs.onStateUpdate(
|
|
1500
|
+
(newTabs, newActiveId) => {
|
|
1501
|
+
setTabs(newTabs);
|
|
1502
|
+
setActiveTabId(newActiveId);
|
|
1503
|
+
}
|
|
1504
|
+
);
|
|
1505
|
+
const initialState = await window.vessel.tabs.getState();
|
|
1506
|
+
setTabs(initialState.tabs);
|
|
1507
|
+
setActiveTabId(initialState.activeId);
|
|
1508
|
+
} catch (error) {
|
|
1509
|
+
initialized$3 = false;
|
|
1510
|
+
console.error("Failed to initialize tabs store", error);
|
|
1511
|
+
} finally {
|
|
1512
|
+
initPromise$2 = null;
|
|
1499
1513
|
}
|
|
1500
|
-
);
|
|
1514
|
+
})();
|
|
1515
|
+
return initPromise$2;
|
|
1501
1516
|
}
|
|
1502
1517
|
function useTabs() {
|
|
1503
1518
|
init$3();
|
|
@@ -9447,6 +9462,7 @@ const App = () => {
|
|
|
9447
9462
|
}
|
|
9448
9463
|
};
|
|
9449
9464
|
onMount(() => {
|
|
9465
|
+
window.vessel.ui.rendererReady(view);
|
|
9450
9466
|
if (view !== "chrome") return;
|
|
9451
9467
|
const cleanupKeys = setupKeybindings({
|
|
9452
9468
|
openCommandBar,
|
package/out/renderer/index.html
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
6
6
|
<meta http-equiv="Content-Security-Policy" content="default-src 'self'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self'; font-src 'self' data:;" />
|
|
7
7
|
<title>Vessel</title>
|
|
8
|
-
<script type="module" crossorigin src="./assets/index-
|
|
9
|
-
<link rel="stylesheet" crossorigin href="./assets/index-
|
|
8
|
+
<script type="module" crossorigin src="./assets/index-DGIC7Iij.js"></script>
|
|
9
|
+
<link rel="stylesheet" crossorigin href="./assets/index-Bn4ixapT.css">
|
|
10
10
|
</head>
|
|
11
11
|
<body>
|
|
12
12
|
<div id="root"></div>
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@quanta-intellect/vessel-browser",
|
|
3
3
|
"mcpName": "io.github.unmodeled-tyler/vessel-browser",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.58",
|
|
5
5
|
"description": "AI-native web browser runtime for autonomous agents with human supervision",
|
|
6
6
|
"main": "./out/main/index.js",
|
|
7
7
|
"bin": {
|
|
@@ -1,123 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
const Channels = {
|
|
3
|
-
// Tab management
|
|
4
|
-
TAB_CREATE: "tab:create",
|
|
5
|
-
TAB_CLOSE: "tab:close",
|
|
6
|
-
TAB_SWITCH: "tab:switch",
|
|
7
|
-
TAB_NAVIGATE: "tab:navigate",
|
|
8
|
-
TAB_BACK: "tab:back",
|
|
9
|
-
TAB_FORWARD: "tab:forward",
|
|
10
|
-
TAB_RELOAD: "tab:reload",
|
|
11
|
-
TAB_STATE_UPDATE: "tab:state-update",
|
|
12
|
-
// AI
|
|
13
|
-
AI_QUERY: "ai:query",
|
|
14
|
-
AI_STREAM_START: "ai:stream-start",
|
|
15
|
-
AI_STREAM_CHUNK: "ai:stream-chunk",
|
|
16
|
-
AI_STREAM_END: "ai:stream-end",
|
|
17
|
-
AI_STREAM_IDLE: "ai:stream-idle",
|
|
18
|
-
AUTOMATION_ACTIVITY_START: "automation:activity-start",
|
|
19
|
-
AUTOMATION_ACTIVITY_CHUNK: "automation:activity-chunk",
|
|
20
|
-
AUTOMATION_ACTIVITY_END: "automation:activity-end",
|
|
21
|
-
AI_CANCEL: "ai:cancel",
|
|
22
|
-
AI_FETCH_MODELS: "ai:fetch-models",
|
|
23
|
-
AGENT_RUNTIME_GET: "agent-runtime:get",
|
|
24
|
-
AGENT_RUNTIME_UPDATE: "agent-runtime:update",
|
|
25
|
-
AGENT_PAUSE: "agent:pause",
|
|
26
|
-
AGENT_RESUME: "agent:resume",
|
|
27
|
-
AGENT_SET_APPROVAL_MODE: "agent:set-approval-mode",
|
|
28
|
-
AGENT_APPROVAL_RESOLVE: "agent:approval-resolve",
|
|
29
|
-
AGENT_CHECKPOINT_CREATE: "agent:checkpoint-create",
|
|
30
|
-
AGENT_CHECKPOINT_RESTORE: "agent:checkpoint-restore",
|
|
31
|
-
AGENT_SESSION_CAPTURE: "agent:session-capture",
|
|
32
|
-
AGENT_SESSION_RESTORE: "agent:session-restore",
|
|
33
|
-
// Content
|
|
34
|
-
CONTENT_EXTRACT: "content:extract",
|
|
35
|
-
READER_MODE_TOGGLE: "reader:toggle",
|
|
36
|
-
// UI state
|
|
37
|
-
SIDEBAR_TOGGLE: "ui:sidebar-toggle",
|
|
38
|
-
SIDEBAR_RESIZE: "ui:sidebar-resize",
|
|
39
|
-
SIDEBAR_RESIZE_START: "ui:sidebar-resize-start",
|
|
40
|
-
SIDEBAR_RESIZE_COMMIT: "ui:sidebar-resize-commit",
|
|
41
|
-
SIDEBAR_CONTEXT_MENU: "ui:sidebar-context-menu",
|
|
42
|
-
FOCUS_MODE_TOGGLE: "ui:focus-mode-toggle",
|
|
43
|
-
SETTINGS_VISIBILITY: "ui:settings-visibility",
|
|
44
|
-
// Settings
|
|
45
|
-
SETTINGS_GET: "settings:get",
|
|
46
|
-
SETTINGS_SET: "settings:set",
|
|
47
|
-
SETTINGS_UPDATE: "settings:update",
|
|
48
|
-
SETTINGS_HEALTH_GET: "settings:health:get",
|
|
49
|
-
SETTINGS_HEALTH_UPDATE: "settings:health:update",
|
|
50
|
-
// Bookmarks
|
|
51
|
-
BOOKMARKS_GET: "bookmarks:get",
|
|
52
|
-
BOOKMARKS_UPDATE: "bookmarks:update",
|
|
53
|
-
BOOKMARK_SAVE: "bookmarks:save",
|
|
54
|
-
BOOKMARK_REMOVE: "bookmarks:remove",
|
|
55
|
-
BOOKMARK_ADD_CONTEXT_TO_CHAT: "bookmarks:add-context-to-chat",
|
|
56
|
-
FOLDER_CREATE: "bookmarks:folder-create",
|
|
57
|
-
FOLDER_REMOVE: "bookmarks:folder-remove",
|
|
58
|
-
FOLDER_RENAME: "bookmarks:folder-rename",
|
|
59
|
-
// Highlights
|
|
60
|
-
HIGHLIGHT_CAPTURE: "highlights:capture",
|
|
61
|
-
HIGHLIGHT_CAPTURE_RESULT: "highlights:capture-result",
|
|
62
|
-
HIGHLIGHT_NAV_COUNT: "highlights:nav-count",
|
|
63
|
-
HIGHLIGHT_COUNT_UPDATE: "highlights:count-update",
|
|
64
|
-
HIGHLIGHT_NAV_SCROLL: "highlights:nav-scroll",
|
|
65
|
-
HIGHLIGHT_NAV_REMOVE: "highlights:nav-remove",
|
|
66
|
-
HIGHLIGHT_NAV_CLEAR: "highlights:nav-clear",
|
|
67
|
-
SIDEBAR_HIGHLIGHT_ACTION: "highlights:sidebar-action",
|
|
68
|
-
// DevTools panel
|
|
69
|
-
DEVTOOLS_PANEL_TOGGLE: "devtools-panel:toggle",
|
|
70
|
-
DEVTOOLS_PANEL_STATE: "devtools-panel:state",
|
|
71
|
-
DEVTOOLS_PANEL_RESIZE: "devtools-panel:resize",
|
|
72
|
-
// Find in page
|
|
73
|
-
FIND_IN_PAGE_START: "find:start",
|
|
74
|
-
FIND_IN_PAGE_NEXT: "find:next",
|
|
75
|
-
FIND_IN_PAGE_STOP: "find:stop",
|
|
76
|
-
FIND_IN_PAGE_RESULT: "find:result",
|
|
77
|
-
// Browsing history
|
|
78
|
-
HISTORY_GET: "history:get",
|
|
79
|
-
HISTORY_SEARCH: "history:search",
|
|
80
|
-
HISTORY_CLEAR: "history:clear",
|
|
81
|
-
HISTORY_UPDATE: "history:update",
|
|
82
|
-
// Premium
|
|
83
|
-
PREMIUM_GET_STATE: "premium:get-state",
|
|
84
|
-
PREMIUM_ACTIVATION_START: "premium:activation-start",
|
|
85
|
-
PREMIUM_ACTIVATION_VERIFY: "premium:activation-verify",
|
|
86
|
-
PREMIUM_CHECKOUT: "premium:checkout",
|
|
87
|
-
PREMIUM_PORTAL: "premium:portal",
|
|
88
|
-
PREMIUM_RESET: "premium:reset",
|
|
89
|
-
PREMIUM_TRACK_CONTEXT: "premium:track-context",
|
|
90
|
-
PREMIUM_UPDATE: "premium:update",
|
|
91
|
-
// Agent Credential Vault
|
|
92
|
-
VAULT_LIST: "vault:list",
|
|
93
|
-
VAULT_ADD: "vault:add",
|
|
94
|
-
VAULT_UPDATE: "vault:update",
|
|
95
|
-
VAULT_REMOVE: "vault:remove",
|
|
96
|
-
VAULT_AUDIT_LOG: "vault:audit-log",
|
|
97
|
-
// Automation kits
|
|
98
|
-
AUTOMATION_GET_INSTALLED: "automation:get-installed",
|
|
99
|
-
AUTOMATION_INSTALL_FROM_FILE: "automation:install-from-file",
|
|
100
|
-
AUTOMATION_UNINSTALL: "automation:uninstall",
|
|
101
|
-
// Scheduled jobs
|
|
102
|
-
SCHEDULE_GET_ALL: "schedule:get-all",
|
|
103
|
-
SCHEDULE_CREATE: "schedule:create",
|
|
104
|
-
SCHEDULE_UPDATE: "schedule:update",
|
|
105
|
-
SCHEDULE_DELETE: "schedule:delete",
|
|
106
|
-
SCHEDULE_JOBS_UPDATE: "schedule:jobs-update",
|
|
107
|
-
// Window controls
|
|
108
|
-
WINDOW_MINIMIZE: "window:minimize",
|
|
109
|
-
WINDOW_MAXIMIZE: "window:maximize",
|
|
110
|
-
WINDOW_CLOSE: "window:close",
|
|
111
|
-
// Autofill
|
|
112
|
-
AUTOFILL_LIST: "autofill:list",
|
|
113
|
-
AUTOFILL_ADD: "autofill:add",
|
|
114
|
-
AUTOFILL_UPDATE: "autofill:update",
|
|
115
|
-
AUTOFILL_DELETE: "autofill:delete",
|
|
116
|
-
AUTOFILL_FILL: "autofill:fill",
|
|
117
|
-
// Page snapshots / What Changed
|
|
118
|
-
PAGE_DIFF_ACTIVITY: "page:diff-activity",
|
|
119
|
-
PAGE_CHANGED: "page:changed",
|
|
120
|
-
PAGE_DIFF_GET: "page:diff-get",
|
|
121
|
-
PAGE_DIFF_DIRTY: "page:diff-dirty"
|
|
122
|
-
};
|
|
123
|
-
exports.Channels = Channels;
|