@co0ontty/wand 1.3.6 → 1.4.0

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.
@@ -3225,7 +3225,8 @@
3225
3225
  }
3226
3226
 
3227
3227
  /* Markdown Content */
3228
- .markdown-content { color: inherit; }
3228
+ .markdown-content { color: inherit; white-space: normal; overflow-x: hidden; }
3229
+ .markdown-content .code-block pre { overflow-x: auto; }
3229
3230
  .markdown-content p { margin: 0 0 8px 0; }
3230
3231
  .markdown-content p:last-child { margin-bottom: 0; }
3231
3232
  .markdown-content strong { font-weight: 600; }
@@ -3430,6 +3431,30 @@
3430
3431
  to { opacity: 1; transform: translateX(0); }
3431
3432
  }
3432
3433
 
3434
+ /* Auto-approve indicator */
3435
+ .auto-approve-indicator {
3436
+ display: inline-flex;
3437
+ align-items: center;
3438
+ gap: 2px;
3439
+ font-size: 0.65rem;
3440
+ color: var(--muted);
3441
+ cursor: pointer;
3442
+ padding: 1px 4px;
3443
+ border-radius: 4px;
3444
+ transition: color 0.15s, background 0.15s;
3445
+ user-select: none;
3446
+ white-space: nowrap;
3447
+ }
3448
+ .auto-approve-indicator:hover {
3449
+ background: rgba(255, 255, 255, 0.06);
3450
+ }
3451
+ .auto-approve-indicator.active {
3452
+ color: #22c55e;
3453
+ }
3454
+ .auto-approve-indicator.active:hover {
3455
+ background: rgba(34, 197, 94, 0.1);
3456
+ }
3457
+
3433
3458
  /* Approval stats badge */
3434
3459
  .approval-stats {
3435
3460
  display: inline-flex;
@@ -4571,11 +4596,11 @@
4571
4596
  display: flex;
4572
4597
  flex-direction: column;
4573
4598
  align-items: center;
4574
- gap: 1px;
4575
- padding: 8px 4px;
4576
- border: 1.5px solid rgba(125, 91, 57, 0.15);
4599
+ gap: 3px;
4600
+ padding: 10px 8px;
4601
+ border: 1.5px solid rgba(125, 91, 57, 0.2);
4577
4602
  border-radius: 10px;
4578
- background: rgba(255, 255, 255, 0.55);
4603
+ background: rgba(255, 255, 255, 0.6);
4579
4604
  cursor: pointer;
4580
4605
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
4581
4606
  text-align: center;
@@ -4595,13 +4620,13 @@
4595
4620
  box-shadow: 0 0 0 1.5px var(--accent-muted);
4596
4621
  }
4597
4622
  .mode-card-label {
4598
- font-size: 0.75rem;
4623
+ font-size: 0.8rem;
4599
4624
  font-weight: 600;
4600
4625
  color: var(--text-primary);
4601
4626
  line-height: 1.3;
4602
4627
  }
4603
4628
  .mode-card-desc {
4604
- font-size: 0.625rem;
4629
+ font-size: 0.68rem;
4605
4630
  color: var(--text-muted);
4606
4631
  line-height: 1.3;
4607
4632
  }
@@ -5679,6 +5704,53 @@
5679
5704
  }
5680
5705
  }
5681
5706
 
5707
+ .session-kind-badge {
5708
+ display: inline-flex;
5709
+ align-items: center;
5710
+ height: 18px;
5711
+ padding: 0 6px;
5712
+ border-radius: 999px;
5713
+ font-size: 0.6875rem;
5714
+ font-weight: 600;
5715
+ letter-spacing: 0.01em;
5716
+ border: 1px solid transparent;
5717
+ flex-shrink: 0;
5718
+ }
5719
+
5720
+ .session-kind-badge.pty {
5721
+ color: var(--text-secondary);
5722
+ background: rgba(120, 128, 140, 0.12);
5723
+ border-color: rgba(120, 128, 140, 0.18);
5724
+ }
5725
+
5726
+ .session-kind-badge.structured {
5727
+ color: #d18b52;
5728
+ background: rgba(215, 122, 82, 0.10);
5729
+ border-color: rgba(215, 122, 82, 0.22);
5730
+ }
5731
+
5732
+ .session-kind-display {
5733
+ display: inline-flex;
5734
+ align-items: center;
5735
+ padding: 1px 6px;
5736
+ border-radius: 999px;
5737
+ font-size: 0.6875rem;
5738
+ font-weight: 600;
5739
+ color: #8a4b24;
5740
+ background: rgba(215, 122, 82, 0.12);
5741
+ border: 1px solid rgba(215, 122, 82, 0.2);
5742
+ }
5743
+
5744
+ .structured-tool-hint {
5745
+ margin: 4px 0 8px;
5746
+ padding: 6px 10px;
5747
+ border-radius: 10px;
5748
+ font-size: 0.75rem;
5749
+ color: var(--text-muted);
5750
+ background: rgba(215, 122, 82, 0.08);
5751
+ border: 1px dashed rgba(215, 122, 82, 0.18);
5752
+ }
5753
+
5682
5754
  .blank-chat {
5683
5755
  display: flex;
5684
5756
  align-items: center;
@@ -5688,6 +5760,7 @@
5688
5760
  min-height: 0;
5689
5761
  overflow: auto;
5690
5762
  }
