@quanta-intellect/vessel-browser 0.1.136 → 0.1.138

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.
@@ -2657,6 +2657,16 @@
2657
2657
  display: flex;
2658
2658
  flex-direction: column;
2659
2659
  gap: 10px;
2660
+ overscroll-behavior: contain;
2661
+ scrollbar-gutter: stable;
2662
+ background: var(--bg-secondary);
2663
+ contain: layout paint;
2664
+ isolation: isolate;
2665
+ transform: translateZ(0);
2666
+ }
2667
+
2668
+ .sidebar-messages.scroll-fade::after {
2669
+ display: none;
2660
2670
  }
2661
2671
 
2662
2672
  /* Fade-in when tab content switches */
@@ -3538,6 +3548,8 @@
3538
3548
  word-break: break-word;
3539
3549
  user-select: text;
3540
3550
  animation: message-enter 300ms var(--ease-out-expo) both;
3551
+ content-visibility: auto;
3552
+ contain-intrinsic-size: auto 80px;
3541
3553
  }
3542
3554
 
3543
3555
  @keyframes message-enter {
@@ -4197,8 +4209,155 @@
4197
4209
  text-overflow: ellipsis;
4198
4210
  }
4199
4211
 
4200
- .sidebar-input {
4212
+ .chat-command-error {
4213
+ display: flex;
4214
+ align-items: center;
4215
+ justify-content: space-between;
4216
+ gap: 8px;
4217
+ margin: 10px 14px 0;
4218
+ padding: 7px 10px;
4219
+ border-radius: var(--radius-sm);
4220
+ background: color-mix(in srgb, var(--status-warning) 10%, transparent);
4221
+ border: 1px solid color-mix(in srgb, var(--status-warning) 25%, transparent);
4222
+ color: var(--text-secondary);
4223
+ font-size: 11px;
4224
+ line-height: 1.4;
4225
+ }
4226
+
4227
+ .chat-command-error-dismiss {
4228
+ flex-shrink: 0;
4229
+ color: var(--text-muted);
4230
+ font-size: 14px;
4231
+ line-height: 1;
4232
+ padding: 0 2px;
4233
+ }
4234
+
4235
+ .chat-command-error-dismiss:hover {
4236
+ color: var(--text-primary);
4237
+ }
4238
+
4239
+ .chat-skill-suggestions {
4240
+ display: flex;
4241
+ flex-direction: column;
4242
+ gap: 4px;
4243
+ margin: 10px 14px 0;
4244
+ padding: 5px;
4245
+ border-radius: var(--radius-md);
4246
+ border: 1px solid var(--border-glass);
4247
+ background: var(--surface-elevated);
4248
+ box-shadow: var(--shadow-lg);
4249
+ }
4250
+
4251
+ .chat-skill-suggestion {
4252
+ display: flex;
4253
+ align-items: center;
4254
+ gap: 9px;
4255
+ width: 100%;
4256
+ min-height: 40px;
4257
+ padding: 7px 8px;
4258
+ border-radius: var(--radius-sm);
4259
+ color: var(--text-secondary);
4260
+ text-align: left;
4261
+ transition:
4262
+ background var(--duration-fast) var(--ease-in-out),
4263
+ color var(--duration-fast) var(--ease-in-out);
4264
+ }
4265
+
4266
+ .chat-skill-suggestion:hover,
4267
+ .chat-skill-suggestion.active {
4268
+ color: var(--text-primary);
4269
+ background: var(--surface-hover);
4270
+ }
4271
+
4272
+ .chat-skill-suggestion-command {
4273
+ flex-shrink: 0;
4274
+ min-width: 86px;
4275
+ max-width: 118px;
4276
+ overflow: hidden;
4277
+ text-overflow: ellipsis;
4278
+ white-space: nowrap;
4279
+ font-family: var(--font-mono, monospace);
4280
+ font-size: 11px;
4281
+ color: var(--accent-primary);
4282
+ }
4283
+
4284
+ .chat-skill-suggestion-body {
4285
+ display: flex;
4286
+ flex-direction: column;
4287
+ min-width: 0;
4288
+ gap: 1px;
4289
+ }
4290
+
4291
+ .chat-skill-suggestion-name {
4292
+ font-size: 11px;
4293
+ font-weight: 600;
4294
+ color: inherit;
4295
+ }
4296
+
4297
+ .chat-skill-suggestion-desc {
4298
+ font-size: 10px;
4299
+ color: var(--text-muted);
4300
+ overflow: hidden;
4301
+ text-overflow: ellipsis;
4302
+ white-space: nowrap;
4303
+ }
4304
+
4305
+ .sidebar-input-frame {
4201
4306
  flex: 1;
4307
+ min-width: 0;
4308
+ position: relative;
4309
+ }
4310
+
4311
+ .sidebar-input-highlight {
4312
+ position: absolute;
4313
+ inset: 0;
4314
+ z-index: 2;
4315
+ pointer-events: none;
4316
+ box-sizing: border-box;
4317
+ border: 1px solid transparent;
4318
+ padding: 8px 12px;
4319
+ color: var(--text-primary);
4320
+ font-family: var(--font-ui);
4321
+ font-size: 13px;
4322
+ line-height: 1.4;
4323
+ white-space: pre-wrap;
4324
+ overflow: hidden;
4325
+ overflow-wrap: anywhere;
4326
+ }
4327
+
4328
+ .sidebar-input-highlight-command {
4329
+ color: #f4c542;
4330
+ font-weight: 600;
4331
+ background: linear-gradient(100deg, #f0b429 0%, #fff3a3 45%, #f4c542 70%);
4332
+ background-size: 220% 100%;
4333
+ background-position: 100% 0;
4334
+ -webkit-background-clip: text;
4335
+ background-clip: text;
4336
+ -webkit-text-fill-color: transparent;
4337
+ animation: skill-command-shimmer 1.9s ease-in-out infinite;
4338
+ }
4339
+
4340
+ @keyframes skill-command-shimmer {
4341
+ 0%,
4342
+ 42% {
4343
+ background-position: 100% 0;
4344
+ }
4345
+
4346
+ 100% {
4347
+ background-position: -120% 0;
4348
+ }
4349
+ }
4350
+
4351
+ @media (prefers-reduced-motion: reduce) {
4352
+ .sidebar-input-highlight-command {
4353
+ animation: none;
4354
+ background: none;
4355
+ -webkit-text-fill-color: #f4c542;
4356
+ }
4357
+ }
4358
+
4359
+ .sidebar-input {
4360
+ width: 100%;
4202
4361
  background: var(--bg-tertiary);
4203
4362
  border: 1px solid var(--border-subtle);
4204
4363
  border-radius: var(--radius-md);
@@ -4210,12 +4369,21 @@
4210
4369
  line-height: 1.4;
4211
4370
  }
4212
4371
 
4372
+ .sidebar-input.skill-command-registered {
4373
+ color: transparent;
4374
+ caret-color: var(--text-primary);
4375
+ }
4376
+
4213
4377
  .sidebar-input:focus {
4214
4378
  border-color: var(--accent-primary);
4215
4379
  outline: none;
4216
4380
  box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent-primary) 10%, transparent);
4217
4381
  }
