@co0ontty/wand 1.3.6 → 1.5.1

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.
@@ -2231,6 +2231,7 @@
2231
2231
 
2232
2232
  .chat-message.assistant {
2233
2233
  align-self: flex-start;
2234
+ max-width: 95%;
2234
2235
  }
2235
2236
 
2236
2237
  .chat-message.system-info {
@@ -2296,9 +2297,11 @@
2296
2297
  }
2297
2298
 
2298
2299
  .chat-message.assistant .chat-message-avatar {
2299
- background: linear-gradient(135deg, var(--accent) 0%, var(--accent-hover) 100%);
2300
- color: var(--text-inverse);
2301
- box-shadow: 0 2px 8px rgba(197, 101, 61, 0.3);
2300
+ font-size: 0.75rem;
2301
+ font-weight: 600;
2302
+ color: var(--accent);
2303
+ padding: 0 2px 4px 2px;
2304
+ letter-spacing: 0.03em;
2302
2305
  }
2303
2306
 
2304
2307
  /* ===== 消息气泡 ===== */
@@ -2351,23 +2354,44 @@
2351
2354
  box-shadow: var(--shadow-md);
2352
2355
  }
2353
2356
 
2357
+ /* ===== 结构化消息内容(无气泡包裹) ===== */
2358
+ .chat-message-content {
2359
+ display: flex;
2360
+ flex-direction: column;
2361
+ gap: 2px;
2362
+ max-width: 100%;
2363
+ font-size: 0.875rem;
2364
+ line-height: var(--line-height-relaxed);
2365
+ word-wrap: break-word;
2366
+ color: var(--text-primary);
2367
+ }
2368
+
2369
+ .chat-message-content > .thinking-inline,
2370
+ .chat-message-content > .inline-tool,
2371
+ .chat-message-content > .terminal-tool,
2372
+ .chat-message-content > .diff-tool,
2373
+ .chat-message-content > .tool-use-card {
2374
+ margin: 1px 0;
2375
+ }
2376
+
2354
2377
  /* ===== 消息使用量信息 ===== */
2355
2378
  .message-usage {
2356
- margin-top: 12px;
2357
- padding-top: 10px;
2358
- border-top: 1px dashed var(--border-subtle);
2379
+ margin-top: 8px;
2380
+ padding-top: 6px;
2381
+ border-top: 1px solid var(--border-subtle);
2359
2382
  font-family: var(--font-mono);
2360
- font-size: 0.6875rem;
2361
- color: var(--text-tertiary);
2383
+ font-size: 0.625rem;
2384
+ color: var(--text-muted);
2362
2385
  display: flex;
2363
- gap: 12px;
2386
+ gap: 10px;
2364
2387
  align-items: center;
2365
2388
  flex-wrap: wrap;
2389
+ opacity: 0.5;
2366
2390
  }
2367
2391
 
2368
2392
  .message-usage::before {
2369
- content: '';
2370
- color: var(--accent-soft);
2393
+ content: '·';
2394
+ color: var(--text-muted);
2371
2395
  font-size: 0.625rem;
2372
2396
  }
2373
2397
 
@@ -2488,9 +2512,9 @@
2488
2512
 
2489
2513
  /* Tool Use Card */
2490
2514
  .tool-use-card {
2491
- margin: 6px 0;
2515
+ margin: 3px 0;
2492
2516
  border: 1px solid var(--border-subtle);
2493
- border-radius: var(--radius-sm);
2517
+ border-radius: 8px;
2494
2518
  overflow: hidden;
2495
2519
  width: 100%;
2496
2520
  box-sizing: border-box;
@@ -2498,9 +2522,8 @@
2498
2522
  transition: all 0.3s var(--ease-out-expo);
2499
2523
  }
2500
2524
  .tool-use-card:hover {
2501
- border-color: rgba(79, 122, 88, 0.3);
2502
- transform: translateX(4px);
2503
- box-shadow: -4px 4px 16px rgba(79, 122, 88, 0.08);
2525
+ border-color: rgba(79, 122, 88, 0.25);
2526
+ box-shadow: 0 2px 8px rgba(79, 122, 88, 0.06);
2504
2527
  }
