@quanta-intellect/vessel-browser 0.1.94 → 0.1.97

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.
@@ -114,7 +114,6 @@
114
114
  color: var(--bg-primary);
115
115
  }
116
116
 
117
-
118
117
  /* ═══════════════════════════════════════
119
118
  Tab bar — elevated, distinctive
120
119
  ═══════════════════════════════════════ */
@@ -506,7 +505,6 @@
506
505
  padding-bottom: 1px;
507
506
  }
508
507
 
509
-
510
508
  /* ═══════════════════════════════════════
511
509
  Address bar — refined URL shell
512
510
  ═══════════════════════════════════════ */
@@ -844,7 +842,6 @@
844
842
  animation: badge-enter var(--duration-enter) var(--ease-out-back) both;
845
843
  }
846
844
 
847
-
848
845
  /* ═══════════════════════════════════════
849
846
  Bookmark toast notifications — animated
850
847
  ═══════════════════════════════════════ */
@@ -918,7 +915,6 @@
918
915
  word-break: break-word;
919
916
  }
920
917
 
921
-
922
918
  .highlight-toast {
923
919
  border-color: color-mix(in srgb, var(--accent-primary) 25%, transparent);
924
920
  }
@@ -1431,7 +1427,6 @@
1431
1427
  }
1432
1428
  }
1433
1429
 
1434
-
1435
1430
  /* ═══════════════════════════════════════
1436
1431
  Page diff — "What Changed?" popup
1437
1432
  ═══════════════════════════════════════ */
@@ -2275,7 +2270,6 @@
2275
2270
  cursor: default;
2276
2271
  }
2277
2272
 
2278
-
2279
2273
  /* ═══════════════════════════════════════
2280
2274
  Sidebar — refined panel
2281
2275
  ═══════════════════════════════════════ */
@@ -2492,6 +2486,19 @@
2492
2486
  animation: badge-enter var(--duration-enter) var(--ease-out-back) both;
2493
2487
  }
2494
2488
 
2489
+ .sidebar-tab-beta {
2490
+ height: 15px;
2491
+ padding: 0 5px;
2492
+ border: 1px solid var(--border-subtle);
2493
+ border-radius: 999px;
2494
+ background: var(--bg-tertiary);
2495
+ color: var(--text-secondary);
2496
+ font-size: 8.5px;
2497
+ font-weight: 700;
2498
+ line-height: 14px;
2499
+ text-transform: uppercase;
2500
+ }
2501
+
2495
2502
  .sidebar-messages {
2496
2503
  flex: 1;
2497
2504
  overflow-y: auto;
@@ -2517,7 +2524,6 @@
2517
2524
  }
2518
2525
  }
2519
2526
 
2520
-
2521
2527
  /* ═══════════════════════════════════════
2522
2528
  Bookmark panel — section card
2523
2529
  ═══════════════════════════════════════ */
@@ -2945,7 +2951,6 @@
2945
2951
  flex-wrap: wrap;
2946
2952
  }
2947
2953
 
2948
-
2949
2954
  /* ═══════════════════════════════════════
2950
2955
  Agent supervisor panel
2951
2956
  ═══════════════════════════════════════ */
@@ -3368,7 +3373,6 @@
3368
3373
  color: var(--status-error);
3369
3374
  }
3370
3375
 
3371
-
3372
3376
  /* ═══════════════════════════════════════
3373
3377
  Chat messages — distinct bubbles
3374
3378
  ═══════════════════════════════════════ */
@@ -3548,7 +3552,6 @@
3548
3552
  background: var(--surface-glass);
3549
3553
  }
3550
3554
 
3551
-
3552
3555
  /* ═══════════════════════════════════════
3553
3556
  Tool call action chips
3554
3557
  ═══════════════════════════════════════ */
@@ -3604,7 +3607,6 @@
3604
3607
  opacity: 0.4;
3605
3608
  }
3606
3609
 
3607
-
3608
3610
  /* ═══════════════════════════════════════
3609
3611
  Inline approval prompts (chat tab)
3610
3612
  ═══════════════════════════════════════ */
@@ -3691,7 +3693,6 @@
3691
3693
  color: var(--text-secondary);
3692
3694
  }
3693
3695
 
3694
-
3695
3696
  /* ═══════════════════════════════════════
3696
3697
  Thinking & streaming states
3697
3698
  ═══════════════════════════════════════ */
@@ -3795,7 +3796,6 @@
3795
3796
  }
3796
3797
  }