4218
4382
 
4383
+ .sidebar-input.skill-command-registered:focus {
4384
+ color: transparent;
4385
+ }
4386
+
4219
4387
  .sidebar-input::placeholder {
4220
4388
  color: var(--text-muted);
4221
4389
  }
@@ -4513,7 +4681,7 @@
4513
4681
  }
4514
4682
 
4515
4683
  /* ═══════════════════════════════════════
4516
- Automation Kits panel
4684
+ Skills panel
4517
4685
  ═══════════════════════════════════════ */
4518
4686
 
4519
4687
  .automation-panel {
@@ -4542,21 +4710,6 @@
4542
4710
  gap: 8px;
4543
4711
  }
4544
4712
 
4545
- .kit-beta-tag {
4546
- font-size: 9px;
4547
- font-weight: 600;
4548
- letter-spacing: 0.08em;
4549
- text-transform: uppercase;
4550
- color: var(--accent-primary);
4551
- background: color-mix(in srgb, var(--accent-primary) 12%, transparent);
4552
- border: 1px solid color-mix(in srgb, var(--accent-primary) 25%, transparent);
4553
- border-radius: 4px;
4554
- padding: 1px 5px;
4555
- vertical-align: middle;
4556
- position: relative;
4557
- top: -1px;
4558
- }
4559
-
4560
4713
  .kit-list-count {
4561
4714
  font-size: 10px;
4562
4715
  font-weight: 600;
@@ -4566,6 +4719,10 @@
4566
4719
  }
4567
4720
 
4568
4721
  .kit-install-btn {
4722
+ display: inline-flex;
4723
+ align-items: center;
4724
+ justify-content: center;
4725
+ gap: 5px;
4569
4726
  height: 22px;
4570
4727
  padding: 0 8px;
4571
4728
  border-radius: var(--radius-sm);
@@ -4620,6 +4777,96 @@
4620
4777
  gap: 6px;
4621
4778
  }
4622
4779
 