5763
+
5691
5764
  .blank-chat-inner {
5692
5765
  width: 100%;
5693
5766
  max-width: 560px;
@@ -7396,4 +7469,88 @@
7396
7469
  z-index: 20;
7397
7470
  }
7398
7471
 
7472
+ /* ── 结构化会话状态条 ── */
7473
+ .structured-status-bar {
7474
+ display: flex;
7475
+ align-items: center;
7476
+ gap: 10px;
7477
+ margin: 8px 0 4px;
7478
+ padding: 8px 12px;
7479
+ border-radius: var(--radius-sm);
7480
+ background: rgba(var(--accent-rgb, 99, 102, 241), 0.06);
7481
+ border: 1px solid rgba(var(--accent-rgb, 99, 102, 241), 0.12);
7482
+ font-size: 0.75rem;
7483
+ color: var(--text-secondary);
7484
+ transition: all 0.3s ease;
7485
+ overflow: hidden;
7486
+ }
7487
+
7488
+ .structured-status-bar .status-bar-label {
7489
+ flex-shrink: 0;
7490
+ font-weight: 600;
7491
+ color: var(--accent-soft);
7492
+ }
7493
+
7494
+ .structured-status-bar .status-bar-track {
7495
+ flex: 1;
7496
+ height: 3px;
7497
+ border-radius: 2px;
7498
+ background: rgba(var(--accent-rgb, 99, 102, 241), 0.1);
7499
+ overflow: hidden;
7500
+ position: relative;
7501
+ }
7502
+
7503
+ .structured-status-bar .status-bar-fill {
7504
+ position: absolute;
7505
+ top: 0;
7506
+ left: 0;
7507
+ width: 40%;
7508
+ height: 100%;
7509
+ border-radius: 2px;
7510
+ background: linear-gradient(90deg, transparent, var(--accent-soft), transparent);
7511
+ animation: marqueeScroll 1.5s ease-in-out infinite;
7512
+ }
7513
+
7514
+ @keyframes marqueeScroll {
7515
+ 0% { left: -40%; }
7516
+ 100% { left: 100%; }
7517
+ }
7518
+
7519
+ .structured-status-bar .status-bar-timer {
7520
+ flex-shrink: 0;
7521
+ font-variant-numeric: tabular-nums;
7522
+ font-family: var(--font-mono);
7523
+ font-size: 0.6875rem;
7524
+ color: var(--text-muted);
7525
+ }
7526
+
7527
+ /* 完成态 */
7528
+ .structured-status-bar.completed {
7529
+ background: rgba(79, 122, 88, 0.06);
7530
+ border-color: rgba(79, 122, 88, 0.15);
7531
+ animation: statusBarFadeOut 2s ease-out 1s forwards;
7532
+ }
7533
+
7534
+ .structured-status-bar.completed .status-bar-label {
7535
+ color: var(--success);
7536
+ }
7537
+
7538
+ .structured-status-bar.completed .status-bar-track {
7539
+ background: rgba(79, 122, 88, 0.1);
7540
+ }
7541
+
7542
+ .structured-status-bar.completed .status-bar-fill {
7543
+ width: 100%;
7544
+ background: var(--success);
7545
+ opacity: 0.5;
7546
+ animation: none;
7547
+ left: 0;
7548
+ }
7549
+
7550
+ @keyframes statusBarFadeOut {
7551
+ 0% { opacity: 1; max-height: 50px; margin: 8px 0 4px; padding: 8px 12px; }
7552
+ 70% { opacity: 0; max-height: 50px; margin: 8px 0 4px; padding: 8px 12px; }
7553
+ 100% { opacity: 0; max-height: 0; margin: 0; padding: 0 12px; border-width: 0; }
7554
+ }
7555
+
7399
7556
  /* 结束标记 */
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@co0ontty/wand",
3
- "version": "1.3.6",
3
+ "version": "1.4.0",
4
4
  "description": "A web terminal for local CLI tools like Claude.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -37,6 +37,7 @@
37
37
  "@xterm/addon-fit": "^0.11.0",
38
38
  "express": "^4.21.2",
39
39
  "node-pty": "^1.1.0",
40
+ "puppeteer": "^24.40.0",
40
41
  "ws": "^8.19.0",
41
42
  "xterm": "^5.3.0",
42
43
  "xterm-addon-serialize": "^0.11.0"