2505
2528
  .tool-use-card.loading {
2506
2529
  border-color: rgba(79, 122, 88, 0.4);
@@ -2515,8 +2538,8 @@
2515
2538
  display: flex;
2516
2539
  align-items: center;
2517
2540
  gap: 8px;
2518
- padding: 10px 12px;
2519
- background: rgba(79, 122, 88, 0.06);
2541
+ padding: 8px 12px;
2542
+ background: rgba(79, 122, 88, 0.04);
2520
2543
  cursor: pointer;
2521
2544
  font-size: 0.8125rem;
2522
2545
  user-select: none;
@@ -2524,7 +2547,7 @@
2524
2547
  -webkit-tap-highlight-color: transparent;
2525
2548
  touch-action: manipulation;
2526
2549
  transition: all 0.2s var(--ease-out-expo);
2527
- min-height: 44px;
2550
+ min-height: 36px;
2528
2551
  flex-wrap: nowrap;
2529
2552
  }
2530
2553
  .tool-use-header:hover {
@@ -2543,12 +2566,18 @@
2543
2566
  background: rgba(178, 79, 69, 0.1);
2544
2567
  }
2545
2568
  .tool-use-icon {
2546
- font-size: 1.1rem;
2569
+ font-size: 0.6875rem;
2570
+ font-family: var(--font-mono);
2571
+ font-weight: 600;
2547
2572
  flex-shrink: 0;
2548
2573
  display: flex;
2549
2574
  align-items: center;
2550
2575
  justify-content: center;
2551
- min-width: 20px;
2576
+ min-width: 18px;
2577
+ height: 18px;
2578
+ border-radius: 4px;
2579
+ background: rgba(79, 122, 88, 0.1);
2580
+ color: var(--success);
2552
2581
  }
