@wendongfly/zihi 1.0.0 → 1.1.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.
- package/dist/admin.html +3 -3
- package/dist/chat.html +4 -11
- package/dist/files.html +4 -12
- package/dist/index.html +10 -15
- package/dist/index.js +5 -5
- package/dist/lib/xterm/README.md +27 -14
- package/dist/lib/xterm/css/xterm.css +81 -5
- package/dist/lib/xterm/lib/xterm.js +1 -1
- package/dist/lib/xterm/lib/xterm.js.map +1 -1
- package/dist/lib/xterm/lib/xterm.mjs +53 -0
- package/dist/lib/xterm/lib/xterm.mjs.map +7 -0
- package/dist/lib/xterm/package.json +49 -38
- package/dist/lib/xterm/src/browser/AccessibilityManager.ts +185 -50
- package/dist/lib/xterm/src/browser/CoreBrowserTerminal.ts +1339 -0
- package/dist/lib/xterm/src/browser/Linkifier.ts +403 -0
- package/dist/lib/xterm/src/browser/LocalizableStrings.ts +15 -4
- package/dist/lib/xterm/src/browser/OscLinkProvider.ts +2 -1
- package/dist/lib/xterm/src/browser/RenderDebouncer.ts +6 -5
- package/dist/lib/xterm/src/browser/TimeBasedDebouncer.ts +2 -2
- package/dist/lib/xterm/src/browser/Types.ts +226 -0
- package/dist/lib/xterm/src/browser/Viewport.ts +148 -357
- package/dist/lib/xterm/src/browser/decorations/BufferDecorationRenderer.ts +17 -12
- package/dist/lib/xterm/src/browser/decorations/OverviewRulerRenderer.ts +47 -52
- package/dist/lib/xterm/src/browser/input/CompositionHelper.ts +5 -3
- package/dist/lib/xterm/src/browser/input/MoveToCell.ts +3 -1
- package/dist/lib/xterm/src/browser/public/Terminal.ts +39 -24
- package/dist/lib/xterm/src/browser/renderer/dom/DomRenderer.ts +76 -40
- package/dist/lib/xterm/src/browser/renderer/dom/DomRendererRowFactory.ts +47 -23
- package/dist/lib/xterm/src/browser/renderer/dom/WidthCache.ts +19 -9
- package/dist/lib/xterm/src/browser/renderer/shared/Constants.ts +0 -8
- package/dist/lib/xterm/src/browser/renderer/shared/RendererUtils.ts +38 -1
- package/dist/lib/xterm/src/browser/renderer/shared/SelectionRenderModel.ts +6 -4
- package/dist/lib/xterm/src/browser/renderer/shared/Types.ts +84 -0
- package/dist/lib/xterm/src/browser/selection/Types.ts +15 -0
- package/dist/lib/xterm/src/browser/services/CharSizeService.ts +57 -32
- package/dist/lib/xterm/src/browser/services/CoreBrowserService.ts +108 -4
- package/dist/lib/xterm/src/browser/services/LinkProviderService.ts +28 -0
- package/dist/lib/xterm/src/browser/services/RenderService.ts +132 -40
- package/dist/lib/xterm/src/browser/services/SelectionService.ts +19 -9
- package/dist/lib/xterm/src/browser/services/Services.ts +36 -16
- package/dist/lib/xterm/src/browser/services/ThemeService.ts +19 -58
- package/dist/lib/xterm/src/browser/shared/Constants.ts +8 -0
- package/dist/lib/xterm/src/common/CircularList.ts +5 -5
- package/dist/lib/xterm/src/common/Color.ts +34 -14
- package/dist/lib/xterm/src/common/CoreTerminal.ts +40 -41
- package/dist/lib/xterm/src/common/InputHandler.ts +177 -125
- package/dist/lib/xterm/src/common/Platform.ts +2 -1
- package/dist/lib/xterm/src/common/SortedList.ts +86 -10
- package/dist/lib/xterm/src/common/TaskQueue.ts +7 -7
- package/dist/lib/xterm/src/common/Types.ts +552 -0
- package/dist/lib/xterm/src/common/buffer/AttributeData.ts +15 -0
- package/dist/lib/xterm/src/common/buffer/Buffer.ts +15 -7
- package/dist/lib/xterm/src/common/buffer/BufferLine.ts +53 -22
- package/dist/lib/xterm/src/common/buffer/BufferRange.ts +1 -1
- package/dist/lib/xterm/src/common/buffer/BufferReflow.ts +9 -6
- package/dist/lib/xterm/src/common/buffer/BufferSet.ts +5 -5
- package/dist/lib/xterm/src/common/buffer/Constants.ts +10 -2
- package/dist/lib/xterm/src/common/buffer/Marker.ts +4 -4
- package/dist/lib/xterm/src/common/buffer/Types.ts +52 -0
- package/dist/lib/xterm/src/common/input/Keyboard.ts +2 -27
- package/dist/lib/xterm/src/common/input/UnicodeV6.ts +18 -5
- package/dist/lib/xterm/src/common/input/WriteBuffer.ts +9 -8
- package/dist/lib/xterm/src/common/parser/EscapeSequenceParser.ts +13 -13
- package/dist/lib/xterm/src/common/parser/Types.ts +275 -0
- package/dist/lib/xterm/src/common/public/AddonManager.ts +1 -1
- package/dist/lib/xterm/src/common/public/BufferApiView.ts +1 -1
- package/dist/lib/xterm/src/common/public/BufferLineApiView.ts +1 -1
- package/dist/lib/xterm/src/common/public/BufferNamespaceApi.ts +4 -4
- package/dist/lib/xterm/src/common/public/ParserApi.ts +1 -1
- package/dist/lib/xterm/src/common/public/UnicodeApi.ts +1 -1
- package/dist/lib/xterm/src/common/services/BufferService.ts +14 -11
- package/dist/lib/xterm/src/common/services/CoreMouseService.ts +53 -6
- package/dist/lib/xterm/src/common/services/CoreService.ts +13 -8
- package/dist/lib/xterm/src/common/services/DecorationService.ts +11 -11
- package/dist/lib/xterm/src/common/services/InstantiationService.ts +1 -1
- package/dist/lib/xterm/src/common/services/LogService.ts +2 -2
- package/dist/lib/xterm/src/common/services/OptionsService.ts +16 -5
- package/dist/lib/xterm/src/common/services/ServiceRegistry.ts +1 -1
- package/dist/lib/xterm/src/common/services/Services.ts +73 -19
- package/dist/lib/xterm/src/common/services/UnicodeService.ts +30 -5
- package/dist/lib/xterm/src/vs/base/browser/browser.ts +141 -0
- package/dist/lib/xterm/src/vs/base/browser/canIUse.ts +49 -0
- package/dist/lib/xterm/src/vs/base/browser/dom.ts +2369 -0
- package/dist/lib/xterm/src/vs/base/browser/fastDomNode.ts +316 -0
- package/dist/lib/xterm/src/vs/base/browser/globalPointerMoveMonitor.ts +112 -0
- package/dist/lib/xterm/src/vs/base/browser/iframe.ts +135 -0
- package/dist/lib/xterm/src/vs/base/browser/keyboardEvent.ts +213 -0
- package/dist/lib/xterm/src/vs/base/browser/mouseEvent.ts +229 -0
- package/dist/lib/xterm/src/vs/base/browser/touch.ts +372 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/abstractScrollbar.ts +303 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/horizontalScrollbar.ts +114 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollableElement.ts +720 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollableElementOptions.ts +165 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollbarArrow.ts +114 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollbarState.ts +243 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.ts +118 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/verticalScrollbar.ts +116 -0
- package/dist/lib/xterm/src/vs/base/browser/ui/widget.ts +57 -0
- package/dist/lib/xterm/src/vs/base/browser/window.ts +14 -0
- package/dist/lib/xterm/src/vs/base/common/arrays.ts +887 -0
- package/dist/lib/xterm/src/vs/base/common/arraysFind.ts +202 -0
- package/dist/lib/xterm/src/vs/base/common/assert.ts +71 -0
- package/dist/lib/xterm/src/vs/base/common/async.ts +1992 -0
- package/dist/lib/xterm/src/vs/base/common/cancellation.ts +148 -0
- package/dist/lib/xterm/src/vs/base/common/charCode.ts +450 -0
- package/dist/lib/xterm/src/vs/base/common/collections.ts +140 -0
- package/dist/lib/xterm/src/vs/base/common/decorators.ts +130 -0
- package/dist/lib/xterm/src/vs/base/common/equals.ts +146 -0
- package/dist/lib/xterm/src/vs/base/common/errors.ts +303 -0
- package/dist/lib/xterm/src/vs/base/common/event.ts +1778 -0
- package/dist/lib/xterm/src/vs/base/common/functional.ts +32 -0
- package/dist/lib/xterm/src/vs/base/common/hash.ts +316 -0
- package/dist/lib/xterm/src/vs/base/common/iterator.ts +159 -0
- package/dist/lib/xterm/src/vs/base/common/keyCodes.ts +526 -0
- package/dist/lib/xterm/src/vs/base/common/keybindings.ts +284 -0
- package/dist/lib/xterm/src/vs/base/common/lazy.ts +47 -0
- package/dist/lib/xterm/src/vs/base/common/lifecycle.ts +801 -0
- package/dist/lib/xterm/src/vs/base/common/linkedList.ts +142 -0
- package/dist/lib/xterm/src/vs/base/common/map.ts +202 -0
- package/dist/lib/xterm/src/vs/base/common/numbers.ts +98 -0
- package/dist/lib/xterm/src/vs/base/common/observable.ts +76 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/api.ts +31 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/autorun.ts +281 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/base.ts +489 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/debugName.ts +145 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/derived.ts +428 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/lazyObservableValue.ts +146 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/logging.ts +328 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/promise.ts +209 -0
- package/dist/lib/xterm/src/vs/base/common/observableInternal/utils.ts +610 -0
- package/dist/lib/xterm/src/vs/base/common/platform.ts +281 -0
- package/dist/lib/xterm/src/vs/base/common/scrollable.ts +522 -0
- package/dist/lib/xterm/src/vs/base/common/sequence.ts +34 -0
- package/dist/lib/xterm/src/vs/base/common/stopwatch.ts +43 -0
- package/dist/lib/xterm/src/vs/base/common/strings.ts +557 -0
- package/dist/lib/xterm/src/vs/base/common/symbols.ts +9 -0
- package/dist/lib/xterm/src/vs/base/common/uint.ts +59 -0
- package/dist/lib/xterm/src/vs/patches/nls.ts +90 -0
- package/dist/lib/xterm/src/vs/typings/base-common.d.ts +20 -0
- package/dist/lib/xterm/src/vs/typings/require.d.ts +42 -0
- package/dist/lib/xterm/src/vs/typings/vscode-globals-nls.d.ts +36 -0
- package/dist/lib/xterm/src/vs/typings/vscode-globals-product.d.ts +33 -0
- package/dist/lib/xterm/typings/xterm.d.ts +156 -43
- package/dist/lib/xterm-fit/README.md +5 -5
- package/dist/lib/xterm-fit/lib/addon-fit.js +2 -0
- package/dist/lib/xterm-fit/lib/addon-fit.js.map +1 -0
- package/dist/lib/xterm-fit/lib/addon-fit.mjs +18 -0
- package/dist/lib/xterm-fit/lib/addon-fit.mjs.map +7 -0
- package/dist/lib/xterm-fit/package.json +9 -9
- package/dist/lib/xterm-fit/src/FitAddon.ts +7 -4
- package/dist/lib/xterm-fit/typings/addon-fit.d.ts +55 -0
- package/dist/lib/xterm-links/README.md +5 -5
- package/dist/lib/xterm-links/lib/addon-web-links.js +2 -0
- package/dist/lib/xterm-links/lib/addon-web-links.js.map +1 -0
- package/dist/lib/xterm-links/lib/addon-web-links.mjs +18 -0
- package/dist/lib/xterm-links/lib/addon-web-links.mjs.map +7 -0
- package/dist/lib/xterm-links/package.json +9 -9
- package/dist/lib/xterm-links/src/WebLinkProvider.ts +16 -15
- package/dist/lib/xterm-links/src/WebLinksAddon.ts +4 -3
- package/dist/lib/xterm-links/typings/addon-web-links.d.ts +57 -0
- package/dist/login.html +1 -1
- package/dist/package.json +1 -1
- package/dist/sw.js +2 -2
- package/package.json +5 -6
package/dist/admin.html
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
<head>
|
|
4
4
|
<meta charset="UTF-8">
|
|
5
5
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
-
<title>
|
|
6
|
+
<title>ZiHi 管理</title>
|
|
7
7
|
<style>
|
|
8
8
|
* { margin: 0; padding: 0; box-sizing: border-box; }
|
|
9
9
|
body { font-family: -apple-system, system-ui, sans-serif; background: #0d1117; color: #e6edf3; min-height: 100vh; }
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
|
|
52
52
|
<div class="login-wrap" id="pg-login">
|
|
53
53
|
<div class="login-box">
|
|
54
|
-
<h2>
|
|
54
|
+
<h2>ZiHi 管理</h2>
|
|
55
55
|
<div class="err" id="login-err"></div>
|
|
56
56
|
<input type="password" id="admin-pwd" placeholder="输入管理密码" autofocus>
|
|
57
57
|
<button onclick="doLogin()">登录</button>
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
|
|
61
61
|
<div class="wrap" id="pg-admin" style="display:none">
|
|
62
62
|
<div class="header">
|
|
63
|
-
<h1>
|
|
63
|
+
<h1>ZiHi 管理</h1>
|
|
64
64
|
<button class="logout" onclick="doLogout()">退出</button>
|
|
65
65
|
</div>
|
|
66
66
|
|
package/dist/chat.html
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
|
9
9
|
<link rel="manifest" href="/manifest.json">
|
|
10
10
|
<link rel="apple-touch-icon" href="/icon.png">
|
|
11
|
-
<title>
|
|
11
|
+
<title>ZiHi 会话</title>
|
|
12
12
|
<script src="/socket.io/socket.io.js"></script>
|
|
13
13
|
<style>
|
|
14
14
|
* { box-sizing: border-box; margin: 0; padding: 0; }
|
|
@@ -244,7 +244,6 @@
|
|
|
244
244
|
<div id="session-cwd"></div>
|
|
245
245
|
</div>
|
|
246
246
|
<button class="top-btn" onclick="openFiles()" title="文件" style="font-size:0.7rem;color:var(--muted)">文件</button>
|
|
247
|
-
<button class="top-btn" id="sync-btn" onclick="openSync()" title="同步" style="display:none;font-size:0.7rem;color:var(--muted)">同步</button>
|
|
248
247
|
<button class="top-btn" onclick="showUsage()" title="用量" style="font-size:0.7rem;color:var(--muted)">用量</button>
|
|
249
248
|
<button class="top-btn" onclick="openSettings()" title="设置">
|
|
250
249
|
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"><circle cx="12" cy="12" r="3"/><path d="M19.4 15a1.65 1.65 0 00.33 1.82l.06.06a2 2 0 01-2.83 2.83l-.06-.06a1.65 1.65 0 00-1.82-.33 1.65 1.65 0 00-1 1.51V21a2 2 0 01-4 0v-.09A1.65 1.65 0 009 19.4a1.65 1.65 0 00-1.82.33l-.06.06a2 2 0 01-2.83-2.83l.06-.06A1.65 1.65 0 004.68 15a1.65 1.65 0 00-1.51-1H3a2 2 0 010-4h.09A1.65 1.65 0 004.6 9a1.65 1.65 0 00-.33-1.82l-.06-.06a2 2 0 012.83-2.83l.06.06A1.65 1.65 0 009 4.68a1.65 1.65 0 001-1.51V3a2 2 0 014 0v.09a1.65 1.65 0 001 1.51 1.65 1.65 0 001.82-.33l.06-.06a2 2 0 012.83 2.83l-.06.06A1.65 1.65 0 0019.4 9a1.65 1.65 0 001.51 1H21a2 2 0 010 4h-.09a1.65 1.65 0 00-1.51 1z"/></svg>
|
|
@@ -293,7 +292,6 @@
|
|
|
293
292
|
|
|
294
293
|
<div id="shortcut-bar" style="display:none">
|
|
295
294
|
<div id="sk-claude-agent">
|
|
296
|
-
<button class="sk sk-claude" onclick="openModelSheet()">模型</button>
|
|
297
295
|
<button class="sk sk-claude" onclick="doSlashCmd('/plan')">计划</button>
|
|
298
296
|
<button class="sk sk-claude" onclick="doSlashCmd('/compact')">压缩</button>
|
|
299
297
|
<button class="sk sk-claude" onclick="openResumeSheet()">恢复</button>
|
|
@@ -439,7 +437,7 @@
|
|
|
439
437
|
} catch (e) {
|
|
440
438
|
// AnsiUp 加载失败时用简单的 fallback
|
|
441
439
|
console.error('[zihi] AnsiUp 加载失败:', e);
|
|
442
|
-
ansi = { ansi_to_html: (t) => t.replace(/</g, '<'), use_classes: false };
|
|
440
|
+
ansi = { ansi_to_html: (t) => t.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, '''), use_classes: false };
|
|
443
441
|
}
|
|
444
442
|
|
|
445
443
|
// ── Service Worker 注册 ──
|
|
@@ -1364,7 +1362,7 @@
|
|
|
1364
1362
|
overlay.classList.add('hidden');
|
|
1365
1363
|
// 请求通知权限(不阻塞)
|
|
1366
1364
|
try { requestNotifyPermission(); } catch {}
|
|
1367
|
-
document.title = session.title + ' —
|
|
1365
|
+
document.title = session.title + ' — ZiHi';
|
|
1368
1366
|
document.getElementById('session-title').textContent = session.title;
|
|
1369
1367
|
if (session.cwd) document.getElementById('session-cwd').textContent = session.cwd;
|
|
1370
1368
|
updateViewers(session.viewers);
|
|
@@ -1724,11 +1722,6 @@
|
|
|
1724
1722
|
function updateViewers(count) { document.getElementById('viewer-count').textContent = count > 1 ? `${count} 人在线` : ''; }
|
|
1725
1723
|
window.goBack = function() { window.location.href = '/'; };
|
|
1726
1724
|
window.openFiles = function() { window.open('/files?session=' + SESSION_ID, '_blank'); };
|
|
1727
|
-
window.openSync = function() { window.open('/sync?session=' + SESSION_ID, '_blank'); };
|
|
1728
|
-
// 仅桌面浏览器显示同步按钮
|
|
1729
|
-
if ('showDirectoryPicker' in window) {
|
|
1730
|
-
document.getElementById('sync-btn').style.display = '';
|
|
1731
|
-
}
|
|
1732
1725
|
function scrollToBottom() { requestAnimationFrame(() => { chatArea.scrollTop = chatArea.scrollHeight; }); }
|
|
1733
1726
|
function trimMessages() {
|
|
1734
1727
|
const msgs = chatArea.querySelectorAll('.msg');
|
|
@@ -1909,7 +1902,7 @@
|
|
|
1909
1902
|
socket.on('session-renamed', ({ sessionId, title }) => {
|
|
1910
1903
|
if (sessionId !== SESSION_ID) return;
|
|
1911
1904
|
document.getElementById('session-title').textContent = title;
|
|
1912
|
-
document.title = title + ' —
|
|
1905
|
+
document.title = title + ' — ZiHi';
|
|
1913
1906
|
addStatusMessage('会话已命名为: ' + title);
|
|
1914
1907
|
});
|
|
1915
1908
|
|
package/dist/files.html
CHANGED
|
@@ -6,8 +6,8 @@
|
|
|
6
6
|
<meta name="theme-color" content="#0d1117">
|
|
7
7
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
8
8
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
|
9
|
-
<meta name="apple-mobile-web-app-title" content="
|
|
10
|
-
<title>
|
|
9
|
+
<meta name="apple-mobile-web-app-title" content="ZiHi Files">
|
|
10
|
+
<title>ZiHi - Files</title>
|
|
11
11
|
<style>
|
|
12
12
|
:root {
|
|
13
13
|
--bg: #0d1117;
|
|
@@ -257,7 +257,6 @@
|
|
|
257
257
|
</div>
|
|
258
258
|
<div class="header-right">
|
|
259
259
|
<span id="user-name" style="font-size:0.8rem;color:var(--muted)"></span>
|
|
260
|
-
<a id="sync-btn" class="hdr-btn" style="display:none;text-decoration:none">同步</a>
|
|
261
260
|
<button class="hdr-btn" id="hidden-toggle" onclick="toggleHidden()">.*</button>
|
|
262
261
|
<button class="hdr-btn" onclick="doLogout()">退出</button>
|
|
263
262
|
</div>
|
|
@@ -341,13 +340,6 @@ const SESSION_ID = new URLSearchParams(location.search).get('session') || '';
|
|
|
341
340
|
|
|
342
341
|
// ── Init ──
|
|
343
342
|
(async function init() {
|
|
344
|
-
if ('showDirectoryPicker' in window) {
|
|
345
|
-
const syncBtn = document.getElementById('sync-btn');
|
|
346
|
-
if (syncBtn) {
|
|
347
|
-
syncBtn.style.display = '';
|
|
348
|
-
syncBtn.href = '/sync' + (SESSION_ID ? '?session=' + SESSION_ID : '');
|
|
349
|
-
}
|
|
350
|
-
}
|
|
351
343
|
try {
|
|
352
344
|
const me = await fetch('/api/me').then(r => r.json());
|
|
353
345
|
document.getElementById('user-name').textContent = me.name || '';
|
|
@@ -393,7 +385,7 @@ async function loadDir(path) {
|
|
|
393
385
|
const res = await api('/api/files/list?' + params);
|
|
394
386
|
if (!res) return;
|
|
395
387
|
const data = await res.json();
|
|
396
|
-
if (data.error) { list.innerHTML = `<div class="empty-state"><p>${data.error}</p></div>`; return; }
|
|
388
|
+
if (data.error) { list.innerHTML = `<div class="empty-state"><p>${esc(data.error)}</p></div>`; return; }
|
|
397
389
|
|
|
398
390
|
currentPath = data.current;
|
|
399
391
|
rootPath = data.root;
|
|
@@ -402,7 +394,7 @@ async function loadDir(path) {
|
|
|
402
394
|
renderFiles(data.entries);
|
|
403
395
|
document.getElementById('file-count').textContent = `${data.entries.length} 项`;
|
|
404
396
|
} catch (e) {
|
|
405
|
-
list.innerHTML = `<div class="empty-state"><p>加载失败: ${e.message}</p></div>`;
|
|
397
|
+
list.innerHTML = `<div class="empty-state"><p>加载失败: ${esc(e.message)}</p></div>`;
|
|
406
398
|
} finally {
|
|
407
399
|
loading.classList.remove('show');
|
|
408
400
|
}
|
package/dist/index.html
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
<meta name="theme-color" content="#0d1117">
|
|
7
7
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
8
8
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
|
9
|
-
<meta name="apple-mobile-web-app-title" content="
|
|
9
|
+
<meta name="apple-mobile-web-app-title" content="ZiHi">
|
|
10
10
|
<link rel="manifest" href="/manifest.json">
|
|
11
11
|
<link rel="apple-touch-icon" href="/icon.png">
|
|
12
|
-
<title>
|
|
12
|
+
<title>ZiHi</title>
|
|
13
13
|
<script src="/socket.io/socket.io.js"></script>
|
|
14
14
|
<style>
|
|
15
15
|
:root {
|
|
@@ -451,12 +451,9 @@
|
|
|
451
451
|
|
|
452
452
|
<div class="field">
|
|
453
453
|
<label>名称</label>
|
|
454
|
-
<input id="inp-title" type="text" placeholder="
|
|
455
|
-
</div>
|
|
456
|
-
<div class="field">
|
|
457
|
-
<label>启动命令 <span style="font-weight:400;text-transform:none">(可选)</span></label>
|
|
458
|
-
<input id="inp-cmd" type="text" placeholder="留空仅打开 shell" autocomplete="off" spellcheck="false" style="font-family:'SF Mono',Consolas,monospace;font-size:0.85rem">
|
|
454
|
+
<input id="inp-title" type="text" placeholder="请输入任务名称,方便后续查看" autocomplete="off" spellcheck="false">
|
|
459
455
|
</div>
|
|
456
|
+
<input id="inp-cmd" type="hidden">
|
|
460
457
|
<div class="field">
|
|
461
458
|
<label>工作目录 <span style="font-weight:400;text-transform:none">(可选)</span></label>
|
|
462
459
|
<div style="display:flex;gap:0.5rem">
|
|
@@ -466,7 +463,7 @@
|
|
|
466
463
|
<div id="recent-dirs" style="display:flex;flex-wrap:wrap;gap:0.35rem;margin-top:0.4rem"></div>
|
|
467
464
|
</div>
|
|
468
465
|
<button id="btn-create" onclick="createSession()">创建</button>
|
|
469
|
-
<button id="btn-import" onclick="openImportSheet()" style="width:100%;background:var(--bg);color:var(--accent);border:1.5px solid var(--accent);border-radius:10px;padding:0.7rem;font-size:0.85rem;font-weight:600;cursor:pointer;margin-top:0.5rem"
|
|
466
|
+
<button id="btn-import" onclick="openImportSheet()" style="width:100%;background:var(--bg);color:var(--accent);border:1.5px solid var(--accent);border-radius:10px;padding:0.7rem;font-size:0.85rem;font-weight:600;cursor:pointer;margin-top:0.5rem">导入历史任务</button>
|
|
470
467
|
</div>
|
|
471
468
|
|
|
472
469
|
<!-- Dir picker -->
|
|
@@ -500,7 +497,7 @@
|
|
|
500
497
|
<div id="import-backdrop" onclick="closeImportSheet()" style="position:absolute;inset:0;background:rgba(0,0,0,0.55)"></div>
|
|
501
498
|
<div id="import-box" style="position:relative;background:var(--surface);border-radius:20px 20px 0 0;width:100%;max-width:640px;padding:0 1.25rem;padding-bottom:max(1.5rem,env(safe-area-inset-bottom));max-height:70vh;display:flex;flex-direction:column;z-index:1">
|
|
502
499
|
<div class="sheet-handle"></div>
|
|
503
|
-
<div class="sheet-title"
|
|
500
|
+
<div class="sheet-title">导入历史任务</div>
|
|
504
501
|
<div id="import-list" style="flex:1;overflow-y:auto;padding:0.4rem 0;-webkit-overflow-scrolling:touch"></div>
|
|
505
502
|
<div style="padding:0.75rem 0;border-top:1px solid var(--border)">
|
|
506
503
|
<button class="dir-btn cancel" onclick="closeImportSheet()" style="width:100%">取消</button>
|
|
@@ -720,7 +717,7 @@
|
|
|
720
717
|
document.querySelectorAll('.chip').forEach((c, j) =>
|
|
721
718
|
c.classList.toggle('selected', j === i));
|
|
722
719
|
const p = PRESETS[i];
|
|
723
|
-
document.getElementById('inp-title').value =
|
|
720
|
+
document.getElementById('inp-title').value = '';
|
|
724
721
|
document.getElementById('inp-cmd').value = p.cmd || '';
|
|
725
722
|
}
|
|
726
723
|
|
|
@@ -744,7 +741,7 @@
|
|
|
744
741
|
});
|
|
745
742
|
|
|
746
743
|
function createSession() {
|
|
747
|
-
const title = document.getElementById('inp-title').value.trim() || '
|
|
744
|
+
const title = document.getElementById('inp-title').value.trim() || '新任务';
|
|
748
745
|
const initCmd = document.getElementById('inp-cmd').value.trim() || undefined;
|
|
749
746
|
const cwd = document.getElementById('inp-cwd').value.trim() || undefined;
|
|
750
747
|
if (cwd) recordDir(cwd);
|
|
@@ -910,7 +907,7 @@
|
|
|
910
907
|
.then(sessions => {
|
|
911
908
|
const el = document.getElementById('import-list');
|
|
912
909
|
if (!sessions.length) {
|
|
913
|
-
el.innerHTML = '<div style="padding:1rem;color:var(--muted);font-size:0.85rem"
|
|
910
|
+
el.innerHTML = '<div style="padding:1rem;color:var(--muted);font-size:0.85rem">未找到历史任务<br><span style="font-size:0.72rem">会话数据存储在 ~/.claude/projects/ 目录</span></div>';
|
|
914
911
|
return;
|
|
915
912
|
}
|
|
916
913
|
el.innerHTML = '';
|
|
@@ -941,11 +938,9 @@
|
|
|
941
938
|
|
|
942
939
|
function importSession(session) {
|
|
943
940
|
closeImportSheet();
|
|
944
|
-
const
|
|
945
|
-
const title = session.summary ? session.summary.slice(0, 30) : 'claude (导入)';
|
|
941
|
+
const title = session.summary ? session.summary.slice(0, 30) : '导入任务';
|
|
946
942
|
socket.emit('create-agent', {
|
|
947
943
|
title,
|
|
948
|
-
cwd,
|
|
949
944
|
resumeSessionId: session.sessionId,
|
|
950
945
|
}, (res) => {
|
|
951
946
|
if (res?.ok) openSession(res.session.id);
|