@co0ontty/wand 1.0.1 → 1.1.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.
- package/README.md +7 -1
- package/dist/avatar.d.ts +2 -1
- package/dist/avatar.js +29 -37
- package/dist/process-manager.d.ts +1 -1
- package/dist/process-manager.js +16 -5
- package/dist/pwa.js +6 -2
- package/dist/server.js +155 -3
- package/dist/session-logger.d.ts +2 -0
- package/dist/session-logger.js +15 -0
- package/dist/types.d.ts +2 -0
- package/dist/web-ui/content/scripts.js +614 -32
- package/dist/web-ui/content/styles.css +223 -0
- package/dist/web-ui/index.js +2 -2
- package/package.json +1 -1
|
@@ -1595,12 +1595,81 @@
|
|
|
1595
1595
|
|
|
1596
1596
|
.terminal-container .xterm-viewport {
|
|
1597
1597
|
background: transparent !important;
|
|
1598
|
+
scrollbar-width: none;
|
|
1599
|
+
}
|
|
1600
|
+
.terminal-container .xterm-viewport::-webkit-scrollbar {
|
|
1601
|
+
display: none;
|
|
1598
1602
|
}
|
|
1599
1603
|
|
|
1600
1604
|
.terminal-container .xterm {
|
|
1601
1605
|
padding: 0;
|
|
1602
1606
|
}
|
|
1603
1607
|
|
|
1608
|
+
/* ===== 自定义终端滚动条 ===== */
|
|
1609
|
+
.terminal-scrollbar {
|
|
1610
|
+
position: absolute;
|
|
1611
|
+
top: 4px;
|
|
1612
|
+
right: 2px;
|
|
1613
|
+
bottom: 4px;
|
|
1614
|
+
width: 14px;
|
|
1615
|
+
z-index: 10;
|
|
1616
|
+
opacity: 0;
|
|
1617
|
+
transition: opacity 0.3s ease;
|
|
1618
|
+
pointer-events: none;
|
|
1619
|
+
}
|
|
1620
|
+
.terminal-scrollbar.visible {
|
|
1621
|
+
opacity: 1;
|
|
1622
|
+
pointer-events: auto;
|
|
1623
|
+
}
|
|
1624
|
+
.terminal-scrollbar-track {
|
|
1625
|
+
position: absolute;
|
|
1626
|
+
top: 0;
|
|
1627
|
+
right: 0;
|
|
1628
|
+
bottom: 0;
|
|
1629
|
+
width: 14px;
|
|
1630
|
+
border-radius: 7px;
|
|
1631
|
+
}
|
|
1632
|
+
.terminal-scrollbar-thumb {
|
|
1633
|
+
position: absolute;
|
|
1634
|
+
right: 3px;
|
|
1635
|
+
width: 8px;
|
|
1636
|
+
min-height: 28px;
|
|
1637
|
+
border-radius: 4px;
|
|
1638
|
+
background: rgba(180, 150, 120, 0.35);
|
|
1639
|
+
cursor: pointer;
|
|
1640
|
+
transition: background 0.15s ease, width 0.15s ease, right 0.15s ease;
|
|
1641
|
+
}
|
|
1642
|
+
.terminal-scrollbar-thumb:hover {
|
|
1643
|
+
background: rgba(200, 170, 140, 0.55);
|
|
1644
|
+
width: 10px;
|
|
1645
|
+
right: 2px;
|
|
1646
|
+
}
|
|
1647
|
+
.terminal-scrollbar-thumb.dragging,
|
|
1648
|
+
.terminal-scrollbar-thumb:active {
|
|
1649
|
+
background: rgba(220, 185, 150, 0.7);
|
|
1650
|
+
width: 10px;
|
|
1651
|
+
right: 2px;
|
|
1652
|
+
}
|
|
1653
|
+
|
|
1654
|
+
@media (pointer: coarse) {
|
|
1655
|
+
.terminal-scrollbar {
|
|
1656
|
+
width: 20px;
|
|
1657
|
+
}
|
|
1658
|
+
.terminal-scrollbar-track {
|
|
1659
|
+
width: 20px;
|
|
1660
|
+
}
|
|
1661
|
+
.terminal-scrollbar-thumb {
|
|
1662
|
+
width: 12px;
|
|
1663
|
+
right: 4px;
|
|
1664
|
+
min-height: 36px;
|
|
1665
|
+
}
|
|
1666
|
+
.terminal-scrollbar-thumb:hover,
|
|
1667
|
+
.terminal-scrollbar-thumb.dragging {
|
|
1668
|
+
width: 14px;
|
|
1669
|
+
right: 3px;
|
|
1670
|
+
}
|
|
1671
|
+
}
|
|
1672
|
+
|
|
1604
1673
|
.terminal-container:focus-within {
|
|
1605
1674
|
border-color: rgba(197, 101, 61, 0.5);
|
|
1606
1675
|
box-shadow:
|
|
@@ -5690,6 +5759,160 @@
|
|
|
5690
5759
|
to { opacity: 1; }
|
|
5691
5760
|
}
|
|
5692
5761
|
|
|
5762
|
+
/* ── Settings modal ── */
|
|
5763
|
+
|
|
5764
|
+
.settings-modal {
|
|
5765
|
+
max-width: 520px;
|
|
5766
|
+
max-height: 80vh;
|
|
5767
|
+
}
|
|
5768
|
+
|
|
5769
|
+
.settings-tabs {
|
|
5770
|
+
display: flex;
|
|
5771
|
+
gap: 2px;
|
|
5772
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
5773
|
+
margin-bottom: 16px;
|
|
5774
|
+
padding-bottom: 0;
|
|
5775
|
+
}
|
|
5776
|
+
|
|
5777
|
+
.settings-tab {
|
|
5778
|
+
padding: 8px 14px;
|
|
5779
|
+
font-size: 0.8125rem;
|
|
5780
|
+
font-weight: 500;
|
|
5781
|
+
color: var(--text-secondary);
|
|
5782
|
+
background: none;
|
|
5783
|
+
border: none;
|
|
5784
|
+
border-bottom: 2px solid transparent;
|
|
5785
|
+
cursor: pointer;
|
|
5786
|
+
transition: color 0.15s, border-color 0.15s;
|
|
5787
|
+
white-space: nowrap;
|
|
5788
|
+
}
|
|
5789
|
+
|
|
5790
|
+
.settings-tab:hover {
|
|
5791
|
+
color: var(--text-primary);
|
|
5792
|
+
}
|
|
5793
|
+
|
|
5794
|
+
.settings-tab.active {
|
|
5795
|
+
color: var(--accent);
|
|
5796
|
+
border-bottom-color: var(--accent);
|
|
5797
|
+
}
|
|
5798
|
+
|
|
5799
|
+
.settings-panel {
|
|
5800
|
+
display: none;
|
|
5801
|
+
}
|
|
5802
|
+
|
|
5803
|
+
.settings-panel.active {
|
|
5804
|
+
display: block;
|
|
5805
|
+
}
|
|
5806
|
+
|
|
5807
|
+
.settings-about-info {
|
|
5808
|
+
display: flex;
|
|
5809
|
+
flex-direction: column;
|
|
5810
|
+
gap: 10px;
|
|
5811
|
+
margin-bottom: 18px;
|
|
5812
|
+
}
|
|
5813
|
+
|
|
5814
|
+
.settings-about-row {
|
|
5815
|
+
display: flex;
|
|
5816
|
+
justify-content: space-between;
|
|
5817
|
+
align-items: center;
|
|
5818
|
+
font-size: 0.8125rem;
|
|
5819
|
+
}
|
|
5820
|
+
|
|
5821
|
+
.settings-label {
|
|
5822
|
+
color: var(--text-secondary);
|
|
5823
|
+
font-weight: 500;
|
|
5824
|
+
}
|
|
5825
|
+
|
|
5826
|
+
.settings-value {
|
|
5827
|
+
color: var(--text-primary);
|
|
5828
|
+
font-family: var(--font-mono);
|
|
5829
|
+
font-size: 0.8rem;
|
|
5830
|
+
}
|
|
5831
|
+
|
|
5832
|
+
.settings-value a {
|
|
5833
|
+
color: var(--accent);
|
|
5834
|
+
text-decoration: none;
|
|
5835
|
+
}
|
|
5836
|
+
|
|
5837
|
+
.settings-value a:hover {
|
|
5838
|
+
text-decoration: underline;
|
|
5839
|
+
}
|
|
5840
|
+
|
|
5841
|
+
.settings-update-section {
|
|
5842
|
+
border-top: 1px solid var(--border-subtle);
|
|
5843
|
+
padding-top: 14px;
|
|
5844
|
+
}
|
|
5845
|
+
|
|
5846
|
+
.settings-update-actions {
|
|
5847
|
+
display: flex;
|
|
5848
|
+
gap: 8px;
|
|
5849
|
+
margin-top: 10px;
|
|
5850
|
+
}
|
|
5851
|
+
|
|
5852
|
+
.settings-section-title {
|
|
5853
|
+
font-size: 0.875rem;
|
|
5854
|
+
font-weight: 600;
|
|
5855
|
+
color: var(--text-primary);
|
|
5856
|
+
margin: 0 0 12px 0;
|
|
5857
|
+
}
|
|
5858
|
+
|
|
5859
|
+
.settings-divider {
|
|
5860
|
+
border: none;
|
|
5861
|
+
border-top: 1px solid var(--border-subtle);
|
|
5862
|
+
margin: 18px 0;
|
|
5863
|
+
}
|
|
5864
|
+
|
|
5865
|
+
.settings-hint {
|
|
5866
|
+
font-size: 0.8rem;
|
|
5867
|
+
color: var(--text-secondary);
|
|
5868
|
+
margin: 0 0 12px 0;
|
|
5869
|
+
}
|
|
5870
|
+
|
|
5871
|
+
.field-inline {
|
|
5872
|
+
display: flex;
|
|
5873
|
+
align-items: center;
|
|
5874
|
+
gap: 10px;
|
|
5875
|
+
flex-direction: row;
|
|
5876
|
+
}
|
|
5877
|
+
|
|
5878
|
+
.field-inline .field-label {
|
|
5879
|
+
margin-bottom: 0;
|
|
5880
|
+
}
|
|
5881
|
+
|
|
5882
|
+
.field-checkbox {
|
|
5883
|
+
width: 18px;
|
|
5884
|
+
height: 18px;
|
|
5885
|
+
accent-color: var(--accent);
|
|
5886
|
+
cursor: pointer;
|
|
5887
|
+
}
|
|
5888
|
+
|
|
5889
|
+
.field-file {
|
|
5890
|
+
font-size: 0.8rem;
|
|
5891
|
+
padding: 6px;
|
|
5892
|
+
}
|
|
5893
|
+
|
|
5894
|
+
.preset-item {
|
|
5895
|
+
display: flex;
|
|
5896
|
+
justify-content: space-between;
|
|
5897
|
+
align-items: center;
|
|
5898
|
+
padding: 10px 12px;
|
|
5899
|
+
background: var(--bg-secondary);
|
|
5900
|
+
border-radius: 8px;
|
|
5901
|
+
margin-bottom: 8px;
|
|
5902
|
+
font-size: 0.8125rem;
|
|
5903
|
+
}
|
|
5904
|
+
|
|
5905
|
+
.preset-label {
|
|
5906
|
+
font-weight: 500;
|
|
5907
|
+
color: var(--text-primary);
|
|
5908
|
+
}
|
|
5909
|
+
|
|
5910
|
+
.preset-detail {
|
|
5911
|
+
color: var(--text-secondary);
|
|
5912
|
+
font-family: var(--font-mono);
|
|
5913
|
+
font-size: 0.75rem;
|
|
5914
|
+
}
|
|
5915
|
+
|
|
5693
5916
|
.file-preview-modal {
|
|
5694
5917
|
width: min(90vw, calc(100vw - 380px));
|
|
5695
5918
|
max-width: 1000px;
|
package/dist/web-ui/index.js
CHANGED
|
@@ -12,7 +12,7 @@ export function renderApp(configPath) {
|
|
|
12
12
|
<html lang="zh-CN">
|
|
13
13
|
<head>
|
|
14
14
|
<meta charset="utf-8" />
|
|
15
|
-
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, user-scalable=no" />
|
|
15
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, viewport-fit=cover, interactive-widget=resizes-content, user-scalable=no" />
|
|
16
16
|
<title>Wand Console</title>
|
|
17
17
|
<meta name="description" content="Local CLI Console for Vibe Coding - Manage terminal sessions from your browser" />
|
|
18
18
|
<meta name="theme-color" content="#f6f1e8" media="(prefers-color-scheme: light)" />
|
|
@@ -26,7 +26,7 @@ export function renderApp(configPath) {
|
|
|
26
26
|
<meta name="msapplication-TileColor" content="#c5653d" />
|
|
27
27
|
<meta name="msapplication-tap-highlight" content="no" />
|
|
28
28
|
<link rel="icon" href="/icon.svg" type="image/svg+xml" />
|
|
29
|
-
<link rel="apple-touch-icon" href="/icon
|
|
29
|
+
<link rel="apple-touch-icon" href="/icon.svg" />
|
|
30
30
|
<link rel="manifest" href="/manifest.json" />
|
|
31
31
|
<link rel="stylesheet" href="/vendor/xterm/css/xterm.css" />
|
|
32
32
|
<style>
|