3797
3798
 
3798
-
3799
3799
  /* ═══════════════════════════════════════
3800
3800
  Sidebar empty state & input area
3801
3801
  ═══════════════════════════════════════ */
@@ -4085,7 +4085,6 @@
4085
4085
  background: var(--border-visible);
4086
4086
  }
4087
4087
 
4088
-
4089
4088
  /* ═══════════════════════════════════════
4090
4089
  Checkpoint timeline
4091
4090
  ═══════════════════════════════════════ */
@@ -4184,7 +4183,6 @@
4184
4183
  margin-top: 2px;
4185
4184
  }
4186
4185
 
4187
-
4188
4186
  /* ═══════════════════════════════════════
4189
4187
  Page diff history
4190
4188
  ═══════════════════════════════════════ */
@@ -4295,7 +4293,6 @@
4295
4293
  }
4296
4294
  }
4297
4295
 
4298
-
4299
4296
  /* ═══════════════════════════════════════
4300
4297
  Responsive — compact layout
4301
4298
  ═══════════════════════════════════════ */
@@ -4340,7 +4337,6 @@
4340
4337
  }
4341
4338
  }
4342
4339
 
4343
-
4344
4340
  /* ═══════════════════════════════════════
4345
4341
  Automation Kits panel
4346
4342
  ═══════════════════════════════════════ */
@@ -5282,6 +5278,281 @@
5282
5278
  color: var(--text-muted);
5283
5279
  text-align: center;
5284
5280
  }
