@lemoncat7/dsh-ssh 1.5.3 → 1.7.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.
Files changed (142) hide show
  1. package/ARCHITECTURE.md +10 -0
  2. package/README.md +22 -1
  3. package/docs/releases/1.6.0.md +12 -0
  4. package/docs/releases/1.7.0.md +11 -0
  5. package/lib/activity-panel.d.ts.map +1 -1
  6. package/lib/activity-panel.js +14 -8
  7. package/lib/activity-panel.js.map +1 -1
  8. package/lib/adaptive-workspace.d.ts.map +1 -1
  9. package/lib/adaptive-workspace.js +5 -2
  10. package/lib/adaptive-workspace.js.map +1 -1
  11. package/lib/api.d.ts.map +1 -1
  12. package/lib/api.js +24 -2
  13. package/lib/api.js.map +1 -1
  14. package/lib/client-api.d.ts +21 -6
  15. package/lib/client-api.d.ts.map +1 -1
  16. package/lib/client-api.js +21 -12
  17. package/lib/client-api.js.map +1 -1
  18. package/lib/client.d.ts.map +1 -1
  19. package/lib/client.js +360 -69
  20. package/lib/client.js.map +4 -4
  21. package/lib/commands-panel.d.ts.map +1 -1
  22. package/lib/commands-panel.js +11 -7
  23. package/lib/commands-panel.js.map +1 -1
  24. package/lib/docked-panel-compat.d.ts +1 -1
  25. package/lib/docked-panel-compat.d.ts.map +1 -1
  26. package/lib/docked-panel-compat.js +3 -2
  27. package/lib/docked-panel-compat.js.map +1 -1
  28. package/lib/file-entry-delete-dialog.d.ts.map +1 -1
  29. package/lib/file-entry-delete-dialog.js +5 -2
  30. package/lib/file-entry-delete-dialog.js.map +1 -1
  31. package/lib/file-transfer-workspace.d.ts.map +1 -1
  32. package/lib/file-transfer-workspace.js +48 -30
  33. package/lib/file-transfer-workspace.js.map +1 -1
  34. package/lib/ftp-profile-editor.d.ts.map +1 -1
  35. package/lib/ftp-profile-editor.js +13 -8
  36. package/lib/ftp-profile-editor.js.map +1 -1
  37. package/lib/html-file-preview.d.ts +8 -0
  38. package/lib/html-file-preview.d.ts.map +1 -0
  39. package/lib/html-file-preview.js +58 -0
  40. package/lib/html-file-preview.js.map +1 -0
  41. package/lib/i18n.d.ts +17 -0
  42. package/lib/i18n.d.ts.map +1 -0
  43. package/lib/i18n.js +36 -0
  44. package/lib/i18n.js.map +1 -0
  45. package/lib/local-markdown-file.d.ts +5 -0
  46. package/lib/local-markdown-file.d.ts.map +1 -0
  47. package/lib/local-markdown-file.js +63 -0
  48. package/lib/local-markdown-file.js.map +1 -0
  49. package/lib/local-workspace.d.ts +1 -0
  50. package/lib/local-workspace.d.ts.map +1 -1
  51. package/lib/local-workspace.js +3 -2
  52. package/lib/local-workspace.js.map +1 -1
  53. package/lib/locales/messages.d.ts +2702 -0
  54. package/lib/locales/messages.d.ts.map +1 -0
  55. package/lib/locales/messages.js +2683 -0
  56. package/lib/locales/messages.js.map +1 -0
  57. package/lib/markdown-file.d.ts +19 -0
  58. package/lib/markdown-file.d.ts.map +1 -0
  59. package/lib/markdown-file.js +52 -0
  60. package/lib/markdown-file.js.map +1 -0
  61. package/lib/markdown-preview-editor.d.ts +8 -0
  62. package/lib/markdown-preview-editor.d.ts.map +1 -0
  63. package/lib/markdown-preview-editor.js +62 -0
  64. package/lib/markdown-preview-editor.js.map +1 -0
  65. package/lib/native-directory-button.d.ts.map +1 -1
  66. package/lib/native-directory-button.js +6 -3
  67. package/lib/native-directory-button.js.map +1 -1
  68. package/lib/preview-refresh-control.d.ts +9 -0
  69. package/lib/preview-refresh-control.d.ts.map +1 -0
  70. package/lib/preview-refresh-control.js +9 -0
  71. package/lib/preview-refresh-control.js.map +1 -0
  72. package/lib/profile-editor.d.ts.map +1 -1
  73. package/lib/profile-editor.js +13 -8
  74. package/lib/profile-editor.js.map +1 -1
  75. package/lib/project-session-dialog.d.ts.map +1 -1
  76. package/lib/project-session-dialog.js +7 -4
  77. package/lib/project-session-dialog.js.map +1 -1
  78. package/lib/remote-path-input.d.ts.map +1 -1
  79. package/lib/remote-path-input.js +10 -7
  80. package/lib/remote-path-input.js.map +1 -1
  81. package/lib/remote-workspace-tree.d.ts.map +1 -1
  82. package/lib/remote-workspace-tree.js +16 -11
  83. package/lib/remote-workspace-tree.js.map +1 -1
  84. package/lib/resizable-split.d.ts.map +1 -1
  85. package/lib/resizable-split.js +4 -1
  86. package/lib/resizable-split.js.map +1 -1
  87. package/lib/sftp-client.d.ts +13 -2
  88. package/lib/sftp-client.d.ts.map +1 -1
  89. package/lib/sftp-client.js +101 -48
  90. package/lib/sftp-client.js.map +1 -1
  91. package/lib/sftp-markdown-file.d.ts +6 -0
  92. package/lib/sftp-markdown-file.d.ts.map +1 -0
  93. package/lib/sftp-markdown-file.js +72 -0
  94. package/lib/sftp-markdown-file.js.map +1 -0
  95. package/lib/sftp.d.ts +1 -0
  96. package/lib/sftp.d.ts.map +1 -1
  97. package/lib/sftp.js +3 -1
  98. package/lib/sftp.js.map +1 -1
  99. package/lib/ssh-locale-binding.d.ts +9 -0
  100. package/lib/ssh-locale-binding.d.ts.map +1 -0
  101. package/lib/ssh-locale-binding.js +29 -0
  102. package/lib/ssh-locale-binding.js.map +1 -0
  103. package/lib/terminal-bootstrap-echo.d.ts +15 -0
  104. package/lib/terminal-bootstrap-echo.d.ts.map +1 -0
  105. package/lib/terminal-bootstrap-echo.js +62 -0
  106. package/lib/terminal-bootstrap-echo.js.map +1 -0
  107. package/lib/terminal-directory.d.ts +3 -0
  108. package/lib/terminal-directory.d.ts.map +1 -0
  109. package/lib/terminal-directory.js +28 -0
  110. package/lib/terminal-directory.js.map +1 -0
  111. package/lib/terminal-session.d.ts +2 -1
  112. package/lib/terminal-session.d.ts.map +1 -1
  113. package/lib/terminal-session.js +22 -7
  114. package/lib/terminal-session.js.map +1 -1
  115. package/lib/terminal-shell-integration.d.ts +6 -0
  116. package/lib/terminal-shell-integration.d.ts.map +1 -0
  117. package/lib/terminal-shell-integration.js +53 -0
  118. package/lib/terminal-shell-integration.js.map +1 -0
  119. package/lib/terminal-workspace.d.ts +2 -1
  120. package/lib/terminal-workspace.d.ts.map +1 -1
  121. package/lib/terminal-workspace.js +10 -5
  122. package/lib/terminal-workspace.js.map +1 -1
  123. package/lib/terminal.d.ts +4 -0
  124. package/lib/terminal.d.ts.map +1 -1
  125. package/lib/terminal.js +31 -1
  126. package/lib/terminal.js.map +1 -1
  127. package/lib/ui-components.d.ts.map +1 -1
  128. package/lib/ui-components.js +14 -8
  129. package/lib/ui-components.js.map +1 -1
  130. package/lib/use-file-preview.d.ts +13 -0
  131. package/lib/use-file-preview.d.ts.map +1 -0
  132. package/lib/use-file-preview.js +101 -0
  133. package/lib/use-file-preview.js.map +1 -0
  134. package/lib/use-markdown-draft.d.ts +23 -0
  135. package/lib/use-markdown-draft.d.ts.map +1 -0
  136. package/lib/use-markdown-draft.js +115 -0
  137. package/lib/use-markdown-draft.js.map +1 -0
  138. package/lib/use-ssh-locale.d.ts +4 -0
  139. package/lib/use-ssh-locale.d.ts.map +1 -0
  140. package/lib/use-ssh-locale.js +7 -0
  141. package/lib/use-ssh-locale.js.map +1 -0
  142. package/package.json +10 -3