4780
+ .kit-empty-state {
4781
+ display: flex;
4782
+ flex-direction: column;
4783
+ align-items: center;
4784
+ gap: 8px;
4785
+ padding: 22px 14px 20px;
4786
+ border-radius: var(--radius-md);
4787
+ background: var(--surface-elevated);
4788
+ border: 1px dashed var(--border-glass);
4789
+ text-align: center;
4790
+ }
4791
+
4792
+ .kit-empty-title {
4793
+ font-size: 12px;
4794
+ font-weight: 600;
4795
+ color: var(--text-primary);
4796
+ }
4797
+
4798
+ .kit-empty-copy {
4799
+ max-width: 220px;
4800
+ margin: 0;
4801
+ font-size: 11px;
4802
+ line-height: 1.5;
4803
+ color: var(--text-secondary);
4804
+ }
4805
+
4806
+ .kit-empty-actions {
4807
+ display: flex;
4808
+ align-items: center;
4809
+ gap: 8px;
4810
+ margin-top: 2px;
4811
+ }
4812
+
4813
+ .kit-create-panel {
4814
+ display: flex;
4815
+ flex-direction: column;
4816
+ gap: 8px;
4817
+ padding: 10px;
4818
+ border-radius: var(--radius-md);
4819
+ background: var(--surface-elevated);
4820
+ border: 1px solid var(--border-glass);
4821
+ }
4822
+
4823
+ .kit-create-header {
4824
+ display: flex;
4825
+ align-items: center;
4826
+ justify-content: space-between;
4827
+ gap: 8px;
4828
+ }
4829
+
4830
+ .kit-create-title {
4831
+ font-size: 12px;
4832
+ font-weight: 600;
4833
+ color: var(--text-primary);
4834
+ }
4835
+
4836
+ .kit-create-textarea {
4837
+ width: 100%;
4838
+ min-height: 220px;
4839
+ resize: vertical;
4840
+ padding: 9px 10px;
4841
+ border-radius: var(--radius-sm);
4842
+ border: 1px solid var(--border-glass);
4843
+ background: var(--surface-base);
4844
+ color: var(--text-primary);
4845
+ font-family: var(--font-mono, monospace);
4846
+ font-size: 11px;
4847
+ line-height: 1.45;
4848
+ outline: none;
4849
+ transition:
4850
+ border-color var(--duration-fast) var(--ease-in-out),
4851
+ background var(--duration-fast) var(--ease-in-out);
4852
+ }
4853
+
4854
+ .kit-create-textarea:focus {
4855
+ border-color: color-mix(in srgb, var(--accent-primary) 35%, transparent);
4856
+ background: var(--surface-hover);
4857
+ }
4858
+
4859
+ .kit-create-actions {
4860
+ display: flex;
4861
+ justify-content: flex-end;
4862
+ gap: 8px;
4863
+ }
4864
+
4865
+ .kit-create-save {
4866
+ height: 28px;
4867
+ padding: 0 10px;
4868
+ }
4869
+
4623
4870
  .kit-card {
4624
4871
  display: flex;
4625
4872
  align-items: flex-start;
@@ -4699,13 +4946,12 @@
4699
4946
  color: var(--accent-primary);
4700
4947
  }
4701
4948
 
4949
+ .kit-card-action-btn,
4702
4950
  .kit-remove-btn {
4703
4951
  flex-shrink: 0;
4704
4952
  width: 20px;
4705
4953
  height: 20px;
4706
4954
  border-radius: var(--radius-sm);
4707
- font-size: 15px;
4708
- line-height: 1;
4709
4955
  color: var(--text-muted);
4710
4956
  background: transparent;
4711
4957
  border: 1px solid transparent;
@@ -4718,6 +4964,12 @@
4718
4964
  border-color var(--duration-fast) var(--ease-in-out);
4719
4965
  }
4720
4966
 
4967
+ .kit-card-action-btn:hover {
4968
+ background: var(--surface-hover);
4969
+ border-color: var(--border-glass);
4970
+ color: var(--text-primary);
4971
+ }
4972
+
4721
4973
  .kit-remove-btn:hover {
4722
4974
  background: color-mix(in srgb, var(--status-error) 10%, transparent);
4723
4975
  border-color: color-mix(in srgb, var(--status-error) 20%, transparent);
@@ -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-D13TOsuR.js"></script>
9
- <link rel="stylesheet" crossorigin href="./assets/index-CWy6khUL.css">
8
+ <script type="module" crossorigin src="./assets/index-Cjl9fej2.js"></script>
9
+ <link rel="stylesheet" crossorigin href="./assets/index-DMcjRzqj.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.136",
4
+ "version": "0.1.138",
5
5
  "description": "AI-native web browser runtime for autonomous agents with human supervision",
6
6
  "main": "./out/main/index.js",
7
7
  "bin": {
@@ -90,7 +90,6 @@
90
90
  "eslint": "^9.39.4",
91
91
  "eslint-config-prettier": "^10.1.8",
92
92
  "knip": "^6.14.2",
93
- "linkedom": "^0.18.12",
94
93
  "lucide-solid": "^1.17.0",
95
94
  "prettier": "^3.8.3",
96
95
  "solid-js": "^1.9.13",
@@ -104,6 +103,7 @@
104
103
  "@modelcontextprotocol/sdk": "^1.29.0",
105
104
  "@mozilla/readability": "^0.6.0",
106
105
  "dompurify": "^3.4.7",
106
+ "linkedom": "^0.18.12",
107
107
  "openai": "^6.39.1",
108
108
  "zod": "^4.4.3"
109
109
  },