2553
2582
  .tool-use-spinner {
2554
2583
  display: inline-block;
@@ -2745,22 +2774,22 @@
2745
2774
  .thinking-inline {
2746
2775
  display: flex;
2747
2776
  align-items: baseline;
2748
- gap: 6px;
2749
- margin: 8px 0;
2750
- padding: 6px 10px;
2751
- border-radius: var(--radius-sm);
2752
- background: rgba(138, 108, 178, 0.05);
2777
+ gap: 5px;
2778
+ margin: 2px 0;
2779
+ padding: 3px 8px;
2780
+ border-radius: 6px;
2781
+ background: rgba(138, 108, 178, 0.04);
2753
2782
  cursor: pointer;
2754
- font-size: 0.8125rem;
2755
- line-height: 1.5;
2756
- color: rgba(138, 108, 178, 0.7);
2783
+ font-size: 0.75rem;
2784
+ line-height: 1.4;
2785
+ color: rgba(138, 108, 178, 0.55);
2757
2786
  transition: background var(--transition-fast), color var(--transition-fast);
2758
2787
  word-break: break-word;
2759
2788
  overflow-wrap: break-word;
2760
2789
  }
2761
2790
  .thinking-inline:hover {
2762
- background: rgba(138, 108, 178, 0.1);
2763
- color: rgba(138, 108, 178, 0.9);
2791
+ background: rgba(138, 108, 178, 0.08);
2792
+ color: rgba(138, 108, 178, 0.8);
2764
2793
  }
2765
2794
  .thinking-inline.expanded {
2766
2795
  color: var(--text-secondary);
@@ -2771,7 +2800,7 @@
2771
2800
  }
2772
2801
  .thinking-inline-icon {
2773
2802
  flex-shrink: 0;
2774
- font-size: 0.875rem;
2803
+ font-size: 0.625rem;
2775
2804
  }
2776
2805
  .thinking-inline-preview {
2777
2806
  flex: 1;
@@ -2786,42 +2815,42 @@
2786
2815
  }
2787
2816
  .thinking-inline-action {
2788
2817
  flex-shrink: 0;
2789
- font-size: 0.75rem;
2790
- color: rgba(138, 108, 178, 0.5);
2791
- padding: 1px 6px;
2818
+ font-size: 0.625rem;
2819
+ color: rgba(138, 108, 178, 0.4);
2820
+ padding: 0 4px;
2792
2821
  border-radius: 3px;
2793
- background: rgba(138, 108, 178, 0.1);
2822
+ background: rgba(138, 108, 178, 0.08);
2794
2823
  margin-left: auto;
2795
2824
  }
2796
2825
  .thinking-inline:hover .thinking-inline-action {
2797
- color: rgba(138, 108, 178, 0.8);
2826
+ color: rgba(138, 108, 178, 0.7);
2798
2827
  }
2799
2828
  .thinking-inline.thinking-pty {
2800
- background: rgba(138, 108, 178, 0.05);
2829
+ background: rgba(138, 108, 178, 0.03);
2801
2830
  }
2802
2831
 
2803
2832
  /* Streaming thinking: 3-line scrollable area during thinking */
2804
2833
  .thinking-streaming {
2805
2834
  display: flex;
2806
2835
  align-items: flex-start;
2807
- gap: 6px;
2808
- margin: 8px 0;
2809
- padding: 6px 10px;
2810
- border-radius: var(--radius-sm);
2811
- background: rgba(138, 108, 178, 0.06);
2836
+ gap: 5px;
2837
+ margin: 2px 0;
2838
+ padding: 3px 8px;
2839
+ border-radius: 6px;
2840
+ background: rgba(138, 108, 178, 0.04);
2812
2841
  cursor: default;
2813
- font-size: 0.8125rem;
2814
- line-height: 1.5;
2815
- color: rgba(138, 108, 178, 0.7);
2842
+ font-size: 0.75rem;
2843
+ line-height: 1.4;
2844
+ color: rgba(138, 108, 178, 0.55);
2816
2845
  }
2817
2846
  .thinking-streaming-inner {
2818
2847
  display: flex;
2819
2848
  align-items: flex-start;
2820
- gap: 6px;
2849
+ gap: 5px;
2821
2850
  width: 100%;
2822
2851
  }
2823
2852
  .thinking-streaming-icon {
2824
- font-size: 0.875rem;
2853
+ font-size: 0.625rem;
2825
2854
  flex-shrink: 0;
2826
2855
  margin-top: 1px;
2827
2856
  }
@@ -2851,33 +2880,38 @@
2851
2880
  .inline-tool {
2852
2881
  display: flex;
2853
2882
  flex-direction: column;
2854
- margin: 4px 0;
2855
- border-radius: var(--radius-sm);
2883
+ margin: 1px 0;
2884
+ border-radius: 6px;
2856
2885
  cursor: pointer;
2857
2886
  transition: background var(--transition-fast);
2858
2887
  }
2859
2888
  .inline-tool-row {
2860
2889
  display: flex;
2861
2890
  align-items: center;
2862
- gap: 6px;
2863
- padding: 4px 8px;
2864
- font-size: 0.8125rem;
2891
+ gap: 5px;
2892
+ padding: 2px 6px;
2893
+ font-size: 0.6875rem;
2865
2894
  color: var(--text-muted);
2866
2895
  font-family: var(--font-mono);
2867
- line-height: 1.5;
2896
+ line-height: 1.4;
2897
+ opacity: 0.7;
2868
2898
  }
2869
2899
  .inline-tool:hover .inline-tool-row {
2870
- background: rgba(0, 0, 0, 0.03);
2871
- border-radius: var(--radius-sm);
2900
+ opacity: 1;
2901
+ background: rgba(0, 0, 0, 0.02);
2902
+ border-radius: 6px;
2872
2903
  }
2873
2904
  .inline-tool-status {
2874
- font-size: 0.75rem;
2905
+ font-size: 0.625rem;
2875
2906
  flex-shrink: 0;
2876
2907
  }
2877
2908
  .inline-tool-icon {
2878
2909
  flex-shrink: 0;
2879
2910
  color: var(--text-muted);
2880
- margin: 0 2px;
2911
+ margin: 0 1px;
2912
+ opacity: 0.6;
2913
+ width: 12px;
2914
+ height: 12px;
2881
2915
  }
2882
2916
  .inline-tool-title {
2883
2917
  flex: 1;
@@ -2885,13 +2919,13 @@
2885
2919
  overflow: hidden;
2886
2920
  text-overflow: ellipsis;
2887
2921
  white-space: nowrap;
2888
- color: var(--text-secondary);
2922
+ color: var(--text-muted);
2889
2923
  }
2890
2924
  .inline-tool-meta {
2891
2925
  flex-shrink: 0;
2892
- font-size: 0.7rem;
2926
+ font-size: 0.625rem;
2893
2927
  color: var(--text-muted);
2894
- opacity: 0.7;
2928
+ opacity: 0.5;
2895
2929
  max-width: 200px;
2896
2930
  overflow: hidden;
2897
2931
  text-overflow: ellipsis;
@@ -2958,9 +2992,9 @@
2958
2992
 
2959
2993
  /* ── Inline Terminal Display (Bash) ── */
2960
2994
  .inline-terminal {
2961
- margin: 6px 0;
2995
+ margin: 3px 0;
2962
2996
  border: 1px solid rgba(255, 255, 255, 0.06);
2963
- border-radius: var(--radius-sm);
2997
+ border-radius: 8px;
2964
2998
  background: #1a1714;
2965
2999
  overflow: hidden;
2966
3000
  }
@@ -2968,12 +3002,15 @@
2968
3002
  display: flex;
2969
3003
  align-items: center;
2970
3004
  gap: 6px;
2971
- padding: 6px 10px;
3005
+ padding: 5px 10px;
2972
3006
  background: rgba(255, 255, 255, 0.03);
2973
3007
  font-size: 0.75rem;
2974
3008
  cursor: pointer;
2975
3009
  user-select: none;
2976
3010
  }
3011
+ .term-header:hover {
3012
+ background: rgba(255, 255, 255, 0.05);
3013
+ }
2977
3014
  .term-status-dot {
2978
3015
  width: 6px;
2979
3016
  height: 6px;
@@ -2988,6 +3025,22 @@
2988
3025
  0%, 100% { opacity: 1; }
2989
3026
  50% { opacity: 0.4; }
2990
3027
  }
3028
+ .term-cmd-preview {
3029
+ flex: 1;
3030
+ min-width: 0;
3031
+ font-family: var(--font-mono);
3032
+ font-size: 0.6875rem;
3033
+ color: rgba(255, 255, 255, 0.45);
3034
+ overflow: hidden;
3035
+ text-overflow: ellipsis;
3036
+ white-space: nowrap;
3037
+ }
3038
+ .term-cmd-preview .term-prompt {
3039
+ color: rgba(110, 224, 154, 0.6);
3040
+ font-weight: 500;
3041
+ margin-right: 4px;
3042
+ font-size: 0.6875rem;
3043
+ }
2991
3044
  .term-title {
2992
3045
  flex: 1;
2993
3046
  font-family: var(--font-mono);
@@ -2995,8 +3048,8 @@
2995
3048
  color: rgba(255, 255, 255, 0.3);
2996
3049
  }
2997
3050
  .term-toggle-icon {
2998
- font-size: 0.625rem;
2999
- color: rgba(255, 255, 255, 0.3);
3051
+ font-size: 0.5rem;
3052
+ color: rgba(255, 255, 255, 0.25);
3000
3053
  transition: transform var(--transition-fast);
3001
3054
  }
3002
3055
  .term-body {
@@ -3040,9 +3093,9 @@
3040
3093
 
3041
3094
  /* ── Inline Diff Display (Edit, Write, MultiEdit) ── */
3042
3095
  .inline-diff {
3043
- margin: 6px 0;
3044
- border: 1px solid rgba(0, 0, 0, 0.08);
3045
- border-radius: var(--radius-sm);
3096
+ margin: 3px 0;
3097
+ border: 1px solid rgba(0, 0, 0, 0.06);
3098
+ border-radius: 8px;
3046
3099
  overflow: hidden;
3047
3100
  background: var(--bg-secondary);
3048
3101
  }
@@ -3055,8 +3108,7 @@
3055
3108
  font-size: 0.75rem;
3056
3109
  }
3057
3110
  .diff-file-icon {
3058
- flex-shrink: 0;
3059
- font-size: 0.875rem;
3111
+ display: none;
3060
3112
  }
3061
3113
  .diff-file-name {
3062
3114
  font-family: var(--font-mono);
@@ -3225,7 +3277,8 @@
3225
3277
  }
3226
3278
 
3227
3279
  /* Markdown Content */
3228
- .markdown-content { color: inherit; }
3280
+ .markdown-content { color: inherit; white-space: normal; overflow-x: hidden; }
3281
+ .markdown-content .code-block pre { overflow-x: auto; }
3229
3282
  .markdown-content p { margin: 0 0 8px 0; }
3230
3283
  .markdown-content p:last-child { margin-bottom: 0; }
3231
3284
  .markdown-content strong { font-weight: 600; }
@@ -3430,6 +3483,30 @@
3430
3483
  to { opacity: 1; transform: translateX(0); }
3431
3484
  }