package/ARCHITECTURE.md CHANGED
@@ -28,10 +28,20 @@ This plugin is split into four boundaries. UI code never reaches SSH or file tra
28
28
 
29
29
  ### Browser features
30
30
 
31
+ - `src/locales/messages.ts` owns the UI-only Chinese/English catalog, with explicit namespaced keys and numbered interpolation parameters. Selected English copy is adapted from [knownasmobin's PR #2](https://github.com/lemoncat7/dsh-ssh/pull/2) (MIT); none of that PR's backend translations are included.
32
+ - `src/i18n.ts` owns pure formatting and the per-browser-module locale store. `src/ssh-locale-binding.ts` optionally consumes DSH's active locale and disposes subscriptions; absent/unsupported locale services fall back to Chinese without preventing plugin startup. `src/use-ssh-locale.ts` subscribes React components without replacing their keys or resource-owning effects. Locale-only changes never trigger terminal reconnection, preview reloading or writes to saved configuration.
33
+ - Translate presentation only: filesystem paths, protocol punctuation, state discriminants, group identities and user input never go through translation. Generated transfer-tab names keep their existing stored representation and are translated at render time. Backend errors and tool descriptions remain unchanged in this phase; a future error-code presentation layer must not infer codes from arbitrary error prose.
34
+ - `test/i18n.test.mjs` verifies keys, parameter parity and that the entire server import graph cannot reach translation modules. `scripts/verify-i18n.mjs` exercises live language switching with preserved forms, groups, tags, stored transfer tabs and connected terminals at mobile/desktop widths. The preview regression additionally verifies that language changes preserve editor identity, dirty drafts and scroll position.
35
+
31
36
  - `src/activity-panel.tsx` owns the session-scoped details panel and terminal observation lifecycle.
32
37
  - `src/profile-editor.tsx` owns connection editing, validation, jump chains, and deletion safeguards.
33
38
  - `src/remote-workspace-tree.tsx` owns host mounting, fixed directories, and remote-session creation.
34
39
  - `src/sftp-client.tsx` owns directory browsing, upload, preview, and download.
40
+ - `src/terminal-bootstrap-echo.ts` removes only exact per-connection tagged initialization echoes (including PTY/readline double echo). It stops on an explicit completion marker, flushes original bytes on mismatch/timeout/close, and caps pending data. It does not clear terminal output or filter execution errors; normal user input bypasses filtering after initialization.
41
+ - `src/terminal-shell-integration.ts` owns a bounded, read-only shell detection probe and session-only Bash/Zsh directory reporting hooks for browser terminals. It never edits remote startup files. `src/terminal-directory.ts` validates OSC directory metadata; `src/terminal-session.tsx` owns parser registration and cleanup. Terminal tabs retain independent directory state, and only the focused tab drives SFTP follow. Following is debounced, pauses during file/path interactions, and never persists navigation into host configuration.
42
+ - `src/use-file-preview.ts` owns preview request serialization, cancellation, metadata polling, stale-result protection and scroll restoration. Inline and expanded previews share one refresh state; content rendering is memoized independently of request status.
43
+ - `src/preview-refresh-control.tsx` renders the shared manual/automatic refresh control; `src/html-file-preview.tsx` isolates static HTML through script-disabled sandboxing and restrictive CSP, strips active/navigation elements, and owns HTML/source scroll state. No raw HTML is inserted into the host DOM.
44
+ - `src/markdown-preview-editor.tsx` owns rich Markdown editing; `src/use-markdown-draft.ts` owns drafts and save state. Readonly/refresh state never discards dirty content. `src/markdown-file.ts` handles validation, hashes and writer exclusion; local and SFTP adapters separately own boundary checks, staging, metadata preservation and atomic replacement. These routes are UI-only and do not register new agent tools.
35
45
  - `src/file-transfer-workspace.tsx` owns transfer task tabs, 2–4 file panes, cross-pane actions, job feedback, and file authorization UI.
36
46
  - `src/ftp-profile-editor.tsx` owns FTP/FTPS connection editing and validation.
37
47
  - `src/resizable-split.tsx` owns the terminal/SFTP split and persisted sizing.
package/README.md CHANGED
@@ -6,7 +6,23 @@
6
6
 
7
7
  ## 兼容性
8
8
 
9
- 版本 `1.5.3` 适配 DeepSeek Harness `0.1.5` 新版主面板与右侧标签 API,保留旧版回退;已在 `0.1.5-rc.1` 镜像验证。需要 Node.js `^22.19.0` 或 `>=24.0.0`。
9
+ 版本 `1.7.0` 适配 DeepSeek Harness `0.1.5` 新版主面板与右侧标签 API,保留旧版回退;已在 `0.1.5-rc.1` 镜像验证。需要 Node.js `^22.19.0` 或 `>=24.0.0`。详见 [1.7.0 更新说明](docs/releases/1.7.0.md)。
10
+
11
+ ## 1.7.0 界面语言
12
+
13
+ 新增中英双语界面:跟随 DSH 设置中的显示语言,切换时保留终端、表单、草稿与目录状态。旧宿主没有语言服务时仍显示中文。只翻译插件显示文案,不翻译用户内容、路径、协议、内部字段或持久化数据;服务端及上游返回的错误原文、Agent 工具描述暂保持原样。
14
+
15
+ ## 1.7.0 终端旁 SFTP
16
+
17
+ 目录上报初始化脚本的完整回显会自动隐藏,保留欢迎信息、执行错误及目录元数据;不清屏、不关闭终端回显。初始化异常时优先保留原始输出,避免误吞信息。
18
+
19
+ 窄栏按实际宽度隐藏时间、大小等次要列,文件行提供直接下载按钮。默认跟随当前选中的终端目录,可在 SFTP 标题栏关闭跟随;预览文件、编辑路径、上传或确认删除时暂停,操作结束后再跟随。
20
+
21
+ 新建的 Bash/Zsh/sh(含 dash/ash)终端会安装仅当前 shell 会话有效的目录上报钩子,不修改远端启动文件;探测有最多 5 秒超时,失败不阻止终端连接。已有终端需要重连;其他 shell 需要自行支持 OSC 7 或 OSC 1337 `CurrentDir`。跟随基于终端报告的目录,不猜测输入命令,也不持续执行远端轮询命令。路径栏的链条图标切换跟随,悬停可查看等待上报的说明;文件行下载与删除操作在悬停或键盘聚焦时显示,触屏保持可见。
22
+
23
+ ## 1.6.0 文件预览与 Markdown 编辑
24
+
25
+ 预览支持手动/自动刷新并保留滚动位置,新增隔离的静态 HTML 预览。Markdown 在手动模式下直接编辑正文,支持保存、快捷键、草稿恢复与版本冲突保护;自动模式只读,HTML 暂不支持编辑。详见 [更新说明](docs/releases/1.6.0.md)。
10
26
 
11
27
  ## 1.5.3 新版宿主适配与侧栏统一
12
28
 
@@ -96,6 +112,11 @@ dsh plugin --profile web add @lemoncat7/dsh-ssh@latest
96
112
  - SSH 活动右栏按会话分别保持展开状态、页签和所选主机;切换到未展开过的会话时不会自动打开,切回原会话会恢复
97
113
  - AI 调用 `ssh_terminal_open` 创建终端时,当前会话会自动展开 SSH 右栏并切换到新终端
98
114
  - SFTP 文件浏览、文本/图片/PDF 预览和流式下载;支持拖放上传、目录内移动、行末删除,并可从内嵌预览打开独立放大窗口
115
+ - 文件预览使用组合刷新控件:左侧立即刷新,右侧“手动 / 自动”切换模式,默认手动;自动模式每 5 秒检查大小和修改时间,有变化才读取。文本/Markdown/HTML 刷新保留滚动位置,网络失败保留旧内容,隐藏时暂停自动检查,关闭预览取消请求。仅凭大小和时间无法识别保留这两项元数据的修改,此时可手动刷新。PDF 仅手动刷新,浏览器内置阅读器可能重置页码。
116
+ - HTML/HTM 文件支持静态页面预览及源码切换。页面在禁用脚本、导航和表单能力的沙箱中显示,并通过 CSP 阻止外部资源请求;支持内联样式和 data 图片,不加载相邻 CSS/图片文件,不运行 JavaScript。大文件仍遵循 1 MB 预览限制,下载可获得原文件。
117
+ - Markdown 手动刷新模式下可直接在正文编辑,使用“保存”或 Ctrl/Cmd + S 写回原文件;自动刷新模式只读。HTML 不支持编辑。未保存时禁止刷新及切换自动模式,离开时提示;草稿保存在当前浏览器标签页(不可用时退回内存),可下载或确认放弃。
118
+ - 编辑限完整 UTF-8 `.md` 文件、最大 256 KB。前置元数据、嵌入 HTML、引用定义等暂不能安全往返转换的文档只读;普通标题、列表、表格等会以标准 Markdown 重新序列化,排版语法可能规范化。
119
+ - 保存核对内容哈希并在临时文件写完后复核版本,不一致时保留草稿且拒绝覆盖;本地限制在会话工作区,SFTP 需服务器支持 OpenSSH 原子替换扩展。保留文件权限及所有者;无法安全替换时失败,不采用先删除原文件的回退方案。外部进程不参与文件锁,最终复核与替换之间仍存在极短的并发窗口。
99
120
  - 独立「文件传输」工作区,支持 2~4 个 FTP、FTPS 或 SFTP 窗格与多个任务页
100
121
  - FTP、显式 FTPS、隐式 FTPS;FTP 控制连接与每条被动数据连接统一支持 HTTP CONNECT 和 SOCKS5 代理
101
122
  - FTP/FTPS/SFTP 跨协议流式互传,不把完整文件暂存到 DSH 磁盘;支持多文件、递归目录、冲突策略、进度、取消和失败状态
@@ -0,0 +1,12 @@
1
+ # 1.6.0
2
+
3
+ 正式版。适配 DSH 0.1.5 主面板与右侧标签 API,已在 0.1.5-rc.1 镜像部署验证。Node.js 要求 ^22.19.0 或 >=24.0.0。
4
+
5
+ - 文件预览整合刷新按钮与手动/自动模式;自动模式按需检查变化,隐藏时暂停,刷新保留滚动位置。
6
+ - HTML 支持隔离的静态预览及源码查看;不执行脚本或加载外部资源,暂不支持编辑。
7
+ - 支持本地会话目录及 SFTP Markdown 正文直接编辑,无需编辑模式按钮;手动保存或 Ctrl/Cmd+S,自动刷新时只读。
8
+ - 草稿在当前浏览器标签页内保留,保存失败及版本冲突不丢弃草稿;支持下载草稿、确认后放弃。
9
+ - 保存校验内容版本、目录权限及文件类型,使用临时文件与原子替换;SFTP 服务器不支持原子替换时安全拒绝,不删除原文件。
10
+ - 编辑仅支持不超过 256 KiB 的完整 UTF-8 .md;含不支持结构的文档保持只读。外部程序不参与插件写锁,最终校验到替换间仍有极短并发窗口。
11
+
12
+ 验证:127 项自动测试通过;浏览器回归覆盖刷新、HTML 隔离、Markdown 保存、冲突与草稿恢复,以及移动端路径输入。
@@ -0,0 +1,11 @@
1
+ # 1.7.0
2
+
3
+ 正式版。适配 DSH 0.1.5,已在 0.1.5-rc.1 镜像部署验证。需要 Node.js ^22.19.0 或 >=24.0.0。
4
+
5
+ - 中英双语界面跟随宿主语言,切换时保留终端连接、目录、表单及编辑草稿;旧宿主缺少语言服务时回退中文。业务字段、用户内容及服务端权限逻辑不受翻译影响。
6
+ - 终端旁 SFTP 按实际宽度收起次要列,修复窄栏横向空白;文件下载与删除按钮在悬停/聚焦时显示,触屏保持可见。
7
+ - 路径栏链条图标控制跟随当前选中终端的目录。预览、路径编辑、上传及删除确认期间暂停跟随,不覆盖正在操作的内容。
8
+ - 新终端支持 Bash/Zsh/sh(含 dash/ash)会话级目录上报,不修改远端启动文件;其他 shell 需支持 OSC 7 或 CurrentDir。已有终端需要重连。
9
+ - 隐藏精确匹配的初始化脚本回显,保留欢迎信息、错误和正常输出。初始化完成后停止过滤;超时、异常和关闭时保留未匹配内容。
10
+
11
+ 验证:141 项自动测试通过,含真实 Bash/dash PTY、分块回显、异常保留及目录上报测试;手机和桌面浏览器覆盖双语切换、窄栏、下载与目录跟随。
@@ -1 +1 @@
1
- {"version":3,"file":"activity-panel.d.ts","sourceRoot":"","sources":["../src/activity-panel.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAwBpE,KAAK,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;AAE3C,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,WAAW,CAAA;AAEnF,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC1E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAC/C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAA;IAC9D,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;IAC3C,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG;IAAE,UAAU,EAAE,kBAAkB,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CA0EtG"}
1
+ {"version":3,"file":"activity-panel.d.ts","sourceRoot":"","sources":["../src/activity-panel.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAwBpE,KAAK,YAAY,GAAG,YAAY,CAAC,SAAS,CAAC,CAAA;AAE3C,MAAM,MAAM,gBAAgB,GAAG,iBAAiB,GAAG,kBAAkB,GAAG,WAAW,CAAA;AAEnF,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAA;IAC1E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,KAAK,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC/B,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;IAClC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IAC/C,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,GAAG,SAAS,CAAA;IAC9D,SAAS,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAA;IAC3C,OAAO,IAAI,IAAI,CAAA;CAChB;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,YAAY,GAAG;IAAE,UAAU,EAAE,kBAAkB,CAAA;CAAE,GAAG,GAAG,CAAC,OAAO,CA2EtG"}
@@ -1,4 +1,6 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useSshLocale } from './use-ssh-locale.js';
3
+ import { t } from './i18n.js';
2
4
  import { useCallback, useEffect, useRef, useState } from 'react';
3
5
  import { IconCloseOutline16, IconCodeOutline16, IconFolderOpenOutline16, } from '@deepseek-ai/dsh-client-ui-primitives';
4
6
  import { FitAddon } from '@xterm/addon-fit';
@@ -8,6 +10,7 @@ import { TerminalTransport } from './terminal-transport.js';
8
10
  import { attachTerminalViewport, createSshTerminal } from './terminal-view.js';
9
11
  import { ServerGlyph, errorMessage, shortId } from './ui-components.js';
10
12
  export function SshActivityPanel(props) {
13
+ useSshLocale();
11
14
  const sessionId = String(props.sessionId);
12
15
  const [activity, setActivity] = useState();
13
16
  const [view, setView] = useState(() => props.controller.requestedView(sessionId) ?? 'local-directory');
@@ -64,18 +67,20 @@ export function SshActivityPanel(props) {
64
67
  document.removeEventListener('visibilitychange', resume);
65
68
  };
66
69
  }, [refresh, view]);
67
- return _jsxs("section", { className: "dsh-ssh-activity-panel", "aria-label": "SSH \u6D3B\u52A8", children: [_jsxs("header", { className: "dsh-ssh-activity-header", children: [_jsxs("div", { className: "dsh-ssh-activity-title", children: [_jsx("span", { className: "dsh-ssh-activity-mark", children: _jsx(ServerGlyph, {}) }), _jsxs("span", { children: [_jsx("strong", { children: "SSH \u6D3B\u52A8" }), _jsxs("small", { children: ["\u5F53\u524D\u4F1A\u8BDD \u00B7 ", shortId(sessionId)] })] })] }), _jsx("button", { type: "button", className: "dsh-ssh-icon-button", "aria-label": "\u5173\u95ED SSH \u6D3B\u52A8", onClick: () => props.controller.close(sessionId), children: _jsx(IconCloseOutline16, { size: 16 }) })] }), activity && _jsxs("nav", { className: "dsh-ssh-activity-tabs", "aria-label": "SSH \u6D3B\u52A8\u89C6\u56FE", children: [_jsxs("button", { type: "button", "data-ssh-interactive": "choice", className: view === 'local-directory' ? 'is-active' : '', "aria-pressed": view === 'local-directory', onClick: () => props.controller.open(sessionId, undefined, 'local-directory'), children: [_jsx(IconFolderOpenOutline16, { size: 16 }), "\u4F1A\u8BDD\u76EE\u5F55"] }), activity.profiles.length > 0 && _jsxs("button", { type: "button", "data-ssh-interactive": "choice", className: view === 'remote-directory' ? 'is-active' : '', "aria-pressed": view === 'remote-directory', onClick: () => props.controller.open(sessionId, undefined, 'remote-directory'), children: [_jsx(ServerGlyph, {}), "\u8FDC\u7AEF\u76EE\u5F55"] }), activity.injection?.permission === 'terminal' && _jsxs("button", { type: "button", "data-ssh-interactive": "choice", className: view === 'terminals' ? 'is-active' : '', "aria-pressed": view === 'terminals', onClick: () => props.controller.open(sessionId, undefined, 'terminals'), children: [_jsx(IconCodeOutline16, { size: 16 }), "\u7EC8\u7AEF", activity.terminals.length > 0 && _jsx("em", { children: activity.terminals.length })] })] }), _jsxs("div", { className: "dsh-ssh-activity-body", children: [activity === undefined ? _jsx("p", { className: "dsh-ssh-activity-state", role: "status", children: "\u6B63\u5728\u8BFB\u53D6 SSH \u4F1A\u8BDD\u2026" })
70
+ return _jsxs("section", { className: "dsh-ssh-activity-panel", "aria-label": t("activity-panel.sshActivity"), children: [_jsxs("header", { className: "dsh-ssh-activity-header", children: [_jsxs("div", { className: "dsh-ssh-activity-title", children: [_jsx("span", { className: "dsh-ssh-activity-mark", children: _jsx(ServerGlyph, {}) }), _jsxs("span", { children: [_jsx("strong", { children: t("activity-panel.sshActivity") }), _jsxs("small", { children: [t("activity-panel.currentSession"), " ", shortId(sessionId)] })] })] }), _jsx("button", { type: "button", className: "dsh-ssh-icon-button", "aria-label": t("activity-panel.closeSshActivity"), onClick: () => props.controller.close(sessionId), children: _jsx(IconCloseOutline16, { size: 16 }) })] }), activity && _jsxs("nav", { className: "dsh-ssh-activity-tabs", "aria-label": t("activity-panel.sshActivityView"), children: [_jsxs("button", { type: "button", "data-ssh-interactive": "choice", className: view === 'local-directory' ? 'is-active' : '', "aria-pressed": view === 'local-directory', onClick: () => props.controller.open(sessionId, undefined, 'local-directory'), children: [_jsx(IconFolderOpenOutline16, { size: 16 }), t("activity-panel.sessionDirectory")] }), activity.profiles.length > 0 && _jsxs("button", { type: "button", "data-ssh-interactive": "choice", className: view === 'remote-directory' ? 'is-active' : '', "aria-pressed": view === 'remote-directory', onClick: () => props.controller.open(sessionId, undefined, 'remote-directory'), children: [_jsx(ServerGlyph, {}), t("activity-panel.remoteDirectory")] }), activity.injection?.permission === 'terminal' && _jsxs("button", { type: "button", "data-ssh-interactive": "choice", className: view === 'terminals' ? 'is-active' : '', "aria-pressed": view === 'terminals', onClick: () => props.controller.open(sessionId, undefined, 'terminals'), children: [_jsx(IconCodeOutline16, { size: 16 }), t("activity-panel.terminal"), activity.terminals.length > 0 && _jsx("em", { children: activity.terminals.length })] })] }), _jsxs("div", { className: "dsh-ssh-activity-body", children: [activity === undefined ? _jsx("p", { className: "dsh-ssh-activity-state", role: "status", children: t("activity-panel.readingSshSessions") })
68
71
  : view === 'local-directory' ? _jsx(LocalWorkspaceBrowser, { sessionId: sessionId })
69
72
  : view === 'remote-directory' ? _jsx(RemoteDirectoryActivity, { sessionId: sessionId, profiles: activity.profiles, selectedProfileId: props.controller.selected(sessionId), onProfile: profileId => props.controller.open(sessionId, profileId, 'remote-directory'), onSaved: refresh })
70
73
  : _jsx(TerminalActivity, { sessionId: sessionId, terminals: activity.terminals, onClosed: refresh }), error && _jsx("p", { className: "dsh-ssh-inline-error", role: "alert", children: error })] })] });
71
74
  }
72
75
  function RemoteDirectoryActivity({ sessionId, profiles, selectedProfileId, onProfile, onSaved }) {
76
+ useSshLocale();
73
77
  const profile = profiles.find(item => item.id === selectedProfileId) ?? profiles[0];
74
78
  if (profile === undefined)
75
- return _jsxs("div", { className: "dsh-ssh-activity-empty", children: [_jsx(IconFolderOpenOutline16, { size: 22 }), _jsx("strong", { children: "\u6CA1\u6709\u53EF\u6D4F\u89C8\u7684\u8FDC\u7AEF" }), _jsx("p", { children: "\u8BF7\u5148\u5728 SSH \u9762\u677F\u4E2D\u5141\u8BB8\u5F53\u524D\u4F1A\u8BDD\u8BBF\u95EE\u4E00\u53F0\u4E3B\u673A\u3002" })] });
79
+ return _jsxs("div", { className: "dsh-ssh-activity-empty", children: [_jsx(IconFolderOpenOutline16, { size: 22 }), _jsx("strong", { children: t("activity-panel.noRemoteToBrowse") }), _jsx("p", { children: t("activity-panel.allowTheCurrentSessionToAccessAHostIn") })] });
76
80
  return _jsx(ActivitySftpBrowser, { sessionId: sessionId, profile: profile, profiles: profiles, onProfile: onProfile, onSaved: onSaved }, profile.id);
77
81
  }
78
82
  function TerminalActivity({ sessionId, terminals, onClosed }) {
83
+ useSshLocale();
79
84
  const preferred = [...terminals].reverse().find(item => item.status.kind === 'running') ?? terminals.at(-1);
80
85
  const [selectedId, setSelectedId] = useState(preferred?.terminalId);
81
86
  const [closingId, setClosingId] = useState();
@@ -87,7 +92,7 @@ function TerminalActivity({ sessionId, terminals, onClosed }) {
87
92
  }
88
93
  }, [preferred?.terminalId, selectedId, terminals]);
89
94
  if (terminal === undefined)
90
- return _jsxs("div", { className: "dsh-ssh-activity-empty", children: [_jsx(IconCodeOutline16, { size: 22 }), _jsx("strong", { children: "\u8FD8\u6CA1\u6709\u6253\u5F00\u7684\u7EC8\u7AEF" }), _jsx("p", { children: "AI \u6253\u5F00\u4EA4\u4E92\u7EC8\u7AEF\u540E\uFF0C\u4F1A\u76F4\u63A5\u663E\u793A\u5728\u8FD9\u91CC\u3002" })] });
95
+ return _jsxs("div", { className: "dsh-ssh-activity-empty", children: [_jsx(IconCodeOutline16, { size: 22 }), _jsx("strong", { children: t("activity-panel.noTerminalsOpenYet") }), _jsx("p", { children: t("activity-panel.terminalsOpenedByTheAiAppearRightHere") })] });
91
96
  const closeSelectedTerminal = async () => {
92
97
  if (closingId !== undefined)
93
98
  return;
@@ -104,13 +109,14 @@ function TerminalActivity({ sessionId, terminals, onClosed }) {
104
109
  setClosingId(undefined);
105
110
  }
106
111
  };
107
- const closeLabel = terminal.status.kind === 'running' ? '结束' : '移除';
108
- return _jsxs("div", { className: "dsh-ssh-terminal-workbench", children: [terminals.length > 1 && _jsx("nav", { className: "dsh-ssh-terminal-switcher dsh-ssh-scroll-surface", "aria-label": "SSH \u7EC8\u7AEF", children: terminals.map((item, index) => {
109
- const label = item.name || `终端 ${index + 1}`;
112
+ const closeLabel = terminal.status.kind === 'running' ? t("activity-panel.end") : t("activity-panel.remove");
113
+ return _jsxs("div", { className: "dsh-ssh-terminal-workbench", children: [terminals.length > 1 && _jsx("nav", { className: "dsh-ssh-terminal-switcher dsh-ssh-scroll-surface", "aria-label": t("activity-panel.sshTerminal"), children: terminals.map((item, index) => {
114
+ const label = item.name || t("activity-panel.terminal2", [index + 1]);
110
115
  return _jsxs("button", { type: "button", "data-ssh-interactive": "choice", title: label, className: item.terminalId === terminal.terminalId ? 'is-active' : '', "aria-pressed": item.terminalId === terminal.terminalId, onClick: () => setSelectedId(item.terminalId), children: [_jsx("span", { className: `dsh-ssh-terminal-state-dot is-${item.status.kind}` }), _jsx("span", { className: "dsh-ssh-terminal-switcher-label", children: label })] }, item.terminalId);
111
- }) }), _jsxs("div", { className: "dsh-ssh-terminal-observer", children: [_jsxs("div", { className: "dsh-ssh-terminal-observer-heading", children: [_jsxs("span", { children: [_jsx("strong", { children: terminal.name }), _jsx("small", { children: terminal.cwd })] }), _jsxs("div", { className: "dsh-ssh-terminal-observer-actions", children: [_jsx("span", { className: `dsh-ssh-terminal-state is-${terminal.status.kind}`, children: terminal.status.kind === 'running' ? '运行中' : '已退出' }), _jsxs("button", { type: "button", className: "dsh-ssh-terminal-close", disabled: closingId !== undefined, "aria-label": `${closeLabel}终端 ${terminal.name}`, title: terminal.status.kind === 'running' ? '结束并关闭这个终端' : '从活动面板移除这个终端', onClick: () => { void closeSelectedTerminal(); }, children: [_jsx(IconCloseOutline16, { size: 14 }), _jsx("span", { children: closingId === terminal.terminalId ? '处理中' : closeLabel })] })] })] }), _jsx(InteractiveTerminal, { sessionId: sessionId, terminal: terminal, onError: setError }, terminal.terminalId)] }), error && _jsx("p", { className: "dsh-ssh-terminal-input-error", role: "alert", children: error })] });
116
+ }) }), _jsxs("div", { className: "dsh-ssh-terminal-observer", children: [_jsxs("div", { className: "dsh-ssh-terminal-observer-heading", children: [_jsxs("span", { children: [_jsx("strong", { children: terminal.name }), _jsx("small", { children: terminal.cwd })] }), _jsxs("div", { className: "dsh-ssh-terminal-observer-actions", children: [_jsx("span", { className: `dsh-ssh-terminal-state is-${terminal.status.kind}`, children: terminal.status.kind === 'running' ? t("activity-panel.running") : t("activity-panel.exited") }), _jsxs("button", { type: "button", className: "dsh-ssh-terminal-close", disabled: closingId !== undefined, "aria-label": t("activity-panel.terminal3", [closeLabel, terminal.name]), title: terminal.status.kind === 'running' ? t("activity-panel.endAndCloseThisTerminal") : t("activity-panel.removeThisTerminalFromTheActivityPanel"), onClick: () => { void closeSelectedTerminal(); }, children: [_jsx(IconCloseOutline16, { size: 14 }), _jsx("span", { children: closingId === terminal.terminalId ? t("activity-panel.processing") : closeLabel })] })] })] }), _jsx(InteractiveTerminal, { sessionId: sessionId, terminal: terminal, onError: setError }, terminal.terminalId)] }), error && _jsx("p", { className: "dsh-ssh-terminal-input-error", role: "alert", children: error })] });
112
117
  }
113
118
  function InteractiveTerminal({ sessionId, terminal: activity, onError }) {
119
+ useSshLocale();
114
120
  const hostRef = useRef(null);
115
121
  const terminalRef = useRef();
116
122
  useEffect(() => {
@@ -157,6 +163,6 @@ function InteractiveTerminal({ sessionId, terminal: activity, onError }) {
157
163
  if (terminal !== undefined)
158
164
  terminal.options.disableStdin = activity.status.kind !== 'running';
159
165
  }, [activity.status.kind]);
160
- return _jsx("div", { className: "dsh-ssh-terminal-screen", "aria-label": "\u4EA4\u4E92\u5F0F SSH \u7EC8\u7AEF", children: _jsx("div", { ref: hostRef, className: "dsh-ssh-terminal-viewport" }) });
166
+ return _jsx("div", { className: "dsh-ssh-terminal-screen", "aria-label": t("activity-panel.interactiveSshTerminal"), children: _jsx("div", { ref: hostRef, className: "dsh-ssh-terminal-viewport" }) });
161
167
  }
162
168
  //# sourceMappingURL=activity-panel.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"activity-panel.js","sourceRoot":"","sources":["../src/activity-panel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"activity-panel.js","sourceRoot":"","sources":["../src/activity-panel.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAA;AAClD,OAAO,EAAE,CAAC,EAAE,MAAM,WAAW,CAAA;AAC7B,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAEhE,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,uBAAuB,GACxB,MAAM,uCAAuC,CAAA;AAE9C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAC3C,OAAO,EACL,yBAAyB,EACzB,qBAAqB,EACrB,YAAY,EACZ,0BAA0B,EAC1B,sBAAsB,EACtB,yBAAyB,GAI1B,MAAM,iBAAiB,CAAA;AACxB,OAAO,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAA;AAC7E,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAC9E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAiBvE,MAAM,UAAU,gBAAgB,CAAC,KAAwD;IACvF,YAAY,EAAE,CAAA;IACd,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,CAAA;IACzC,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,EAAgB,CAAA;IACxD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAmB,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,iBAAiB,CAAC,CAAA;IACxH,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAU,CAAA;IAE5C,SAAS,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE;QAC9C,MAAM,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,CAAA;QAC3D,IAAI,SAAS,KAAK,SAAS;YAAE,OAAO,CAAC,SAAS,CAAC,CAAA;IACjD,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAA;IAElC,MAAM,OAAO,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACrC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,YAAY,CAAC,SAAS,CAAC,CAAA;YAC1C,WAAW,CAAC,IAAI,CAAC,CAAA;YACjB,IAAI,IAAI,CAAC,SAAS,EAAE,UAAU,KAAK,UAAU,EAAE,CAAC;gBAC9C,IAAI,KAAK,CAAC,UAAU,CAAC,aAAa,CAAC,SAAS,CAAC,KAAK,WAAW;oBAAE,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAA;gBAC7H,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;YAC3E,CAAC;YACD,QAAQ,CAAC,SAAS,CAAC,CAAA;QACrB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;QAChC,CAAC;IACH,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC,CAAA;IAEjC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ,GAAG,KAAK,CAAA;QACpB,IAAI,KAAyB,CAAA;QAC7B,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,MAAM,IAAI,GAAG,KAAK,IAAmB,EAAE;YACrC,IAAI,OAAO;gBAAE,OAAM;YACnB,OAAO,GAAG,IAAI,CAAA;YACd,MAAM,OAAO,EAAE,CAAA;YACf,OAAO,GAAG,KAAK,CAAA;YACf,IAAI,QAAQ;gBAAE,OAAM;YACpB,MAAM,eAAe,GAAG,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;YAC1D,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,EAAE,CAAA,CAAC,CAAC,EAAE,QAAQ,CAAC,eAAe,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAA;QACnH,CAAC,CAAA;QACD,MAAM,MAAM,GAAG,GAAS,EAAE;YACxB,IAAI,QAAQ,CAAC,eAAe,KAAK,SAAS,IAAI,QAAQ;gBAAE,OAAM;YAC9D,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACnD,KAAK,GAAG,SAAS,CAAA;YACjB,KAAK,IAAI,EAAE,CAAA;QACb,CAAC,CAAA;QACD,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;QACrD,KAAK,IAAI,EAAE,CAAA;QACX,OAAO,GAAG,EAAE;YACV,QAAQ,GAAG,IAAI,CAAA;YACf,IAAI,KAAK,KAAK,SAAS;gBAAE,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAA;YACnD,QAAQ,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,CAAC,CAAA;QAC1D,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAA;IAEnB,OAAO,mBAAS,SAAS,EAAC,wBAAwB,gBAAa,CAAC,CAAC,4BAA4B,CAAC,aAC5F,kBAAQ,SAAS,EAAC,yBAAyB,aACzC,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAM,SAAS,EAAC,uBAAuB,YAAC,KAAC,WAAW,KAAG,GAAO,EAC9D,2BAAM,2BAAS,CAAC,CAAC,4BAA4B,CAAC,GAAU,EAAA,4BAAQ,CAAC,CAAC,+BAA+B,CAAC,OAAG,OAAO,CAAC,SAAS,CAAC,IAAS,IAAO,IACnI,EACN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,qBAAqB,gBAAa,CAAC,CAAC,iCAAiC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,YAAE,KAAC,kBAAkB,IAAC,IAAI,EAAE,EAAE,GAAI,GAAS,IAC5L,EACR,QAAQ,IAAI,eAAK,SAAS,EAAC,uBAAuB,gBAAa,CAAC,CAAC,gCAAgC,CAAC,aACjG,kBAAQ,IAAI,EAAC,QAAQ,0BAAsB,QAAQ,EAAC,SAAS,EAAE,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAgB,IAAI,KAAK,iBAAiB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,iBAAiB,CAAC,aAAE,KAAC,uBAAuB,IAAC,IAAI,EAAE,EAAE,GAAI,EAAC,CAAC,CAAC,iCAAiC,CAAC,IAAU,EAC1T,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,kBAAQ,IAAI,EAAC,QAAQ,0BAAsB,QAAQ,EAAC,SAAS,EAAE,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAgB,IAAI,KAAK,kBAAkB,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,CAAC,aAAE,KAAC,WAAW,KAAG,EAAC,CAAC,CAAC,gCAAgC,CAAC,IAAU,EACvU,QAAQ,CAAC,SAAS,EAAE,UAAU,KAAK,UAAU,IAAI,kBAAQ,IAAI,EAAC,QAAQ,0BAAsB,QAAQ,EAAC,SAAS,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAgB,IAAI,KAAK,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,WAAW,CAAC,aAAE,KAAC,iBAAiB,IAAC,IAAI,EAAE,EAAE,GAAI,EAAC,CAAC,CAAC,yBAAyB,CAAC,EAAE,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAK,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAM,IAAU,IAChZ,EACN,eAAK,SAAS,EAAC,uBAAuB,aACnC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,wBAAwB,EAAC,IAAI,EAAC,QAAQ,YAAE,CAAC,CAAC,mCAAmC,CAAC,GAAK;wBACxH,CAAC,CAAC,IAAI,KAAK,iBAAiB,CAAC,CAAC,CAAC,KAAC,qBAAqB,IAAC,SAAS,EAAE,SAAS,GAAI;4BAC5E,CAAC,CAAC,IAAI,KAAK,kBAAkB,CAAC,CAAC,CAAC,KAAC,uBAAuB,IAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,kBAAkB,CAAC,EAAE,OAAO,EAAE,OAAO,GAAI;gCAChR,CAAC,CAAC,KAAC,gBAAgB,IAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAI,EACnG,KAAK,IAAI,YAAG,SAAS,EAAC,sBAAsB,EAAC,IAAI,EAAC,OAAO,YAAE,KAAK,GAAK,IAClE,IACE,CAAA;AACZ,CAAC;AAED,SAAS,uBAAuB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,iBAAiB,EAAE,SAAS,EAAE,OAAO,EAAyJ;IACpP,YAAY,EAAE,CAAA;IACd,MAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,iBAAiB,CAAC,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAA;IACnF,IAAI,OAAO,KAAK,SAAS;QAAE,OAAO,eAAK,SAAS,EAAC,wBAAwB,aAAC,KAAC,uBAAuB,IAAC,IAAI,EAAE,EAAE,GAAI,EAAA,2BAAS,CAAC,CAAC,iCAAiC,CAAC,GAAU,EAAA,sBAAI,CAAC,CAAC,sDAAsD,CAAC,GAAK,IAAM,CAAA;IAC9O,OAAO,KAAC,mBAAmB,IAAkB,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,IAA9G,OAAO,CAAC,EAAE,CAAwG,CAAA;AACrJ,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAE,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAuF;IAC/I,YAAY,EAAE,CAAA;IACd,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;IAC3G,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;IACnE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,EAAU,CAAA;IACpD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,EAAU,CAAA;IAC5C,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,IAAI,SAAS,CAAA;IAEpF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,UAAU,KAAK,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,UAAU,KAAK,UAAU,CAAC,EAAE,CAAC;YACxF,aAAa,CAAC,SAAS,EAAE,UAAU,CAAC,CAAA;QACtC,CAAC;IACH,CAAC,EAAE,CAAC,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC,CAAA;IAElD,IAAI,QAAQ,KAAK,SAAS;QAAE,OAAO,eAAK,SAAS,EAAC,wBAAwB,aAAC,KAAC,iBAAiB,IAAC,IAAI,EAAE,EAAE,GAAI,EAAA,2BAAS,CAAC,CAAC,mCAAmC,CAAC,GAAU,EAAA,sBAAI,CAAC,CAAC,sDAAsD,CAAC,GAAK,IAAM,CAAA;IAE3O,MAAM,qBAAqB,GAAG,KAAK,IAAmB,EAAE;QACtD,IAAI,SAAS,KAAK,SAAS;YAAE,OAAM;QACnC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAA;QACjC,QAAQ,CAAC,SAAS,CAAC,CAAA;QACnB,IAAI,CAAC;YACH,MAAM,qBAAqB,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;YAC3D,MAAM,QAAQ,EAAE,CAAA;QAClB,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,QAAQ,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAA;QAChC,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,SAAS,CAAC,CAAA;QACzB,CAAC;IACH,CAAC,CAAA;IACD,MAAM,UAAU,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAA;IAE5G,OAAO,eAAK,SAAS,EAAC,4BAA4B,aAC/C,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,cAAK,SAAS,EAAC,kDAAkD,gBAAa,CAAC,CAAC,4BAA4B,CAAC,YAAG,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBACrK,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,0BAA0B,EAAE,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAA;oBACrE,OAAO,kBAAQ,IAAI,EAAC,QAAQ,0BAAsB,QAAQ,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,kBAAgB,IAAI,CAAC,UAAU,KAAK,QAAQ,CAAC,UAAU,EAAwB,OAAO,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,aAAE,eAAM,SAAS,EAAE,iCAAiC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,GAAI,EAAA,eAAM,SAAS,EAAC,iCAAiC,YAAE,KAAK,GAAQ,KAAxM,IAAI,CAAC,UAAU,CAAkM,CAAA;gBAC/Z,CAAC,CAAC,GAAO,EACT,eAAK,SAAS,EAAC,2BAA2B,aACxC,eAAK,SAAS,EAAC,mCAAmC,aAAC,2BAAM,2BAAS,QAAQ,CAAC,IAAI,GAAU,EAAA,0BAAQ,QAAQ,CAAC,GAAG,GAAS,IAAO,EAAA,eAAK,SAAS,EAAC,mCAAmC,aAAC,eAAM,SAAS,EAAE,6BAA6B,QAAQ,CAAC,MAAM,CAAC,IAAI,EAAE,YAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,GAAQ,EAAA,kBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,wBAAwB,EAAC,QAAQ,EAAE,SAAS,KAAK,SAAS,gBAAc,CAAC,CAAC,0BAA0B,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,uDAAuD,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,KAAK,qBAAqB,EAAE,CAAA,CAAC,CAAC,aAAE,KAAC,kBAAkB,IAAC,IAAI,EAAE,EAAE,GAAI,EAAA,yBAAO,SAAS,KAAK,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,UAAU,GAAQ,IAAS,IAAM,IAAM,EAC11B,KAAC,mBAAmB,IAA2B,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,IAAhF,QAAQ,CAAC,UAAU,CAAiE,IAC1G,EACL,KAAK,IAAI,YAAG,SAAS,EAAC,8BAA8B,EAAC,IAAI,EAAC,OAAO,YAAE,KAAK,GAAK,IAC1E,CAAA;AACR,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAmG;IACtK,YAAY,EAAE,CAAA;IACd,MAAM,OAAO,GAAG,MAAM,CAAiB,IAAI,CAAC,CAAA;IAC5C,MAAM,WAAW,GAAG,MAAM,EAAY,CAAA;IAEtC,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAG,OAAO,CAAC,OAAO,CAAA;QAC5B,IAAI,IAAI,KAAK,IAAI;YAAE,OAAM;QACzB,MAAM,QAAQ,GAAG,iBAAiB,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,CAAA;QACrH,MAAM,GAAG,GAAG,IAAI,QAAQ,EAAE,CAAA;QAC1B,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;QACvB,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QACnB,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAA;QAC9B,QAAQ,CAAC,KAAK,EAAE,CAAA;QAChB,MAAM,SAAS,GAAG,IAAI,iBAAiB,CAAC;YACtC,SAAS,EAAE,yBAAyB,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,CAAC;YACpE,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,0BAA0B,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;YAClF,IAAI,EAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC,yBAAyB,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,QAAQ,CAAC;SACpG,CAAC,CAAA;QACF,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;QACzG,MAAM,UAAU,GAAG,SAAS,CAAC,OAAO,CAAC;YACnC,MAAM,EAAE,KAAK,CAAC,EAAE;gBACd,IAAI,KAAK,CAAC,SAAS;oBAAE,QAAQ,CAAC,KAAK,EAAE,CAAA;gBACrC,IAAI,KAAK,CAAC,IAAI;oBAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;gBAC1C,QAAQ,CAAC,cAAc,EAAE,CAAA;gBACzB,OAAO,CAAC,SAAS,CAAC,CAAA;YACpB,CAAC;YACD,KAAK,EAAE,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;SAC/C,CAAC,CAAA;QACF,MAAM,QAAQ,GAAG,sBAAsB,CAAC,IAAI,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE;YAC1E,KAAK,sBAAsB,CAAC,SAAS,EAAE,QAAQ,CAAC,UAAU,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;QACxH,CAAC,CAAC,CAAA;QACF,OAAO,GAAG,EAAE;YACV,UAAU,EAAE,CAAA;YACZ,SAAS,CAAC,OAAO,EAAE,CAAA;YACnB,KAAK,CAAC,OAAO,EAAE,CAAA;YACf,QAAQ,CAAC,OAAO,EAAE,CAAA;YAClB,QAAQ,CAAC,OAAO,EAAE,CAAA;YAClB,WAAW,CAAC,OAAO,GAAG,SAAS,CAAA;QACjC,CAAC,CAAA;IACH,CAAC,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,OAAO,EAAE,SAAS,CAAC,CAAC,CAAA;IAE7C,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAA;QACpC,IAAI,QAAQ,KAAK,SAAS;YAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAA;IAChG,CAAC,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;IAE1B,OAAO,cAAK,SAAS,EAAC,yBAAyB,gBAAa,CAAC,CAAC,uCAAuC,CAAC,YAAE,cAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,2BAA2B,GAAG,GAAM,CAAA;AAC3K,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive-workspace.d.ts","sourceRoot":"","sources":["../src/adaptive-workspace.tsx"],"names":[],"mappings":"AAAA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnE,MAAM,WAAW,yBAAyB;IACxC,UAAU,IAAI,IAAI,CAAA;IAClB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;CACtC;AAED,KAAK,aAAa,GAAG,YAAY,GAAG,WAAW,CAAA;AAC/C,KAAK,qBAAqB,GAAG,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,yBAAyB,KAAK,SAAS,CAAC,CAAA;AAE7F,UAAU,sBAAsB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,UAAU,EAAE,qBAAqB,CAAA;IACjC,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,qBAAqB,CAAA;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,cAAqB,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAwC7M"}
1
+ {"version":3,"file":"adaptive-workspace.d.ts","sourceRoot":"","sources":["../src/adaptive-workspace.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA+B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnE,MAAM,WAAW,yBAAyB;IACxC,UAAU,IAAI,IAAI,CAAA;IAClB,SAAS,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;CACtC;AAED,KAAK,aAAa,GAAG,YAAY,GAAG,WAAW,CAAA;AAC/C,KAAK,qBAAqB,GAAG,SAAS,GAAG,CAAC,CAAC,QAAQ,EAAE,yBAAyB,KAAK,SAAS,CAAC,CAAA;AAE7F,UAAU,sBAAsB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,SAAS,CAAA;IACnB,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,UAAU,EAAE,qBAAqB,CAAA;IACjC,eAAe,EAAE,MAAM,CAAA;IACvB,cAAc,CAAC,EAAE,SAAS,CAAA;IAC1B,SAAS,CAAC,EAAE,qBAAqB,CAAA;IACjC,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,aAAa,CAAC,EAAE,SAAS,CAAA;IACzB,QAAQ,EAAE,SAAS,CAAA;CACpB;AAED,wBAAgB,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,cAAgD,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE,sBAAsB,GAAG,GAAG,CAAC,OAAO,CAyCxO"}
@@ -1,6 +1,9 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useSshLocale } from './use-ssh-locale.js';
3
+ import { t } from './i18n.js';
2
4
  import { useEffect, useRef, useState } from 'react';
3
- export function AdaptiveWorkspace({ className, toolbar, notice, navigation, navigationLabel, navigationIcon, inspector, inspectorLabel = '详情', inspectorIcon, children }) {
5
+ export function AdaptiveWorkspace({ className, toolbar, notice, navigation, navigationLabel, navigationIcon, inspector, inspectorLabel = t("adaptive-workspace.details"), inspectorIcon, children }) {
6
+ useSshLocale();
4
7
  const [panel, setPanel] = useState();
5
8
  const navigationRef = useRef(null);
6
9
  const inspectorRef = useRef(null);
@@ -29,7 +32,7 @@ export function AdaptiveWorkspace({ className, toolbar, notice, navigation, navi
29
32
  window.addEventListener('keydown', close);
30
33
  return () => window.removeEventListener('keydown', close);
31
34
  }, [panel]);
32
- return _jsxs("main", { className: `dsh-ssh-adaptive-workspace${className === undefined ? '' : ` ${className}`}`, "data-panel": panel ?? 'none', "data-has-inspector": inspector === undefined ? 'false' : 'true', children: [toolbar, notice, _jsxs("nav", { className: "dsh-ssh-mobile-actions", "aria-label": "\u5DE5\u4F5C\u533A\u9762\u677F", children: [_jsxs("button", { type: "button", "data-ssh-interactive": "choice", "aria-pressed": panel === 'navigation', "aria-controls": "dsh-ssh-adaptive-navigation", "aria-expanded": panel === 'navigation', onClick: () => panel === 'navigation' ? closePanel() : setPanel('navigation'), children: [navigationIcon, _jsx("span", { children: navigationLabel })] }), inspector !== undefined && _jsxs("button", { type: "button", "data-ssh-interactive": "choice", "aria-pressed": panel === 'inspector', "aria-controls": "dsh-ssh-adaptive-inspector", "aria-expanded": panel === 'inspector', onClick: () => panel === 'inspector' ? closePanel() : setPanel('inspector'), children: [inspectorIcon, _jsx("span", { children: inspectorLabel })] })] }), _jsxs("div", { className: "dsh-ssh-adaptive-shell", children: [_jsx("aside", { ref: navigationRef, id: "dsh-ssh-adaptive-navigation", className: "dsh-ssh-adaptive-navigation", "aria-label": navigationLabel, children: renderSlot(navigation, controls) }), _jsx("section", { className: "dsh-ssh-adaptive-content", children: children }), inspector !== undefined && _jsx("aside", { ref: inspectorRef, id: "dsh-ssh-adaptive-inspector", className: "dsh-ssh-adaptive-inspector", "aria-label": inspectorLabel, children: renderSlot(inspector, controls) }), _jsx("button", { type: "button", className: "dsh-ssh-adaptive-backdrop", "aria-label": "\u5173\u95ED\u9762\u677F", tabIndex: panel === undefined ? -1 : 0, onClick: closePanel })] })] });
35
+ return _jsxs("main", { className: `dsh-ssh-adaptive-workspace${className === undefined ? '' : ` ${className}`}`, "data-panel": panel ?? 'none', "data-has-inspector": inspector === undefined ? 'false' : 'true', children: [toolbar, notice, _jsxs("nav", { className: "dsh-ssh-mobile-actions", "aria-label": t("adaptive-workspace.workspacePanel"), children: [_jsxs("button", { type: "button", "data-ssh-interactive": "choice", "aria-pressed": panel === 'navigation', "aria-controls": "dsh-ssh-adaptive-navigation", "aria-expanded": panel === 'navigation', onClick: () => panel === 'navigation' ? closePanel() : setPanel('navigation'), children: [navigationIcon, _jsx("span", { children: navigationLabel })] }), inspector !== undefined && _jsxs("button", { type: "button", "data-ssh-interactive": "choice", "aria-pressed": panel === 'inspector', "aria-controls": "dsh-ssh-adaptive-inspector", "aria-expanded": panel === 'inspector', onClick: () => panel === 'inspector' ? closePanel() : setPanel('inspector'), children: [inspectorIcon, _jsx("span", { children: inspectorLabel })] })] }), _jsxs("div", { className: "dsh-ssh-adaptive-shell", children: [_jsx("aside", { ref: navigationRef, id: "dsh-ssh-adaptive-navigation", className: "dsh-ssh-adaptive-navigation", "aria-label": navigationLabel, children: renderSlot(navigation, controls) }), _jsx("section", { className: "dsh-ssh-adaptive-content", children: children }), inspector !== undefined && _jsx("aside", { ref: inspectorRef, id: "dsh-ssh-adaptive-inspector", className: "dsh-ssh-adaptive-inspector", "aria-label": inspectorLabel, children: renderSlot(inspector, controls) }), _jsx("button", { type: "button", className: "dsh-ssh-adaptive-backdrop", "aria-label": t("adaptive-workspace.closePanel"), tabIndex: panel === undefined ? -1 : 0, onClick: closePanel })] })] });
33
36
  }
34
37
  function renderSlot(slot, controls) {
35
38
  return typeof slot === 'function' ? slot(controls) : slot;
@@ -1 +1 @@
1
- {"version":3,"file":"adaptive-workspace.js","sourceRoot":"","sources":["../src/adaptive-workspace.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adaptive-workspace.js","sourceRoot":"","sources":["../src/adaptive-workspace.tsx"],"names":[],"mappings":"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"}
package/lib/api.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAwB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAKrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAIzE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,sBAAsB,CAAA;AAG7E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAA+B,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAGtE,OAAO,EAAwB,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAG5F,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAQhD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE;QACd,IAAI,EAAE,QAAQ,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KACzE,GAAG,MAAM,IAAI,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,CAAA;IACf,WAAW,EAAE,kBAAkB,CAAA;IAC/B,QAAQ,EAAE,eAAe,CAAA;IACzB,SAAS,EAAE,YAAY,CAAA;IACvB,QAAQ,EAAE,cAAc,CAAA;IACxB,SAAS,EAAE,sBAAsB,CAAA;IACjC,WAAW,EAAE,iBAAiB,CAAA;IAC9B,cAAc,EAAE,gBAAgB,CAAA;IAChC,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,EAAE,iBAAiB,CAAA;IACxB,SAAS,EAAE,mBAAmB,CAAA;IAC9B,YAAY,EAAE,sBAAsB,CAAA;IACpC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACjD,yBAAyB,CAAC,IAAI,yBAAyB,GAAG,SAAS,CAAA;CACpE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,IAAI,CAa3G"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../src/api.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,WAAW,CAAA;AAEhE,OAAO,EAAwB,YAAY,EAAE,MAAM,gBAAgB,CAAA;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAA;AAKrD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAA;AAC9C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,eAAe,CAAA;AAIzE,OAAO,EAAE,gBAAgB,EAAwB,MAAM,sBAAsB,CAAA;AAG7E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAA;AAC5D,OAAO,EAAE,mBAAmB,EAA+B,MAAM,4BAA4B,CAAA;AAC7F,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAA;AAGtE,OAAO,EAAwB,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAA;AAG5F,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAWhD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE;QACd,IAAI,EAAE,QAAQ,CAAA;QACd,IAAI,EAAE,MAAM,CAAA;QACZ,OAAO,CAAC,GAAG,EAAE,eAAe,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;KACzE,GAAG,MAAM,IAAI,CAAA;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,QAAQ,CAAA;IACf,WAAW,EAAE,kBAAkB,CAAA;IAC/B,QAAQ,EAAE,eAAe,CAAA;IACzB,SAAS,EAAE,YAAY,CAAA;IACvB,QAAQ,EAAE,cAAc,CAAA;IACxB,SAAS,EAAE,sBAAsB,CAAA;IACjC,WAAW,EAAE,iBAAiB,CAAA;IAC9B,cAAc,EAAE,gBAAgB,CAAA;IAChC,MAAM,EAAE,aAAa,CAAA;IACrB,KAAK,EAAE,iBAAiB,CAAA;IACxB,SAAS,EAAE,mBAAmB,CAAA;IAC9B,YAAY,EAAE,sBAAsB,CAAA;IACpC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAA;IACjD,yBAAyB,CAAC,IAAI,yBAAyB,GAAG,SAAS,CAAA;CACpE;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,IAAI,CAa3G"}
package/lib/api.js CHANGED
@@ -17,6 +17,9 @@ import { streamRemoteTar } from './remote-tar-download.js';
17
17
  import { findDuplicateProfileEndpoint } from './profile-endpoint.js';
18
18
  import { parseProjectMounts } from './project-mounts.js';
19
19
  import { saveCommand } from './commands.js';
20
+ import { parseMarkdownSave } from './markdown-file.js';
21
+ import { saveLocalMarkdown } from './local-markdown-file.js';
22
+ import { saveSftpMarkdown } from './sftp-markdown-file.js';
20
23
  const MAX_BODY_BYTES = 1_048_576;
21
24
  const MAX_SFTP_UPLOAD_BYTES = 512 * 1024 * 1024;
22
25
  export function registerSshApi(webServer, prefix, runtime) {
@@ -423,6 +426,10 @@ async function dispatch(req, res, prefix, runtime) {
423
426
  if (id !== undefined && segments[2] === 'sftp') {
424
427
  requiredProfile(runtime.store, id);
425
428
  const operation = segments[3];
429
+ if (method === 'PUT' && operation === 'markdown' && segments.length === 4) {
430
+ requireMutationHeader(req);
431
+ return sendJson(res, 200, await saveSftpMarkdown(runtime.connector, id, parseMarkdownSave(await readObject(req, 2_097_152))));
432
+ }
426
433
  if (method === 'GET' && operation === 'stat' && segments.length === 4) {
427
434
  return sendJson(res, 200, await statSftpPath(runtime.connector, id, requireRawText(url.searchParams.get('path'), 'path', 4096)));
428
435
  }
@@ -666,6 +673,21 @@ async function dispatch(req, res, prefix, runtime) {
666
673
  throw httpError(404, '当前会话没有可用的工作目录');
667
674
  return sendJson(res, 200, await listLocalWorkspace(cwd, url.searchParams.get('path') ?? undefined));
668
675
  }
676
+ if (method === 'PUT' && (segments[1] === 'local-markdown' || segments[1] === 'markdown') && segments.length === 2) {
677
+ requireMutationHeader(req);
678
+ if (!sessionId)
679
+ throw httpError(400, 'sessionId is required');
680
+ const input = parseMarkdownSave(await readObject(req, 2_097_152));
681
+ if (segments[1] === 'local-markdown') {
682
+ const cwd = runtime.sessionCwd(sessionId);
683
+ if (cwd === undefined)
684
+ throw httpError(404, '当前会话没有可用的工作目录');
685
+ return sendJson(res, 200, await saveLocalMarkdown(cwd, input));
686
+ }
687
+ const profileId = requireText(url.searchParams.get('profileId'), 'profileId', 100);
688
+ requireActivityProfile(runtime.store, sessionId, profileId);
689
+ return sendJson(res, 200, await saveSftpMarkdown(runtime.connector, profileId, input));
690
+ }
669
691
  if (method === 'GET' && segments[1] === 'local-file' && segments.length === 2) {
670
692
  if (!sessionId)
671
693
  throw httpError(400, 'sessionId is required');
@@ -1075,13 +1097,13 @@ function requireMutationHeader(req) {
1075
1097
  if (req.headers['x-dsh-ssh-request'] !== '1')
1076
1098
  throw httpError(403, 'missing SSH mutation request header');
1077
1099
  }
1078
- async function readObject(req) {
1100
+ async function readObject(req, limit = MAX_BODY_BYTES) {
1079
1101
  let total = 0;
1080
1102
  const chunks = [];
1081
1103
  for await (const chunk of req) {
1082
1104
  const buffer = Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk);
1083
1105
  total += buffer.length;
1084
- if (total > MAX_BODY_BYTES)
1106
+ if (total > limit)
1085
1107
  throw httpError(413, 'request body is too large');
1086
1108
  chunks.push(buffer);
1087
1109
  }