@wendongfly/myhi 1.3.173 → 1.3.174
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/dist/chat.html +62 -17
- package/package.json +1 -1
package/dist/chat.html
CHANGED
|
@@ -220,7 +220,10 @@
|
|
|
220
220
|
background: var(--surface); border: 1px solid var(--border); color: var(--muted);
|
|
221
221
|
font-size: 0.95rem; cursor: pointer; display: none; align-items: center; justify-content: center;
|
|
222
222
|
box-shadow: 0 2px 8px rgba(0,0,0,0.35);
|
|
223
|
+
opacity: 0; pointer-events: none; transition: opacity 0.2s; /* 桌面端:鼠标移进聊天区才现身 */
|
|
223
224
|
}
|
|
225
|
+
#msg-nav-btn.hovered { opacity: 1; pointer-events: auto; }
|
|
226
|
+
@media (pointer: coarse) { #msg-nav-btn { opacity: 1; pointer-events: auto; } } /* 触屏没有 hover,常显 */
|
|
224
227
|
#msg-nav-btn:hover { color: var(--text); border-color: var(--blue); }
|
|
225
228
|
#msg-nav-panel {
|
|
226
229
|
position: fixed; right: 0.5rem; bottom: 11.8rem; z-index: 60; display: none;
|
|
@@ -284,11 +287,18 @@
|
|
|
284
287
|
/* ── 设置面板 ───────────────────────────── */
|
|
285
288
|
#settings-backdrop { display: none; position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 60; }
|
|
286
289
|
#settings-backdrop.open { display: block; }
|
|
287
|
-
#settings-panel { position: fixed; top: 0; right: -
|
|
290
|
+
#settings-panel { position: fixed; top: 0; right: -360px; width: 340px; max-width: 92vw; height: 100%; background: var(--surface); border-left: 1px solid var(--border); z-index: 61; transition: right 0.25s ease; overflow-y: auto; padding: 1rem; }
|
|
288
291
|
#settings-panel.open { right: 0; }
|
|
289
|
-
.panel-header { display: flex; justify-content: space-between; align-items: center; margin-bottom:
|
|
292
|
+
.panel-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 0.6rem; font-size: 1rem; font-weight: 600; }
|
|
290
293
|
.panel-close { background: none; border: none; color: var(--muted); font-size: 1.2rem; cursor: pointer; }
|
|
291
|
-
|
|
294
|
+
/* 设置抽屉分类页签:一屏只看一类,不再长条堆叠(1.3.174 用户反馈太拥挤) */
|
|
295
|
+
#settings-tabs { display: flex; gap: 0.25rem; margin-bottom: 0.9rem; border-bottom: 1px solid var(--border); padding-bottom: 0.4rem; }
|
|
296
|
+
#settings-tabs .stab {
|
|
297
|
+
flex: 1; background: none; border: none; color: var(--muted);
|
|
298
|
+
font-size: 0.8rem; padding: 0.35rem 0.2rem; border-radius: 7px; cursor: pointer; white-space: nowrap;
|
|
299
|
+
}
|
|
300
|
+
#settings-tabs .stab.active { background: var(--surface3); color: var(--text); font-weight: 600; }
|
|
301
|
+
.setting-group { margin-bottom: 1rem; }
|
|
292
302
|
.setting-group h4 { font-size: 0.75rem; color: var(--muted); text-transform: uppercase; letter-spacing: 0.04em; margin-bottom: 0.5rem; }
|
|
293
303
|
.setting-toggle { display: flex; justify-content: space-between; align-items: center; padding: 0.5rem 0; font-size: 0.85rem; cursor: pointer; }
|
|
294
304
|
.seg-row { display: flex; gap: 0.35rem; flex-wrap: wrap; }
|
|
@@ -531,6 +541,7 @@
|
|
|
531
541
|
</div>
|
|
532
542
|
<div id="sk-claude-agent" style="display:none">
|
|
533
543
|
<button class="sk sk-claude" id="sk-inbox" data-sk="draft" onclick="openInboxSheet()" style="color:var(--yellow)">📥 草稿<span id="inbox-badge" style="display:none;margin-left:0.2rem;background:var(--yellow);color:#000;border-radius:8px;padding:0 0.32rem;font-size:0.66rem;font-weight:700"></span></button>
|
|
544
|
+
<button class="sk sk-claude" data-sk="folder" onclick="fpOpenFolder()" style="color:var(--blue2)">📂 文件夹</button>
|
|
534
545
|
<button class="sk sk-claude" data-sk="model" onclick="openModelSheet()">模型</button>
|
|
535
546
|
<button class="sk sk-claude" id="btn-plan" data-sk="plan" onclick="togglePlanMode()">计划</button>
|
|
536
547
|
<button class="sk sk-claude" data-sk="compact" onclick="doSlashCmd('/compact')">压缩</button>
|
|
@@ -585,8 +596,13 @@
|
|
|
585
596
|
<div id="settings-backdrop" onclick="closeSettings()"></div>
|
|
586
597
|
<div id="settings-panel">
|
|
587
598
|
<div class="panel-header"><span>设置</span><button class="panel-close" onclick="closeSettings()">✕</button></div>
|
|
588
|
-
<div
|
|
589
|
-
<
|
|
599
|
+
<div id="settings-tabs">
|
|
600
|
+
<button class="stab active" data-tab="look">外观</button>
|
|
601
|
+
<button class="stab" data-tab="chat">聊天</button>
|
|
602
|
+
<button class="stab" data-tab="bar">快捷栏</button>
|
|
603
|
+
<button class="stab" data-tab="more">更多</button>
|
|
604
|
+
</div>
|
|
605
|
+
<div class="setting-group" data-stab="look">
|
|
590
606
|
<div style="font-size:0.8rem;color:var(--text2);margin:0.1rem 0 0.35rem">主题</div>
|
|
591
607
|
<div id="seg-theme" class="seg-row">
|
|
592
608
|
<button class="seg" data-theme="system">跟随系统</button>
|
|
@@ -601,14 +617,14 @@
|
|
|
601
617
|
<button class="seg" data-font="large">大</button>
|
|
602
618
|
</div>
|
|
603
619
|
</div>
|
|
604
|
-
<div class="setting-group">
|
|
620
|
+
<div class="setting-group" data-stab="chat" style="display:none">
|
|
605
621
|
<h4>显示</h4>
|
|
606
622
|
<label class="setting-toggle"><span>解析终端输出</span><input type="checkbox" id="set-parse" checked></label>
|
|
607
623
|
<label class="setting-toggle"><span>显示思考过程</span><input type="checkbox" id="set-thinking" checked></label>
|
|
608
624
|
<label class="setting-toggle"><span>工具调用默认折叠</span><input type="checkbox" id="set-collapse" checked></label>
|
|
609
625
|
<label class="setting-toggle"><span>思考过程默认折叠</span><input type="checkbox" id="set-thinkcollapse" checked></label>
|
|
610
626
|
</div>
|
|
611
|
-
<div class="setting-group">
|
|
627
|
+
<div class="setting-group" data-stab="chat" style="display:none">
|
|
612
628
|
<h4>输入</h4>
|
|
613
629
|
<div style="font-size:0.8rem;color:var(--text2);margin:0.1rem 0 0.35rem">回车键</div>
|
|
614
630
|
<div id="seg-enter" class="seg-row">
|
|
@@ -620,18 +636,17 @@
|
|
|
620
636
|
自动:电脑回车发送 / Shift+回车换行;手机回车换行、用按钮发送。<br>发送:回车总是发送(换行用 Shift+回车)。换行:回车总是换行(发送用 Ctrl/⌘+回车 或按钮)。
|
|
621
637
|
</div>
|
|
622
638
|
</div>
|
|
623
|
-
<div class="setting-group">
|
|
624
|
-
<h4>快捷栏</h4>
|
|
639
|
+
<div class="setting-group" data-stab="bar" style="display:none">
|
|
625
640
|
<div id="seg-skmode" class="seg-row">
|
|
626
|
-
<button class="seg" data-skmode="normal"
|
|
627
|
-
<button class="seg" data-skmode="expert"
|
|
641
|
+
<button class="seg" data-skmode="normal">普通模式</button>
|
|
642
|
+
<button class="seg" data-skmode="expert">专家模式</button>
|
|
628
643
|
</div>
|
|
629
644
|
<div style="font-size:0.72rem;color:var(--muted);margin-top:0.35rem;line-height:1.5">
|
|
630
|
-
专家 =
|
|
645
|
+
专家 = 显示全部快捷按钮。普通 = 只显示下面勾选的,给简单用户减负。两种模式下都可以再单独勾选。
|
|
631
646
|
</div>
|
|
632
647
|
<div id="sk-visible-list" style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:0.15rem 0.6rem;margin-top:0.5rem"></div>
|
|
633
648
|
</div>
|
|
634
|
-
<div class="setting-group">
|
|
649
|
+
<div class="setting-group" data-stab="more" style="display:none">
|
|
635
650
|
<h4>语音识别 (ASR)</h4>
|
|
636
651
|
<div style="font-size:0.72rem;color:var(--muted);margin-bottom:0.35rem">SenseVoice 或兼容服务的地址,留空表示禁用语音</div>
|
|
637
652
|
<div style="display:flex;gap:0.4rem">
|
|
@@ -640,7 +655,7 @@
|
|
|
640
655
|
</div>
|
|
641
656
|
<div id="set-asr-status" style="font-size:0.72rem;min-height:1.2em;margin-top:0.25rem;color:var(--muted)"></div>
|
|
642
657
|
</div>
|
|
643
|
-
<div class="setting-group">
|
|
658
|
+
<div class="setting-group" data-stab="more" style="display:none">
|
|
644
659
|
<h4>服务管理</h4>
|
|
645
660
|
<button onclick="restartMyhi()" style="width:100%;padding:0.6rem;background:var(--red2);color:#fff;border:none;border-radius:8px;cursor:pointer;font-size:0.85rem;font-weight:600;margin-top:0.1rem">重启 myhi</button>
|
|
646
661
|
</div>
|
|
@@ -1169,8 +1184,8 @@
|
|
|
1169
1184
|
|
|
1170
1185
|
// 设置
|
|
1171
1186
|
// 快捷栏:skVisible 逐按钮勾选(唯一显隐依据,null=默认全显);skMode 仅记录最接近的预设(高亮用)
|
|
1172
|
-
const SK_LABELS = { draft:'📥 草稿', model:'模型', plan:'计划', compact:'压缩', resume:'恢复', clear:'清除', secrets:'🔑 密钥', guard:'🛡 护栏', followup:'🔄 跟进', git:'提交', memory:'记忆', skills:'技能', cost:'费用' };
|
|
1173
|
-
const SK_NORMAL_PRESET = ['draft', 'plan', 'clear', 'guard', 'memory', 'skills'];
|
|
1187
|
+
const SK_LABELS = { draft:'📥 草稿', folder:'📂 文件夹', model:'模型', plan:'计划', compact:'压缩', resume:'恢复', clear:'清除', secrets:'🔑 密钥', guard:'🛡 护栏', followup:'🔄 跟进', git:'提交', memory:'记忆', skills:'技能', cost:'费用' };
|
|
1188
|
+
const SK_NORMAL_PRESET = ['draft', 'folder', 'plan', 'clear', 'guard', 'memory', 'skills'];
|
|
1174
1189
|
const DEFAULT_SETTINGS = { parseOutput: true, showThinking: true, collapseTools: true, thinkCollapsed: true, enterMode: 'auto', skMode: null, skVisible: null };
|
|
1175
1190
|
let settings = loadSettings();
|
|
1176
1191
|
|
|
@@ -2369,6 +2384,27 @@
|
|
|
2369
2384
|
renderMsgNav();
|
|
2370
2385
|
p.style.display = 'block';
|
|
2371
2386
|
}
|
|
2387
|
+
// 桌面端:鼠标移进聊天区/把手/清单 → 显示把手;离开 → 延迟 350ms 收起
|
|
2388
|
+
// (清单开着时不收把手,方便看着清单滚动定位)。触屏设备无常显(见 CSS)。
|
|
2389
|
+
let _navHideTimer = null;
|
|
2390
|
+
function navShow() { clearTimeout(_navHideTimer); document.getElementById('msg-nav-btn').classList.add('hovered'); }
|
|
2391
|
+
function navHideLater() {
|
|
2392
|
+
clearTimeout(_navHideTimer);
|
|
2393
|
+
_navHideTimer = setTimeout(() => {
|
|
2394
|
+
if (document.getElementById('msg-nav-panel').style.display === 'block') return;
|
|
2395
|
+
document.getElementById('msg-nav-btn').classList.remove('hovered');
|
|
2396
|
+
}, 350);
|
|
2397
|
+
}
|
|
2398
|
+
['mouseenter'].forEach(ev => {
|
|
2399
|
+
chatArea.addEventListener(ev, navShow);
|
|
2400
|
+
document.getElementById('msg-nav-btn').addEventListener(ev, navShow);
|
|
2401
|
+
document.getElementById('msg-nav-panel').addEventListener(ev, navShow);
|
|
2402
|
+
});
|
|
2403
|
+
['mouseleave'].forEach(ev => {
|
|
2404
|
+
chatArea.addEventListener(ev, navHideLater);
|
|
2405
|
+
document.getElementById('msg-nav-btn').addEventListener(ev, navHideLater);
|
|
2406
|
+
document.getElementById('msg-nav-panel').addEventListener(ev, navHideLater);
|
|
2407
|
+
});
|
|
2372
2408
|
function renderMsgNav() {
|
|
2373
2409
|
const list = document.getElementById('msg-nav-panel');
|
|
2374
2410
|
const items = [...chatArea.querySelectorAll('.msg-input .bubble')]
|
|
@@ -3250,7 +3286,16 @@
|
|
|
3250
3286
|
}
|
|
3251
3287
|
|
|
3252
3288
|
// ── 设置面板 ──────────────────────────────────
|
|
3253
|
-
window.openSettings = function() { document.getElementById('settings-backdrop').classList.add('open'); document.getElementById('settings-panel').classList.add('open'); syncSettingsUI(); };
|
|
3289
|
+
window.openSettings = function() { document.getElementById('settings-backdrop').classList.add('open'); document.getElementById('settings-panel').classList.add('open'); syncSettingsUI(); applySettingsTab(localStorage.getItem('myhi_settings_tab') || 'look'); };
|
|
3290
|
+
// 设置抽屉分类页签(1.3.174:一屏只看一类,不再长条堆叠)
|
|
3291
|
+
function applySettingsTab(tab) {
|
|
3292
|
+
document.querySelectorAll('#settings-tabs .stab').forEach(b => b.classList.toggle('active', b.dataset.tab === tab));
|
|
3293
|
+
document.querySelectorAll('#settings-panel [data-stab]').forEach(g => { g.style.display = g.dataset.stab === tab ? '' : 'none'; });
|
|
3294
|
+
}
|
|
3295
|
+
document.querySelectorAll('#settings-tabs .stab').forEach(b => b.addEventListener('click', () => {
|
|
3296
|
+
localStorage.setItem('myhi_settings_tab', b.dataset.tab);
|
|
3297
|
+
applySettingsTab(b.dataset.tab);
|
|
3298
|
+
}));
|
|
3254
3299
|
window.closeSettings = function() { document.getElementById('settings-backdrop').classList.remove('open'); document.getElementById('settings-panel').classList.remove('open'); };
|
|
3255
3300
|
|
|
3256
3301
|
// ── 文件管理 ──────────────────────────────────
|
package/package.json
CHANGED