@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.
Files changed (164) hide show
  1. package/dist/admin.html +3 -3
  2. package/dist/chat.html +4 -11
  3. package/dist/files.html +4 -12
  4. package/dist/index.html +10 -15
  5. package/dist/index.js +5 -5
  6. package/dist/lib/xterm/README.md +27 -14
  7. package/dist/lib/xterm/css/xterm.css +81 -5
  8. package/dist/lib/xterm/lib/xterm.js +1 -1
  9. package/dist/lib/xterm/lib/xterm.js.map +1 -1
  10. package/dist/lib/xterm/lib/xterm.mjs +53 -0
  11. package/dist/lib/xterm/lib/xterm.mjs.map +7 -0
  12. package/dist/lib/xterm/package.json +49 -38
  13. package/dist/lib/xterm/src/browser/AccessibilityManager.ts +185 -50
  14. package/dist/lib/xterm/src/browser/CoreBrowserTerminal.ts +1339 -0
  15. package/dist/lib/xterm/src/browser/Linkifier.ts +403 -0
  16. package/dist/lib/xterm/src/browser/LocalizableStrings.ts +15 -4
  17. package/dist/lib/xterm/src/browser/OscLinkProvider.ts +2 -1
  18. package/dist/lib/xterm/src/browser/RenderDebouncer.ts +6 -5
  19. package/dist/lib/xterm/src/browser/TimeBasedDebouncer.ts +2 -2
  20. package/dist/lib/xterm/src/browser/Types.ts +226 -0
  21. package/dist/lib/xterm/src/browser/Viewport.ts +148 -357
  22. package/dist/lib/xterm/src/browser/decorations/BufferDecorationRenderer.ts +17 -12
  23. package/dist/lib/xterm/src/browser/decorations/OverviewRulerRenderer.ts +47 -52
  24. package/dist/lib/xterm/src/browser/input/CompositionHelper.ts +5 -3
  25. package/dist/lib/xterm/src/browser/input/MoveToCell.ts +3 -1
  26. package/dist/lib/xterm/src/browser/public/Terminal.ts +39 -24
  27. package/dist/lib/xterm/src/browser/renderer/dom/DomRenderer.ts +76 -40
  28. package/dist/lib/xterm/src/browser/renderer/dom/DomRendererRowFactory.ts +47 -23
  29. package/dist/lib/xterm/src/browser/renderer/dom/WidthCache.ts +19 -9
  30. package/dist/lib/xterm/src/browser/renderer/shared/Constants.ts +0 -8
  31. package/dist/lib/xterm/src/browser/renderer/shared/RendererUtils.ts +38 -1
  32. package/dist/lib/xterm/src/browser/renderer/shared/SelectionRenderModel.ts +6 -4
  33. package/dist/lib/xterm/src/browser/renderer/shared/Types.ts +84 -0
  34. package/dist/lib/xterm/src/browser/selection/Types.ts +15 -0
  35. package/dist/lib/xterm/src/browser/services/CharSizeService.ts +57 -32
  36. package/dist/lib/xterm/src/browser/services/CoreBrowserService.ts +108 -4
  37. package/dist/lib/xterm/src/browser/services/LinkProviderService.ts +28 -0
  38. package/dist/lib/xterm/src/browser/services/RenderService.ts +132 -40
  39. package/dist/lib/xterm/src/browser/services/SelectionService.ts +19 -9
  40. package/dist/lib/xterm/src/browser/services/Services.ts +36 -16
  41. package/dist/lib/xterm/src/browser/services/ThemeService.ts +19 -58
  42. package/dist/lib/xterm/src/browser/shared/Constants.ts +8 -0
  43. package/dist/lib/xterm/src/common/CircularList.ts +5 -5
  44. package/dist/lib/xterm/src/common/Color.ts +34 -14
  45. package/dist/lib/xterm/src/common/CoreTerminal.ts +40 -41
  46. package/dist/lib/xterm/src/common/InputHandler.ts +177 -125
  47. package/dist/lib/xterm/src/common/Platform.ts +2 -1
  48. package/dist/lib/xterm/src/common/SortedList.ts +86 -10
  49. package/dist/lib/xterm/src/common/TaskQueue.ts +7 -7
  50. package/dist/lib/xterm/src/common/Types.ts +552 -0
  51. package/dist/lib/xterm/src/common/buffer/AttributeData.ts +15 -0
  52. package/dist/lib/xterm/src/common/buffer/Buffer.ts +15 -7
  53. package/dist/lib/xterm/src/common/buffer/BufferLine.ts +53 -22
  54. package/dist/lib/xterm/src/common/buffer/BufferRange.ts +1 -1
  55. package/dist/lib/xterm/src/common/buffer/BufferReflow.ts +9 -6
  56. package/dist/lib/xterm/src/common/buffer/BufferSet.ts +5 -5
  57. package/dist/lib/xterm/src/common/buffer/Constants.ts +10 -2
  58. package/dist/lib/xterm/src/common/buffer/Marker.ts +4 -4
  59. package/dist/lib/xterm/src/common/buffer/Types.ts +52 -0
  60. package/dist/lib/xterm/src/common/input/Keyboard.ts +2 -27
  61. package/dist/lib/xterm/src/common/input/UnicodeV6.ts +18 -5
  62. package/dist/lib/xterm/src/common/input/WriteBuffer.ts +9 -8
  63. package/dist/lib/xterm/src/common/parser/EscapeSequenceParser.ts +13 -13
  64. package/dist/lib/xterm/src/common/parser/Types.ts +275 -0
  65. package/dist/lib/xterm/src/common/public/AddonManager.ts +1 -1
  66. package/dist/lib/xterm/src/common/public/BufferApiView.ts +1 -1
  67. package/dist/lib/xterm/src/common/public/BufferLineApiView.ts +1 -1
  68. package/dist/lib/xterm/src/common/public/BufferNamespaceApi.ts +4 -4
  69. package/dist/lib/xterm/src/common/public/ParserApi.ts +1 -1
  70. package/dist/lib/xterm/src/common/public/UnicodeApi.ts +1 -1
  71. package/dist/lib/xterm/src/common/services/BufferService.ts +14 -11
  72. package/dist/lib/xterm/src/common/services/CoreMouseService.ts +53 -6
  73. package/dist/lib/xterm/src/common/services/CoreService.ts +13 -8
  74. package/dist/lib/xterm/src/common/services/DecorationService.ts +11 -11
  75. package/dist/lib/xterm/src/common/services/InstantiationService.ts +1 -1
  76. package/dist/lib/xterm/src/common/services/LogService.ts +2 -2
  77. package/dist/lib/xterm/src/common/services/OptionsService.ts +16 -5
  78. package/dist/lib/xterm/src/common/services/ServiceRegistry.ts +1 -1
  79. package/dist/lib/xterm/src/common/services/Services.ts +73 -19
  80. package/dist/lib/xterm/src/common/services/UnicodeService.ts +30 -5
  81. package/dist/lib/xterm/src/vs/base/browser/browser.ts +141 -0
  82. package/dist/lib/xterm/src/vs/base/browser/canIUse.ts +49 -0
  83. package/dist/lib/xterm/src/vs/base/browser/dom.ts +2369 -0
  84. package/dist/lib/xterm/src/vs/base/browser/fastDomNode.ts +316 -0
  85. package/dist/lib/xterm/src/vs/base/browser/globalPointerMoveMonitor.ts +112 -0
  86. package/dist/lib/xterm/src/vs/base/browser/iframe.ts +135 -0
  87. package/dist/lib/xterm/src/vs/base/browser/keyboardEvent.ts +213 -0
  88. package/dist/lib/xterm/src/vs/base/browser/mouseEvent.ts +229 -0
  89. package/dist/lib/xterm/src/vs/base/browser/touch.ts +372 -0
  90. package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/abstractScrollbar.ts +303 -0
  91. package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/horizontalScrollbar.ts +114 -0
  92. package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollableElement.ts +720 -0
  93. package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollableElementOptions.ts +165 -0
  94. package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollbarArrow.ts +114 -0
  95. package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollbarState.ts +243 -0
  96. package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/scrollbarVisibilityController.ts +118 -0
  97. package/dist/lib/xterm/src/vs/base/browser/ui/scrollbar/verticalScrollbar.ts +116 -0
  98. package/dist/lib/xterm/src/vs/base/browser/ui/widget.ts +57 -0
  99. package/dist/lib/xterm/src/vs/base/browser/window.ts +14 -0
  100. package/dist/lib/xterm/src/vs/base/common/arrays.ts +887 -0
  101. package/dist/lib/xterm/src/vs/base/common/arraysFind.ts +202 -0
  102. package/dist/lib/xterm/src/vs/base/common/assert.ts +71 -0
  103. package/dist/lib/xterm/src/vs/base/common/async.ts +1992 -0
  104. package/dist/lib/xterm/src/vs/base/common/cancellation.ts +148 -0
  105. package/dist/lib/xterm/src/vs/base/common/charCode.ts +450 -0
  106. package/dist/lib/xterm/src/vs/base/common/collections.ts +140 -0
  107. package/dist/lib/xterm/src/vs/base/common/decorators.ts +130 -0
  108. package/dist/lib/xterm/src/vs/base/common/equals.ts +146 -0
  109. package/dist/lib/xterm/src/vs/base/common/errors.ts +303 -0
  110. package/dist/lib/xterm/src/vs/base/common/event.ts +1778 -0
  111. package/dist/lib/xterm/src/vs/base/common/functional.ts +32 -0
  112. package/dist/lib/xterm/src/vs/base/common/hash.ts +316 -0
  113. package/dist/lib/xterm/src/vs/base/common/iterator.ts +159 -0
  114. package/dist/lib/xterm/src/vs/base/common/keyCodes.ts +526 -0
  115. package/dist/lib/xterm/src/vs/base/common/keybindings.ts +284 -0
  116. package/dist/lib/xterm/src/vs/base/common/lazy.ts +47 -0
  117. package/dist/lib/xterm/src/vs/base/common/lifecycle.ts +801 -0
  118. package/dist/lib/xterm/src/vs/base/common/linkedList.ts +142 -0
  119. package/dist/lib/xterm/src/vs/base/common/map.ts +202 -0
  120. package/dist/lib/xterm/src/vs/base/common/numbers.ts +98 -0
  121. package/dist/lib/xterm/src/vs/base/common/observable.ts +76 -0
  122. package/dist/lib/xterm/src/vs/base/common/observableInternal/api.ts +31 -0
  123. package/dist/lib/xterm/src/vs/base/common/observableInternal/autorun.ts +281 -0
  124. package/dist/lib/xterm/src/vs/base/common/observableInternal/base.ts +489 -0
  125. package/dist/lib/xterm/src/vs/base/common/observableInternal/debugName.ts +145 -0
  126. package/dist/lib/xterm/src/vs/base/common/observableInternal/derived.ts +428 -0
  127. package/dist/lib/xterm/src/vs/base/common/observableInternal/lazyObservableValue.ts +146 -0
  128. package/dist/lib/xterm/src/vs/base/common/observableInternal/logging.ts +328 -0
  129. package/dist/lib/xterm/src/vs/base/common/observableInternal/promise.ts +209 -0
  130. package/dist/lib/xterm/src/vs/base/common/observableInternal/utils.ts +610 -0
  131. package/dist/lib/xterm/src/vs/base/common/platform.ts +281 -0
  132. package/dist/lib/xterm/src/vs/base/common/scrollable.ts +522 -0
  133. package/dist/lib/xterm/src/vs/base/common/sequence.ts +34 -0
  134. package/dist/lib/xterm/src/vs/base/common/stopwatch.ts +43 -0
  135. package/dist/lib/xterm/src/vs/base/common/strings.ts +557 -0
  136. package/dist/lib/xterm/src/vs/base/common/symbols.ts +9 -0
  137. package/dist/lib/xterm/src/vs/base/common/uint.ts +59 -0
  138. package/dist/lib/xterm/src/vs/patches/nls.ts +90 -0
  139. package/dist/lib/xterm/src/vs/typings/base-common.d.ts +20 -0
  140. package/dist/lib/xterm/src/vs/typings/require.d.ts +42 -0
  141. package/dist/lib/xterm/src/vs/typings/vscode-globals-nls.d.ts +36 -0
  142. package/dist/lib/xterm/src/vs/typings/vscode-globals-product.d.ts +33 -0
  143. package/dist/lib/xterm/typings/xterm.d.ts +156 -43
  144. package/dist/lib/xterm-fit/README.md +5 -5
  145. package/dist/lib/xterm-fit/lib/addon-fit.js +2 -0
  146. package/dist/lib/xterm-fit/lib/addon-fit.js.map +1 -0
  147. package/dist/lib/xterm-fit/lib/addon-fit.mjs +18 -0
  148. package/dist/lib/xterm-fit/lib/addon-fit.mjs.map +7 -0
  149. package/dist/lib/xterm-fit/package.json +9 -9
  150. package/dist/lib/xterm-fit/src/FitAddon.ts +7 -4
  151. package/dist/lib/xterm-fit/typings/addon-fit.d.ts +55 -0
  152. package/dist/lib/xterm-links/README.md +5 -5
  153. package/dist/lib/xterm-links/lib/addon-web-links.js +2 -0
  154. package/dist/lib/xterm-links/lib/addon-web-links.js.map +1 -0
  155. package/dist/lib/xterm-links/lib/addon-web-links.mjs +18 -0
  156. package/dist/lib/xterm-links/lib/addon-web-links.mjs.map +7 -0
  157. package/dist/lib/xterm-links/package.json +9 -9
  158. package/dist/lib/xterm-links/src/WebLinkProvider.ts +16 -15
  159. package/dist/lib/xterm-links/src/WebLinksAddon.ts +4 -3
  160. package/dist/lib/xterm-links/typings/addon-web-links.d.ts +57 -0
  161. package/dist/login.html +1 -1
  162. package/dist/package.json +1 -1
  163. package/dist/sw.js +2 -2
  164. 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>weHi 管理</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>weHi 管理</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>weHi 管理</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>weHi 会话</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, '&lt;'), use_classes: false };
440
+ ansi = { ansi_to_html: (t) => t.replace(/&/g, '&amp;').replace(/</g, '&lt;').replace(/>/g, '&gt;').replace(/"/g, '&quot;').replace(/'/g, '&#39;'), 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 + ' — weHi';
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 + ' — weHi';
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="weHi Files">
10
- <title>weHi - Files</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="weHi">
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>weHi</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="自定义名称…" autocomplete="off" spellcheck="false">
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">导入已有 Claude 会话</button>
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">导入已有 Claude 会话</div>
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 = p.title;
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() || 'shell';
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">未找到本地 Claude 会话<br><span style="font-size:0.72rem">会话数据存储在 ~/.claude/projects/ 目录</span></div>';
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 cwd = session.projectPath || document.getElementById('inp-cwd').value.trim() || undefined;
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);