3432
3485
 
3486
+ /* Auto-approve indicator */
3487
+ .auto-approve-indicator {
3488
+ display: inline-flex;
3489
+ align-items: center;
3490
+ gap: 2px;
3491
+ font-size: 0.65rem;
3492
+ color: var(--muted);
3493
+ cursor: pointer;
3494
+ padding: 1px 4px;
3495
+ border-radius: 4px;
3496
+ transition: color 0.15s, background 0.15s;
3497
+ user-select: none;
3498
+ white-space: nowrap;
3499
+ }
3500
+ .auto-approve-indicator:hover {
3501
+ background: rgba(255, 255, 255, 0.06);
3502
+ }
3503
+ .auto-approve-indicator.active {
3504
+ color: #22c55e;
3505
+ }
3506
+ .auto-approve-indicator.active:hover {
3507
+ background: rgba(34, 197, 94, 0.1);
3508
+ }
3509
+
3433
3510
  /* Approval stats badge */
3434
3511
  .approval-stats {
3435
3512
  display: inline-flex;
@@ -4571,11 +4648,11 @@
4571
4648
  display: flex;
4572
4649
  flex-direction: column;
4573
4650
  align-items: center;
4574
- gap: 1px;
4575
- padding: 8px 4px;
4576
- border: 1.5px solid rgba(125, 91, 57, 0.15);
4651
+ gap: 3px;
4652
+ padding: 10px 8px;
4653
+ border: 1.5px solid rgba(125, 91, 57, 0.2);
4577
4654
  border-radius: 10px;
4578
- background: rgba(255, 255, 255, 0.55);
4655
+ background: rgba(255, 255, 255, 0.6);
4579
4656
  cursor: pointer;
4580
4657
  transition: border-color var(--transition-fast), box-shadow var(--transition-fast), background var(--transition-fast);
4581
4658
  text-align: center;
@@ -4595,13 +4672,13 @@
4595
4672
  box-shadow: 0 0 0 1.5px var(--accent-muted);
4596
4673
  }
