@quanta-intellect/vessel-browser 0.1.88 → 0.1.92

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.
@@ -133,6 +133,11 @@ const Channels = {
133
133
  DOWNLOAD_STARTED: "download:started",
134
134
  DOWNLOAD_PROGRESS: "download:progress",
135
135
  DOWNLOAD_DONE: "download:done",
136
+ DOWNLOADS_GET: "downloads:get",
137
+ DOWNLOADS_CLEAR: "downloads:clear",
138
+ DOWNLOADS_OPEN: "downloads:open",
139
+ DOWNLOADS_SHOW_IN_FOLDER: "downloads:show-in-folder",
140
+ DOWNLOADS_UPDATE: "downloads:update",
136
141
  // Premium
137
142
  PREMIUM_GET_STATE: "premium:get-state",
138
143
  PREMIUM_ACTIVATION_START: "premium:activation-start",
@@ -187,7 +192,19 @@ const Channels = {
187
192
  CLEAR_BROWSING_DATA: "browsing-data:clear",
188
193
  CLEAR_BROWSING_DATA_OPEN: "browsing-data:open",
189
194
  // Picture-in-Picture
190
- TAB_TOGGLE_PIP: "tab:toggle-pip"
195
+ TAB_TOGGLE_PIP: "tab:toggle-pip",
196
+ // Codex OAuth
197
+ CODEX_START_AUTH: "codex:start-auth",
198
+ CODEX_CANCEL_AUTH: "codex:cancel-auth",
199
+ CODEX_AUTH_STATUS: "codex:auth-status",
200
+ CODEX_DISCONNECT: "codex:disconnect",
201
+ // Updates
202
+ UPDATES_CHECK: "updates:check",
203
+ UPDATES_OPEN_DOWNLOAD: "updates:open-download",
204
+ // Permissions
205
+ PERMISSIONS_GET: "permissions:get",
206
+ PERMISSIONS_CLEAR: "permissions:clear",
207
+ PERMISSIONS_CLEAR_ORIGIN: "permissions:clear-origin"
191
208
  };
192
209
  const api = {
193
210
  tabs: {
@@ -482,6 +499,15 @@ const api = {
482
499
  fill: (profileId) => electron.ipcRenderer.invoke(Channels.AUTOFILL_FILL, profileId)
483
500
  },
484
501
  downloads: {
502
+ getAll: () => electron.ipcRenderer.invoke(Channels.DOWNLOADS_GET),
503
+ clear: () => electron.ipcRenderer.invoke(Channels.DOWNLOADS_CLEAR),
504
+ open: (id) => electron.ipcRenderer.invoke(Channels.DOWNLOADS_OPEN, id),
505
+ showInFolder: (id) => electron.ipcRenderer.invoke(Channels.DOWNLOADS_SHOW_IN_FOLDER, id),
506
+ onUpdate: (cb) => {
507
+ const handler = (_, items) => cb(items);
508
+ electron.ipcRenderer.on(Channels.DOWNLOADS_UPDATE, handler);
509
+ return () => electron.ipcRenderer.removeListener(Channels.DOWNLOADS_UPDATE, handler);
510
+ },
485
511
  onStarted: (cb) => {
486
512
  const handler = (_, info) => cb(info);
487
513
  electron.ipcRenderer.on(Channels.DOWNLOAD_STARTED, handler);
@@ -517,6 +543,15 @@ const api = {
517
543
  proceedAnyway: (tabId) => electron.ipcRenderer.invoke(Channels.SECURITY_PROCEED_ANYWAY, tabId),
518
544
  goBackToSafety: (tabId) => electron.ipcRenderer.invoke(Channels.SECURITY_GO_BACK_TO_SAFETY, tabId)
519
545
  },
546
+ updates: {
547
+ check: () => electron.ipcRenderer.invoke(Channels.UPDATES_CHECK),
548
+ openDownload: () => electron.ipcRenderer.invoke(Channels.UPDATES_OPEN_DOWNLOAD)
549
+ },
550
+ permissions: {
551
+ getAll: () => electron.ipcRenderer.invoke(Channels.PERMISSIONS_GET),
552
+ clear: () => electron.ipcRenderer.invoke(Channels.PERMISSIONS_CLEAR),
553
+ clearOrigin: (origin) => electron.ipcRenderer.invoke(Channels.PERMISSIONS_CLEAR_ORIGIN, origin)
554
+ },
520
555
  browsingData: {
521
556
  clear: (options) => electron.ipcRenderer.invoke(Channels.CLEAR_BROWSING_DATA, options),
522
557
  onOpenDialog: (cb) => {
@@ -527,6 +562,16 @@ const api = {
527
562
  },
528
563
  pip: {
529
564
  toggle: () => electron.ipcRenderer.invoke(Channels.TAB_TOGGLE_PIP)
565
+ },
566
+ codex: {
567
+ startAuth: () => electron.ipcRenderer.invoke(Channels.CODEX_START_AUTH),
568
+ cancelAuth: () => electron.ipcRenderer.invoke(Channels.CODEX_CANCEL_AUTH),
569
+ disconnect: () => electron.ipcRenderer.invoke(Channels.CODEX_DISCONNECT),
570
+ onAuthStatus: (cb) => {
571
+ const handler = (_, payload) => cb(payload);
572
+ electron.ipcRenderer.on(Channels.CODEX_AUTH_STATUS, handler);
573
+ return () => electron.ipcRenderer.removeListener(Channels.CODEX_AUTH_STATUS, handler);
574
+ }
530
575
  }
531
576
  };
532
577
  electron.contextBridge.exposeInMainWorld("vessel", api);
@@ -1746,7 +1746,7 @@
1746
1746
  border: 1px solid rgba(255, 255, 255, 0.08);
1747
1747
  border-radius: 8px;
1748
1748
  padding: 12px 16px;
1749
- min-width: 220px;
1749
+ min-width: 280px;
1750
1750
  z-index: 100;
1751
1751
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
1752
1752
  }
@@ -1779,6 +1779,38 @@
1779
1779
  color: #93c5fd;
1780
1780
  }
1781
1781
 
1782
+ .security-popup-section {
1783
+ border-top: 1px solid rgba(255, 255, 255, 0.08);
1784
+ padding-top: 8px;
1785
+ margin-top: 2px;
1786
+ }
1787
+
1788
+ .security-popup-section-title {
1789
+ font-size: 11px;
1790
+ color: #9ca3af;
1791
+ text-transform: uppercase;
1792
+ letter-spacing: 0.04em;
1793
+ margin-bottom: 6px;
1794
+ }
1795
+
1796
+ .security-popup-muted {
1797
+ color: #9ca3af;
1798
+ font-size: 12px;
1799
+ margin: 0;
1800
+ }
1801
+
1802
+ .security-popup-permission-row {
1803
+ display: flex;
1804
+ justify-content: space-between;
1805
+ gap: 14px;
1806
+ font-size: 12px;
1807
+ color: #e5e7eb;
1808
+ margin: 4px 0;
1809
+ }
1810
+
1811
+ .security-popup-permission-row strong.allow { color: #86efac; }
1812
+ .security-popup-permission-row strong.deny { color: #fca5a5; }
1813
+
1782
1814
  .security-popup-actions {
1783
1815
  display: flex;
1784
1816
  gap: 8px;
@@ -1974,6 +2006,55 @@
1974
2006
  font-size: 14px;
1975
2007
  color: var(--accent-secondary);
1976
2008
  }
2009
+
2010
+ .downloads-panel {
2011
+ width: min(760px, calc(100vw - 48px));
2012
+ max-height: min(680px, calc(100vh - 48px));
2013
+ background: var(--bg-panel);
2014
+ border: 1px solid var(--border-visible);
2015
+ border-radius: var(--radius-lg);
2016
+ box-shadow: var(--shadow-xl);
2017
+ display: flex;
2018
+ flex-direction: column;
2019
+ overflow: hidden;
2020
+ }
2021
+
2022
+ .downloads-panel-header {
2023
+ display: flex;
2024
+ align-items: flex-start;
2025
+ justify-content: space-between;
2026
+ gap: 16px;
2027
+ padding: 18px 20px;
2028
+ border-bottom: 1px solid var(--border-subtle);
2029
+ }
2030
+
2031
+ .downloads-panel-header h2 { margin: 0 0 4px; font-size: 18px; }
2032
+ .downloads-panel-header p { margin: 0; color: var(--text-secondary); font-size: 13px; }
2033
+ .downloads-panel-actions, .downloads-row-actions { display: flex; gap: 8px; }
2034
+ .downloads-panel-actions button, .downloads-row-actions button {
2035
+ padding: 6px 10px;
2036
+ border: 1px solid var(--border-visible);
2037
+ border-radius: var(--radius-sm);
2038
+ background: var(--bg-elevated);
2039
+ color: var(--text-primary);
2040
+ cursor: pointer;
2041
+ }
2042
+ .downloads-panel-actions button:hover, .downloads-row-actions button:hover:not(:disabled) { background: var(--bg-hover); }
2043
+ .downloads-row-actions button:disabled { opacity: 0.45; cursor: not-allowed; }
2044
+ .downloads-panel-list { overflow: auto; padding: 8px; }
2045
+ .downloads-row {
2046
+ display: flex;
2047
+ justify-content: space-between;
2048
+ gap: 14px;
2049
+ padding: 12px;
2050
+ border-radius: var(--radius-md);
2051
+ border: 1px solid transparent;
2052
+ }
2053
+ .downloads-row:hover { background: var(--bg-elevated); border-color: var(--border-subtle); }
2054
+ .downloads-file { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
2055
+ .downloads-file strong, .downloads-file span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
2056
+ .downloads-file span, .downloads-file small, .downloads-empty { color: var(--text-secondary); font-size: 12px; }
2057
+ .downloads-empty { padding: 28px; text-align: center; }
1977
2058
  /* ═══════════════════════════════════════
1978
2059
  Command bar overlay — cinematic entrance
1979
2060
  ═══════════════════════════════════════ */