5281
+
5282
+ /* ═══════════════════════════════════════
5283
+ Research Desk
5284
+ ═══════════════════════════════════════ */
5285
+
5286
+ .research-desk,
5287
+ .research-idle,
5288
+ .research-phase {
5289
+ display: flex;
5290
+ flex-direction: column;
5291
+ gap: 12px;
5292
+ min-height: 0;
5293
+ }
5294
+
5295
+ .research-desk {
5296
+ flex: 1;
5297
+ padding: 14px;
5298
+ overflow: hidden;
5299
+ }
5300
+
5301
+ .research-phase {
5302
+ flex: 1;
5303
+ }
5304
+
5305
+ .research-idle h3,
5306
+ .research-phase h3 {
5307
+ margin: 0;
5308
+ font-size: 14px;
5309
+ line-height: 1.3;
5310
+ color: var(--text-primary);
5311
+ }
5312
+
5313
+ .research-idle p,
5314
+ .research-phase p {
5315
+ margin: 0;
5316
+ font-size: 12px;
5317
+ line-height: 1.5;
5318
+ color: var(--text-secondary);
5319
+ }
5320
+
5321
+ .research-premium-notice {
5322
+ padding: 9px 10px;
5323
+ border: 1px solid var(--border-subtle);
5324
+ border-radius: var(--radius-md);
5325
+ background: var(--surface-glass);
5326
+ color: var(--text-secondary);
5327
+ font-size: 12px;
5328
+ line-height: 1.4;
5329
+ }
5330
+
5331
+ .research-topic-form,
5332
+ .research-brief-form {
5333
+ display: flex;
5334
+ gap: 8px;
5335
+ align-items: flex-end;
5336
+ }
5337
+
5338
+ .research-topic-form {
5339
+ flex-direction: column;
5340
+ align-items: stretch;
5341
+ }
5342
+
5343
+ .research-topic-input,
5344
+ .research-brief-input {
5345
+ width: 100%;
5346
+ min-width: 0;
5347
+ resize: vertical;
5348
+ border: 1px solid var(--border-subtle);
5349
+ border-radius: var(--radius-md);
5350
+ background: var(--bg-tertiary);
5351
+ color: var(--text-primary);
5352
+ font-family: var(--font-ui);
5353
+ font-size: 13px;
5354
+ line-height: 1.4;
5355
+ padding: 9px 10px;
5356
+ }
5357
+
5358
+ .research-topic-input:focus,
5359
+ .research-brief-input:focus {
5360
+ outline: none;
5361
+ border-color: var(--accent-primary);
5362
+ box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-primary) 10%, transparent);
5363
+ }
5364
+
5365
+ .research-topic-input::placeholder,
5366
+ .research-brief-input::placeholder {
5367
+ color: var(--text-muted);
5368
+ }
5369
+
5370
+ .research-start-btn,
5371
+ .research-brief-form button,
5372
+ .phase-controls button,
5373
+ .report-card button {
5374
+ min-height: 34px;
5375
+ border-radius: var(--radius-md);
5376
+ padding: 0 14px;
5377
+ font-size: 12px;
5378
+ font-weight: 500;
5379
+ background: var(--accent-primary);
5380
+ color: var(--button-primary-fg);
5381
+ white-space: nowrap;
5382
+ transition:
5383
+ background var(--duration-fast) var(--ease-in-out),
5384
+ transform var(--duration-fast) var(--ease-out-expo),
5385
+ opacity var(--duration-fast) var(--ease-in-out);
5386
+ }
5387
+
5388
+ .research-start-btn:hover:not(:disabled),
5389
+ .research-brief-form button:hover:not(:disabled),
5390
+ .phase-controls button:hover:not(:disabled),
5391
+ .report-card button:hover:not(:disabled) {
5392
+ background: var(--button-primary-hover-bg);
5393
+ }
5394
+
5395
+ .research-start-btn:active:not(:disabled),
5396
+ .research-brief-form button:active:not(:disabled),
5397
+ .phase-controls button:active:not(:disabled),
5398
+ .report-card button:active:not(:disabled) {
5399
+ transform: scale(0.97);
5400
+ }
5401
+
5402
+ .research-start-btn:disabled,
5403
+ .research-brief-form button:disabled,
5404
+ .phase-controls button:disabled,
5405
+ .report-card button:disabled {
5406
+ opacity: 0.38;
5407
+ cursor: default;
5408
+ }
5409
+
5410
+ .research-brief-thread {
5411
+ display: flex;
5412
+ flex: 1;
5413
+ min-height: 0;
5414
+ flex-direction: column;
5415
+ gap: 8px;
5416
+ overflow-y: auto;
5417
+ padding: 10px;
5418
+ border: 1px solid var(--border-subtle);
5419
+ border-radius: var(--radius-md);
5420
+ background: var(--surface-glass);
5421
+ }
5422
+
5423
+ .research-brief-message {
5424
+ max-width: 94%;
5425
+ padding: 9px 11px;
5426
+ border-radius: var(--radius-md);
5427
+ font-size: 12px;
5428
+ line-height: 1.5;
5429
+ white-space: pre-wrap;
5430
+ word-break: break-word;
5431
+ color: var(--text-primary);
5432
+ }
5433
+
5434
+ .research-brief-message .markdown-content {
5435
+ white-space: normal;
5436
+ }
5437
+
5438
+ .research-brief-message.user {
5439
+ align-self: flex-end;
5440
+ background: var(--bg-tertiary);
5441
+ border-bottom-right-radius: var(--radius-sm);
5442
+ }
5443
+
5444
+ .research-brief-message.assistant {
5445
+ align-self: flex-start;
5446
+ background: color-mix(in srgb, var(--accent-primary) 8%, transparent);
5447
+ border: 1px solid color-mix(in srgb, var(--accent-primary) 12%, transparent);
5448
+ border-bottom-left-radius: var(--radius-sm);
5449
+ }
5450
+
5451
+ .research-brief-status {
5452
+ align-self: flex-start;
5453
+ color: var(--text-muted);
5454
+ font-size: 11px;
5455
+ }
5456
+
5457
+ .research-brief-status.thinking {
5458
+ display: inline-flex;
5459
+ align-items: center;
5460
+ gap: 8px;
5461
+ }
5462
+
5463
+ .research-brief-loading {
5464
+ display: flex;
5465
+ align-items: center;
5466
+ gap: 10px;
5467
+ align-self: flex-start;
5468
+ padding: 10px 11px;
5469
+ border: 1px solid color-mix(in srgb, var(--accent-primary) 12%, transparent);
5470
+ border-radius: var(--radius-md);
5471
+ background: color-mix(in srgb, var(--accent-primary) 7%, transparent);
5472
+ color: var(--text-secondary);
5473
+ }
5474
+
5475
+ .research-spinner {
5476
+ width: 14px;
5477
+ height: 14px;
5478
+ flex: 0 0 auto;
5479
+ border: 2px solid color-mix(in srgb, var(--accent-primary) 22%, transparent);
5480
+ border-top-color: var(--accent-primary);
5481
+ border-radius: 50%;
5482
+ animation: research-spin 0.7s linear infinite;
5483
+ }
5484
+
5485
+ .research-loading-title {
5486
+ color: var(--text-primary);
5487
+ font-size: 12px;
5488
+ font-weight: 600;
5489
+ line-height: 1.3;
5490
+ }
5491
+
5492
+ .research-loading-copy {
5493
+ margin-top: 2px;
5494
+ color: var(--text-muted);
5495
+ font-size: 11px;
5496
+ line-height: 1.35;
5497
+ }
5498
+
5499
+ @keyframes research-spin {
5500
+ to { transform: rotate(360deg); }
5501
+ }
5502
+
5503
+ .research-quick-replies {
5504
+ display: flex;
5505
+ flex-wrap: wrap;
5506
+ gap: 6px;
5507
+ padding: 1px 0;
5508
+ }
5509
+
5510
+ .research-quick-replies.inline {
5511
+ max-width: 94%;
5512
+ align-self: flex-start;
5513
+ margin-top: -2px;
5514
+ padding-left: 2px;
5515
+ }
5516
+
5517
+ .research-quick-reply {
5518
+ min-height: 28px;
5519
+ padding: 0 10px;
5520
+ border: 1px solid var(--border-subtle);
5521
+ border-radius: 999px;
5522
+ background: var(--bg-tertiary);
5523
+ color: var(--text-secondary);
5524
+ font-size: 11px;
5525
+ font-weight: 500;
5526
+ line-height: 1;
5527
+ transition:
5528
+ border-color var(--duration-fast) var(--ease-in-out),
5529
+ color var(--duration-fast) var(--ease-in-out),
5530
+ background var(--duration-fast) var(--ease-in-out);
5531
+ }
5532
+
5533
+ .research-quick-reply:hover {
5534
+ border-color: color-mix(in srgb, var(--accent-primary) 28%, var(--border-subtle));
5535
+ background: color-mix(in srgb, var(--accent-primary) 8%, var(--bg-tertiary));
5536
+ color: var(--text-primary);
5537
+ }
5538
+
5539
+ .phase-controls {
5540
+ display: flex;
5541
+ gap: 8px;
5542
+ flex-wrap: wrap;
5543
+ }
5544
+
5545
+ .phase-controls .secondary,
5546
+ .report-card .secondary {
5547
+ background: var(--surface-hover);
5548
+ color: var(--text-secondary);
5549
+ border: 1px solid var(--border-glass);
5550
+ }
5551
+
5552
+ .phase-controls .secondary:hover:not(:disabled),
5553
+ .report-card .secondary:hover:not(:disabled) {
5554
+ background: var(--surface-active);
5555
+ }
5285
5556
  .devtools-panel {
5286
5557
  width: 100%;
5287
5558
  height: 100%;
@@ -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'; base-uri 'none'; object-src 'none'; frame-src 'none'; script-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self'; font-src 'self' data:; form-action 'self';" />
7
7
  <title>Vessel</title>
8
- <script type="module" crossorigin src="./assets/index-BeUwMCx4.js"></script>
9
- <link rel="stylesheet" crossorigin href="./assets/index-BFKx2klB.css">
8
+ <script type="module" crossorigin src="./assets/index-BLDCpaUR.js"></script>
9
+ <link rel="stylesheet" crossorigin href="./assets/index-CzIBoLK8.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.94",
4
+ "version": "0.1.97",
5
5
  "description": "AI-native web browser runtime for autonomous agents with human supervision",
6
6
  "main": "./out/main/index.js",
7
7
  "bin": {
@@ -28,6 +28,9 @@
28
28
  "dist:mac:dir:signed": "npm run build:icon:mac && npm run build && electron-builder --config electron-builder.config.cjs --mac dir --publish never",
29
29
  "preview": "env -u ELECTRON_RUN_AS_NODE electron-vite preview",
30
30
  "typecheck": "tsc --noEmit",
31
+ "check:cleanup": "npm run typecheck && git diff --check && node scripts/check-cleanup.mjs && npm run deadcode:check",
32
+ "deadcode:check": "knip --include files,dependencies,unlisted,binaries,unresolved --no-progress",
33
+ "deadcode:exports": "knip --exports --no-progress --no-exit-code",
31
34
  "audit:prod": "npm audit --omit=dev",
32
35
  "audit:all": "npm audit",
33
36
  "deps:check": "npm outdated",
@@ -73,6 +76,7 @@
73
76
  "electron": "^42.0.1",
74
77
  "electron-builder": "^26.8.1",
75
78
  "electron-vite": "^5.0.0",
79
+ "knip": "^6.12.2",
76
80
  "linkedom": "^0.18.12",
77
81
  "lucide-solid": "^1.14.0",
78
82
  "solid-js": "^1.9.12",