4597
4674
  .mode-card-label {
4598
- font-size: 0.75rem;
4675
+ font-size: 0.8rem;
4599
4676
  font-weight: 600;
4600
4677
  color: var(--text-primary);
4601
4678
  line-height: 1.3;
4602
4679
  }
4603
4680
  .mode-card-desc {
4604
- font-size: 0.625rem;
4681
+ font-size: 0.68rem;
4605
4682
  color: var(--text-muted);
4606
4683
  line-height: 1.3;
4607
4684
  }
@@ -5455,7 +5532,7 @@
5455
5532
  .btn-sm { min-height: 32px; }
5456
5533
 
5457
5534
  .chat-message-bubble { padding: 8px 10px; font-size: 0.75rem; }
5458
- .chat-message-avatar { width: 24px; height: 24px; font-size: 11px; }
5535
+ .chat-message-avatar { font-size: 0.6875rem; }
5459
5536
 
5460
5537
  /* 模态框移动端优化 */
5461
5538
  .modal-backdrop {
@@ -5679,6 +5756,53 @@
5679
5756
  }
5680
5757
  }
5681
5758
 
5759
+ .session-kind-badge {
5760
+ display: inline-flex;
5761
+ align-items: center;
5762
+ height: 18px;
5763
+ padding: 0 6px;
5764
+ border-radius: 999px;
5765
+ font-size: 0.6875rem;
5766
+ font-weight: 600;
5767
+ letter-spacing: 0.01em;
5768
+ border: 1px solid transparent;
5769
+ flex-shrink: 0;
5770
+ }
5771
+
5772
+ .session-kind-badge.pty {
5773
+ color: var(--text-secondary);
5774
+ background: rgba(120, 128, 140, 0.12);
5775
+ border-color: rgba(120, 128, 140, 0.18);
5776
+ }
5777
+
5778
+ .session-kind-badge.structured {
5779
+ color: #d18b52;
5780
+ background: rgba(215, 122, 82, 0.10);
5781
+ border-color: rgba(215, 122, 82, 0.22);
5782
+ }
5783
+
5784
+ .session-kind-display {
5785
+ display: inline-flex;
5786
+ align-items: center;
5787
+ padding: 1px 6px;
5788
+ border-radius: 999px;
5789
+ font-size: 0.6875rem;
5790
+ font-weight: 600;
5791
+ color: #8a4b24;
5792
+ background: rgba(215, 122, 82, 0.12);
5793
+ border: 1px solid rgba(215, 122, 82, 0.2);
5794
+ }
5795
+
5796
+ .structured-tool-hint {
5797
+ margin: 4px 0 8px;
5798
+ padding: 6px 10px;
5799
+ border-radius: 10px;
5800
+ font-size: 0.75rem;
5801
+ color: var(--text-muted);
5802
+ background: rgba(215, 122, 82, 0.08);
5803
+ border: 1px dashed rgba(215, 122, 82, 0.18);
5804
+ }
5805
+
5682
5806
  .blank-chat {
5683
5807
  display: flex;
5684
5808
  align-items: center;
@@ -5688,6 +5812,7 @@
5688
5812
  min-height: 0;
5689
5813
  overflow: auto;
5690
5814
  }
5815
+
5691
5816
  .blank-chat-inner {
5692
5817
  width: 100%;
5693
5818
  max-width: 560px;
@@ -7396,4 +7521,88 @@
7396
7521
  z-index: 20;
7397
7522
  }
7398
7523
 
7524
+ /* ── 结构化会话状态条 ── */
7525
+ .structured-status-bar {
7526
+ display: flex;
7527
+ align-items: center;
7528
+ gap: 10px;
7529
+ margin: 8px 0 4px;
7530
+ padding: 8px 12px;
7531
+ border-radius: var(--radius-sm);
7532
+ background: rgba(var(--accent-rgb, 99, 102, 241), 0.06);
7533
+ border: 1px solid rgba(var(--accent-rgb, 99, 102, 241), 0.12);
7534
+ font-size: 0.75rem;
7535
+ color: var(--text-secondary);
7536
+ transition: all 0.3s ease;
7537
+ overflow: hidden;
7538
+ }
7539
+
7540
+ .structured-status-bar .status-bar-label {
7541
+ flex-shrink: 0;
7542
+ font-weight: 600;
7543
+ color: var(--accent-soft);
7544
+ }
7545
+
7546
+ .structured-status-bar .status-bar-track {
7547
+ flex: 1;
7548
+ height: 3px;
7549
+ border-radius: 2px;
7550
+ background: rgba(var(--accent-rgb, 99, 102, 241), 0.1);
7551
+ overflow: hidden;
7552
+ position: relative;
7553
+ }
7554
+
7555
+ .structured-status-bar .status-bar-fill {
7556
+ position: absolute;
7557
+ top: 0;
7558
+ left: 0;
7559
+ width: 40%;
7560
+ height: 100%;
7561
+ border-radius: 2px;
7562
+ background: linear-gradient(90deg, transparent, var(--accent-soft), transparent);
7563
+ animation: marqueeScroll 1.5s ease-in-out infinite;
7564
+ }
7565
+
7566
+ @keyframes marqueeScroll {
7567
+ 0% { left: -40%; }
7568
+ 100% { left: 100%; }
7569
+ }
7570
+
7571
+ .structured-status-bar .status-bar-timer {
7572
+ flex-shrink: 0;
7573
+ font-variant-numeric: tabular-nums;
7574
+ font-family: var(--font-mono);
7575
+ font-size: 0.6875rem;
7576
+ color: var(--text-muted);
7577
+ }
7578
+
7579
+ /* 完成态 */
7580
+ .structured-status-bar.completed {
7581
+ background: rgba(79, 122, 88, 0.06);
7582
+ border-color: rgba(79, 122, 88, 0.15);
7583
+ animation: statusBarFadeOut 2s ease-out 1s forwards;
7584
+ }
7585
+
7586
+ .structured-status-bar.completed .status-bar-label {
7587
+ color: var(--success);
7588
+ }
7589
+
7590
+ .structured-status-bar.completed .status-bar-track {
7591
+ background: rgba(79, 122, 88, 0.1);
7592
+ }
7593
+
7594
+ .structured-status-bar.completed .status-bar-fill {
7595
+ width: 100%;
7596
+ background: var(--success);
7597
+ opacity: 0.5;
7598
+ animation: none;
7599
+ left: 0;
7600
+ }
7601
+
7602
+ @keyframes statusBarFadeOut {
7603
+ 0% { opacity: 1; max-height: 50px; margin: 8px 0 4px; padding: 8px 12px; }
7604
+ 70% { opacity: 0; max-height: 50px; margin: 8px 0 4px; padding: 8px 12px; }
7605
+ 100% { opacity: 0; max-height: 0; margin: 0; padding: 0 12px; border-width: 0; }
7606
+ }
7607
+
7399
7608
  /* 结束标记 */
@@ -37,7 +37,7 @@ ${cssStyles}
37
37
  <div id="app"></div>
38
38
  ${scriptOpen} src="/vendor/xterm/lib/xterm.js">${scriptClose}
39
39
  ${scriptOpen} src="/vendor/xterm-addon-fit/lib/addon-fit.js">${scriptClose}
40
- ${scriptOpen} src="/vendor/xterm-addon-serialize/lib/xterm-addon-serialize.js">${scriptClose}
40
+ ${scriptOpen} src="/vendor/xterm-addon-serialize/lib/addon-serialize.js">${scriptClose}
41
41
  ${scriptOpen}>
42
42
  ${scriptContent}
43
43
  ${scriptClose}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@co0ontty/wand",
3
- "version": "1.3.6",
3
+ "version": "1.5.1",
4
4
  "description": "A web terminal for local CLI tools like Claude.",
5
5
  "type": "module",
6
6
  "bin": {
@@ -35,11 +35,12 @@
35
35
  "dependencies": {
36
36
  "@types/cookie": "^0.6.0",
37
37
  "@xterm/addon-fit": "^0.11.0",
38
+ "@xterm/addon-serialize": "^0.14.0",
39
+ "@xterm/xterm": "^5.5.0",
38
40
  "express": "^4.21.2",
39
41
  "node-pty": "^1.1.0",
40
- "ws": "^8.19.0",
41
- "xterm": "^5.3.0",
42
- "xterm-addon-serialize": "^0.11.0"
42
+ "puppeteer": "^24.40.0",
43
+ "ws": "^8.19.0"
43
44
  },
44
45
  "devDependencies": {
45
46
  "@types/express": "^4.17.21",