@lemoncat7/dsh-ssh 1.3.6 → 1.3.11
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/ARCHITECTURE.md +14 -3
- package/README.md +46 -1
- package/lib/activity-panel.d.ts +1 -0
- package/lib/activity-panel.d.ts.map +1 -1
- package/lib/activity-panel.js +4 -2
- package/lib/activity-panel.js.map +1 -1
- package/lib/api.d.ts +2 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +35 -0
- package/lib/api.js.map +1 -1
- package/lib/client-api.d.ts +32 -0
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client-api.js.map +1 -1
- package/lib/client.js +512 -46
- package/lib/client.js.map +3 -3
- package/lib/domain.d.ts +1 -0
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js.map +1 -1
- package/lib/file-transfer-workspace.d.ts.map +1 -1
- package/lib/file-transfer-workspace.js +19 -1
- package/lib/file-transfer-workspace.js.map +1 -1
- package/lib/gist-sync.d.ts +153 -0
- package/lib/gist-sync.d.ts.map +1 -0
- package/lib/gist-sync.js +1043 -0
- package/lib/gist-sync.js.map +1 -0
- package/lib/github-device-auth.d.ts +30 -0
- package/lib/github-device-auth.d.ts.map +1 -0
- package/lib/github-device-auth.js +130 -0
- package/lib/github-device-auth.js.map +1 -0
- package/lib/github-http.d.ts +13 -0
- package/lib/github-http.d.ts.map +1 -0
- package/lib/github-http.js +115 -0
- package/lib/github-http.js.map +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +4 -1
- package/lib/index.js.map +1 -1
- package/lib/store.d.ts +4 -0
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +30 -1
- package/lib/store.js.map +1 -1
- package/lib/tools.js +23 -0
- package/lib/tools.js.map +1 -1
- package/package.json +3 -2
package/ARCHITECTURE.md
CHANGED
|
@@ -14,6 +14,8 @@ This plugin is split into four boundaries. UI code never reaches SSH or file tra
|
|
|
14
14
|
|
|
15
15
|
- `src/api.ts` translates HTTP routes into explicit store, terminal, file-transfer, forwarding, and credential operations.
|
|
16
16
|
- `src/store.ts` owns persistent SSH configuration.
|
|
17
|
+
- `src/gist-sync.ts` owns portable configuration snapshots, encrypted secret export/import, three-way conflict resolution, tombstones, explicit backups, and serialized background synchronization.
|
|
18
|
+
- `src/github-device-auth.ts` owns the bounded GitHub Device Flow state machine. Device codes remain server-side and completed access tokens are written directly to the credential service.
|
|
17
19
|
- `src/session-access.ts` and `src/tools.ts` define the session authorization boundary used by AI tools.
|
|
18
20
|
- `src/remote-files.ts` defines the protocol-neutral endpoint and remote filesystem contract.
|
|
19
21
|
- `src/sftp-adapter.ts` and `src/ftp-adapter.ts` implement that contract without leaking protocol details upward.
|
|
@@ -43,14 +45,18 @@ This plugin is split into four boundaries. UI code never reaches SSH or file tra
|
|
|
43
45
|
|
|
44
46
|
| State | Owner | Persistence |
|
|
45
47
|
| --- | --- | --- |
|
|
46
|
-
| SSH profiles,
|
|
47
|
-
| FTP/FTPS profiles | server store | profile data + DSH credential service |
|
|
48
|
+
| SSH profiles, proxy library, credential vault, remote projects | server store | profile data + DSH credential service; encrypted Gist snapshot when enabled |
|
|
49
|
+
| FTP/FTPS profiles | server store | profile data + DSH credential service; encrypted Gist snapshot when enabled |
|
|
50
|
+
| Gist ID, strategy, tombstones, last sync summary | Gist sync service | local metadata file |
|
|
51
|
+
| GitHub token and sync encryption passphrase | Gist token vault | local DSH credential service only |
|
|
52
|
+
| OAuth Client ID and last observed Gist revision | Gist sync service | local metadata file; neither is secret |
|
|
48
53
|
| Mounted hosts, permission, fixed directories | session access store | per DSH session |
|
|
49
54
|
| Authorized file endpoints and file permission | session access store | per DSH session |
|
|
50
55
|
| Browser file control sessions | endpoint session manager | process lifetime, 60-second idle reap |
|
|
51
56
|
| File transfer jobs | file transfer manager | process lifetime |
|
|
52
57
|
| Browser terminal process | terminal manager | process lifetime |
|
|
53
|
-
|
|
|
58
|
+
| Activity-panel open state, view and selected host | per-session browser controller | plugin lifetime |
|
|
59
|
+
| Open dialog and transient pane state | React feature component | component lifetime |
|
|
54
60
|
| Terminal/SFTP split width | `ResizableSplit` | browser local storage |
|
|
55
61
|
|
|
56
62
|
## Invariants
|
|
@@ -58,10 +64,15 @@ This plugin is split into four boundaries. UI code never reaches SSH or file tra
|
|
|
58
64
|
- The plugin uses only public DSH slots and injected client services; it does not patch DSH source code.
|
|
59
65
|
- A tool call must pass the session access boundary before reaching SSH resources.
|
|
60
66
|
- SSH command permission and remote-file permission are independent; authorizing one never implies the other.
|
|
67
|
+
- A regular user fork copies the parent session grant once, before prompt assembly. Existing child grants win, live terminals/jobs are never copied, and `origin: subagent` lineage is excluded.
|
|
61
68
|
- FTP control and passive data sockets use the same route policy. FTPS wraps both socket classes with verified TLS.
|
|
62
69
|
- Remote-to-remote transfers use backpressured streams and never stage a complete file on local disk.
|
|
63
70
|
- Browser browsing sessions and transfer job sessions are isolated so a long transfer cannot block pane navigation.
|
|
64
71
|
- Secrets are write-only from the browser and are never returned by profile APIs.
|
|
72
|
+
- Portable sync never exports session grants, forwarding rules, or local runtime settings. Passwords and private keys are encrypted with AES-256-GCM before network I/O; the token and encryption passphrase never enter the snapshot.
|
|
73
|
+
- GitHub authorization requests only the `gist` scope. The browser receives a one-time user code and flow identifier, never the OAuth access token or GitHub device code.
|
|
74
|
+
- OAuth、GitHub 身份校验、Gist API 与原始 Gist 下载共享同一个出站传输层。传输层按请求读取本机代理设置,因此修改代理无需重启;代理连接池在地址变化和插件卸载时会释放。
|
|
75
|
+
- Sync operations are serialized. A blank device bootstraps from an existing cloud snapshot, while subsequent divergent edits use a base digest and tombstone-aware deterministic merge.
|
|
65
76
|
- Terminal input is sequenced and terminal resources are explicitly disposed on close or unmount.
|
|
66
77
|
- Visual motion uses `transform` and `opacity`, remains interruptible, and is disabled by `prefers-reduced-motion`.
|
|
67
78
|
- Filesystem paths are treated as remote paths unless a value is explicitly named as a DSH local workspace.
|
package/README.md
CHANGED
|
@@ -31,6 +31,7 @@ dsh plugin --profile web add @lemoncat7/dsh-ssh@latest
|
|
|
31
31
|
- 本地转发(`-L`)、远程转发(`-R`)和动态 SOCKS5 转发(`-D`)
|
|
32
32
|
- 浏览器交互终端,支持输入、增量输出、窗口尺寸同步和主动断开
|
|
33
33
|
- 当前会话右侧栏支持多个 AI 终端切换与键盘输入
|
|
34
|
+
- SSH 活动右栏按会话分别保持展开状态、页签和所选主机;切换到未展开过的会话时不会自动打开,切回原会话会恢复
|
|
34
35
|
- AI 调用 `ssh_terminal_open` 创建终端时,当前会话会自动展开 SSH 右栏并切换到新终端
|
|
35
36
|
- SFTP 文件浏览、文本/图片/PDF 预览和流式下载;支持拖放上传、目录内移动、行末删除,并可从内嵌预览打开独立放大窗口
|
|
36
37
|
- 独立「文件传输」工作区,支持 2~4 个 FTP、FTPS 或 SFTP 窗格与多个任务页
|
|
@@ -40,11 +41,13 @@ dsh plugin --profile web add @lemoncat7/dsh-ssh@latest
|
|
|
40
41
|
- 独立密钥库集中保存常用用户名、密码和私钥,SSH 连接仅保存引用
|
|
41
42
|
- 独立代理库集中保存 HTTP CONNECT 与 SOCKS5 代理,多台主机可复用同一连接路径
|
|
42
43
|
- 按 DSH 会话授权连接;未勾选的主机对 AI 完全不可见
|
|
44
|
+
- 普通分叉会话继承来源会话的 SSH、文件端点、权限和固定目录;运行中的终端与传输任务仍归原会话所有,子代理不会隐式继承用户授权
|
|
43
45
|
- 保存固定远端项目目录,并从目录直接创建和打开新 DSH 会话
|
|
44
46
|
- AI 可执行一次性命令,或打开、读取、操作和关闭独立的交互终端
|
|
45
47
|
- 左侧远端区域提供右侧栏开关;目录页使用真实 SFTP 浏览远端文件,终端页使用单一终端画面观察并操作 AI 终端
|
|
46
48
|
- 插件服务与 Web 客户端兼容 Windows、macOS 和 Linux,不依赖本机 `ssh` 或 `sftp` 命令
|
|
47
49
|
- 首次连接主机指纹确认、输出上限、命令超时和公开端口绑定保护
|
|
50
|
+
- GitHub Gist 跨设备配置同步,支持智能、本地优先和云端优先策略;主机、FTP/FTPS、项目目录、代理库、密钥库及其凭据均端到端加密
|
|
48
51
|
|
|
49
52
|
## 界面
|
|
50
53
|
|
|
@@ -55,7 +58,7 @@ dsh plugin --profile web add @lemoncat7/dsh-ssh@latest
|
|
|
55
58
|
1. 左侧远端树:点击主机只负责选中并展开固定目录,同时自动收起其他主机;右侧独立的「挂载 / 卸载」按钮决定当前 DSH 会话能否访问该主机,因此浏览终端不会意外改变 AI 权限。点击目录整行即可固定,再次点击已固定目录即可取消;每台主机最多固定一个目录。目录后的新增按钮直接创建并打开新会话。底部统一设置「仅命令 / 终端控制」与执行前确认。
|
|
56
59
|
2. 右侧工作区:默认把终端与当前主机或项目目录的 SFTP 左右并排展示,不需要在两个页面之间切换;SFTP 会等终端首次连接成功后再读取远端目录。拖动两栏之间的分隔线可以调整 SFTP 宽度,双击恢复默认,比例会保存在当前浏览器。另可进入端口转发、密钥库、代理库和设置。SFTP 支持浏览、预览、下载、行末删除,以及拖放或文件选择器触发的多文件顺序上传;文件拖进同一主机的目录时使用原生重命名完成移动,跨端点拖放才创建复制任务,拖回原目录不会产生任务。同名文件逐项确认跳过或覆盖,单文件上限为 512 MB。内嵌文件预览可通过下载旁的放大按钮打开独立预览窗口。
|
|
57
60
|
|
|
58
|
-
「文件传输」是独立工作区页签。每个任务页默认双窗格,可切换为 2~4 栏。每个窗格先显示统一的 SFTP、FTP、FTPS 连接列表,单击连接后才读取远端目录,并可随时返回连接列表。名称、大小和修改时间表头均可切换升降序,目录始终置顶。每个文件或目录行末在悬停或键盘聚焦时显示“下载到本地”和删除两个快捷按钮;文件直接流式下载,目录则实时归档为 `.tar`,两者都使用独立协议连接,不占用当前目录的浏览会话,也不会在 DSH
|
|
61
|
+
「文件传输」是独立工作区页签。每个任务页默认双窗格,可切换为 2~4 栏。每个窗格先显示统一的 SFTP、FTP、FTPS 连接列表,单击连接后才读取远端目录,并可随时返回连接列表。名称、大小和修改时间表头均可切换升降序,目录始终置顶。每个文件或目录行末在悬停或键盘聚焦时显示“下载到本地”和删除两个快捷按钮;文件直接流式下载,目录则实时归档为 `.tar`,两者都使用独立协议连接,不占用当前目录的浏览会话,也不会在 DSH 磁盘暂存完整内容。文件也可以拖到另一窗格或具体目录,或选中后使用“传送到下一栏”,因此键盘和触控环境不依赖拖拽。同一端点内拖入目录是移动,跨端点拖放是复制;目录不能移动到自身或子目录。浏览窗格复用自己的协议会话,传输任务使用独立连接,避免大文件占用目录浏览的控制通道;任务卡在执行时显示累计耗时,结束后固定显示总耗时和完成时刻。任务完成、失败或取消后只刷新对应目标目录,及时呈现完整或部分写入结果。每个文件或目录行末均可直接打开删除确认,目录采用有深度和数量上限的递归删除,且不会跟随符号链接。关闭页面不会中断服务端任务;DSH 进程停止时会统一取消并释放两端连接。
|
|
59
62
|
|
|
60
63
|
工作区使用插件内职责单一的自适应壳布局。宽容器使用双栏;窄于 820px 时远端树切换为左侧抽屉,窄于 520px 时进一步压缩 SFTP 次要信息和操作密度。响应式判断使用容器查询,因此手机、桌面分屏和 DSH 窄面板采用同一套行为。
|
|
61
64
|
|
|
@@ -108,6 +111,48 @@ FTP Profile 与 SSH Profile 分开保存。FTP Profile 自有密码使用 `dsh-f
|
|
|
108
111
|
|
|
109
112
|
首次连接会拒绝未知主机密钥并展示 SHA-256 指纹。用户确认后才把指纹写入 Profile,后续连接严格比对。
|
|
110
113
|
|
|
114
|
+
## GitHub Gist 配置同步
|
|
115
|
+
|
|
116
|
+
所有同步选项都位于「远端 → SSH 面板 → 设置」。默认使用 GitHub OAuth Device Flow:点击“连接 GitHub”后,插件先在 DSH 内显示一次性设备代码和复制按钮,用户再从同一授权窗口打开 GitHub 官方设备授权页并粘贴代码;access token 由服务端直接写入 DSH 凭据服务,不经过浏览器,也不会出现在同步状态文件中。Personal Access Token 仅保留在“高级授权设置”中作为备用。
|
|
117
|
+
|
|
118
|
+
Device Flow 需要一个属于插件发布者的 GitHub OAuth App Client ID。Client ID 本身不是密钥,可公开分发;Client Secret 不得写入插件,而且此流程不需要 Client Secret。首次配置时:
|
|
119
|
+
|
|
120
|
+
1. 在 GitHub Developer Settings 创建 OAuth App。
|
|
121
|
+
2. 在 OAuth App 设置中启用 Device Flow。
|
|
122
|
+
3. 将 Client ID 填入“高级授权设置”,保存后即可使用“连接 GitHub”。
|
|
123
|
+
|
|
124
|
+
如果 DSH 所在网络不能直连 GitHub,可在同一页面的“本机运行设置”填写“GitHub 出站代理”并先执行网络测试。该地址只保存在本机 SSH 状态中,不参与 Gist 同步;支持 `http://` 与 `https://` 代理。留空时插件依次读取 `DSH_SSH_GITHUB_PROXY`、`HTTPS_PROXY` 和 `https_proxy`。设置页不会保存带账号密码的代理 URL,认证代理请通过 `DSH_SSH_GITHUB_PROXY` 环境变量配置。
|
|
125
|
+
|
|
126
|
+
授权只申请 `gist` scope。备用 classic personal access token 同样需要 `gist` scope;fine-grained token 是否可用取决于 GitHub 当前对 Gist 的权限支持。Gist ID 可以留空,首次同步时插件会自动创建一个私有 Gist。为避免主机地址等配置元数据公开,插件会拒绝公开 Gist。
|
|
127
|
+
|
|
128
|
+
同步范围:
|
|
129
|
+
|
|
130
|
+
- SSH 主机、FTP/FTPS 连接与固定远端项目目录
|
|
131
|
+
- 代理库及代理密码
|
|
132
|
+
- 密钥库元数据,以及密码、私钥和私钥口令
|
|
133
|
+
- 连接自身保存的 SSH/FTP 密码和内联代理密码
|
|
134
|
+
|
|
135
|
+
以下内容具有明确的本机边界,不会同步:
|
|
136
|
+
|
|
137
|
+
- 当前 DSH 会话的主机/文件授权、权限和工作目录
|
|
138
|
+
- 本机端口转发规则
|
|
139
|
+
- 公开端口绑定、命令超时和最大输出限制
|
|
140
|
+
- GitHub Token 与同步加密密码本身
|
|
141
|
+
|
|
142
|
+
敏感字段在离开 DSH 前使用同步加密密码经 scrypt 派生密钥,并通过 AES-256-GCM 加密;Gist 中不包含明文密码或私钥。同步加密密码最少 6 个字符,仍建议使用 12 个以上字符的独立密码。该密码无法从 Gist 恢复,新设备必须输入相同密码,丢失后只能重新建立同步配置。
|
|
143
|
+
|
|
144
|
+
三种策略只在两端同时发生变化时决定冲突方向:
|
|
145
|
+
|
|
146
|
+
- `智能`:按每条配置的更新时间合并,并使用删除墓碑避免旧设备复活已删除条目。
|
|
147
|
+
- `本地优先`:双方都修改时使用当前设备配置。
|
|
148
|
+
- `云端优先`:双方都修改时使用 Gist 配置。
|
|
149
|
+
|
|
150
|
+
空白新设备第一次连接已有 Gist 时始终先安全拉取云端,不会因为选择“本地优先”而覆盖已有配置。自动同步会在插件启动后、本地可同步配置变化约 3 秒后以及后台每 5 分钟运行;任务串行执行,避免并发覆盖。
|
|
151
|
+
|
|
152
|
+
覆盖可能丢失的一侧之前,插件会在同一个 Gist 中创建显式备份文件,并按设置保留 0~50 份。该数量只控制 `dsh-ssh.backup.*.json` 文件;GitHub 自己维护的 Gist revision history 无法由插件裁剪。
|
|
153
|
+
|
|
154
|
+
设置页显示最近一次由 GitHub 返回的云端 Gist revision SHA(短格式展示,完整值保留在提示中)。创建、上传、下载、合并或连接测试都会刷新这个云端版本;它表示真实的 Gist 修订版本,不是固定的数据结构版本号。
|
|
155
|
+
|
|
111
156
|
## DSH 配置
|
|
112
157
|
|
|
113
158
|
安装包后,bundle 会插入默认配置:
|
package/lib/activity-panel.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ export interface ActivityController {
|
|
|
9
9
|
selected(sessionId: string): string | undefined;
|
|
10
10
|
requestedView(sessionId: string): ActivityViewMode | undefined;
|
|
11
11
|
subscribe(listener: () => void): () => void;
|
|
12
|
+
dispose(): void;
|
|
12
13
|
}
|
|
13
14
|
export declare function SshActivityPanel(props: DetailsProps & {
|
|
14
15
|
controller: ActivityController;
|
|
@@ -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;
|
|
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"}
|
package/lib/activity-panel.js
CHANGED
|
@@ -22,6 +22,8 @@ export function SshActivityPanel(props) {
|
|
|
22
22
|
const next = await loadActivity(sessionId);
|
|
23
23
|
setActivity(next);
|
|
24
24
|
if (next.injection?.permission !== 'terminal') {
|
|
25
|
+
if (props.controller.requestedView(sessionId) === 'terminals')
|
|
26
|
+
props.controller.open(sessionId, undefined, 'local-directory');
|
|
25
27
|
setView(current => current === 'terminals' ? 'local-directory' : current);
|
|
26
28
|
}
|
|
27
29
|
setError(undefined);
|
|
@@ -29,7 +31,7 @@ export function SshActivityPanel(props) {
|
|
|
29
31
|
catch (reason) {
|
|
30
32
|
setError(errorMessage(reason));
|
|
31
33
|
}
|
|
32
|
-
}, [sessionId]);
|
|
34
|
+
}, [props.controller, sessionId]);
|
|
33
35
|
useEffect(() => {
|
|
34
36
|
let disposed = false;
|
|
35
37
|
let timer;
|
|
@@ -62,7 +64,7 @@ export function SshActivityPanel(props) {
|
|
|
62
64
|
document.removeEventListener('visibilitychange', resume);
|
|
63
65
|
};
|
|
64
66
|
}, [refresh, view]);
|
|
65
|
-
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: () =>
|
|
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" })
|
|
66
68
|
: view === 'local-directory' ? _jsx(LocalWorkspaceBrowser, { sessionId: sessionId })
|
|
67
69
|
: 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 })
|
|
68
70
|
: _jsx(TerminalActivity, { sessionId: sessionId, terminals: activity.terminals, onClosed: refresh }), error && _jsx("p", { className: "dsh-ssh-inline-error", role: "alert", children: error })] })] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"activity-panel.js","sourceRoot":"","sources":["../src/activity-panel.tsx"],"names":[],"mappings":";AAAA,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;AAgBvE,MAAM,UAAU,gBAAgB,CAAC,KAAwD;IACvF,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,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,SAAS,CAAC,CAAC,CAAA;IAEf,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,gBAAY,kBAAQ,aACpE,kBAAQ,SAAS,EAAC,yBAAyB,aACzC,eAAK,SAAS,EAAC,wBAAwB,aACrC,eAAM,SAAS,EAAC,uBAAuB,YAAC,KAAC,WAAW,KAAG,GAAO,EAC9D,2BAAM,gDAAuB,EAAA,gEAAe,OAAO,CAAC,SAAS,CAAC,IAAS,IAAO,IAC1E,EACN,iBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,qBAAqB,gBAAY,+BAAW,EAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,YAAE,KAAC,kBAAkB,IAAC,IAAI,EAAE,EAAE,GAAI,GAAS,IACjK,EACR,QAAQ,IAAI,eAAK,SAAS,EAAC,uBAAuB,gBAAY,8BAAU,aACvE,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,OAAO,CAAC,iBAAiB,CAAC,aAAE,KAAC,uBAAuB,IAAC,IAAI,EAAE,EAAE,GAAI,gCAAa,EACpP,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,OAAO,CAAC,kBAAkB,CAAC,aAAE,KAAC,WAAW,KAAG,gCAAa,EAClQ,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,OAAO,CAAC,WAAW,CAAC,aAAE,KAAC,iBAAiB,IAAC,IAAI,EAAE,EAAE,GAAI,kBAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,uBAAK,QAAQ,CAAC,SAAS,CAAC,MAAM,GAAM,IAAU,IAChV,EACN,eAAK,SAAS,EAAC,uBAAuB,aACnC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,YAAG,SAAS,EAAC,wBAAwB,EAAC,IAAI,EAAC,QAAQ,gEAAiB;wBAC5F,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,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,gFAAyB,EAAA,kJAA+B,IAAM,CAAA;IAC7K,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,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,gFAAyB,EAAA,oIAA2B,IAAM,CAAA;IAEpK,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,IAAI,CAAC,CAAC,CAAC,IAAI,CAAA;IAEnE,OAAO,eAAK,SAAS,EAAC,4BAA4B,aAC/C,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,cAAK,SAAS,EAAC,kDAAkD,gBAAY,kBAAQ,YAAE,SAAS,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;oBAC5I,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,IAAI,MAAM,KAAK,GAAG,CAAC,EAAE,CAAA;oBAC5C,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,KAAK,CAAC,CAAC,CAAC,KAAK,GAAQ,EAAA,kBAAQ,IAAI,EAAC,QAAQ,EAAC,SAAS,EAAC,wBAAwB,EAAC,QAAQ,EAAE,SAAS,KAAK,SAAS,gBAAc,GAAG,UAAU,MAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,aAAa,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,KAAK,CAAC,CAAC,CAAC,UAAU,GAAQ,IAAS,IAAM,IAAM,EACjrB,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,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,gBAAY,qCAAY,YAAC,cAAK,GAAG,EAAE,OAAO,EAAE,SAAS,EAAC,2BAA2B,GAAG,GAAM,CAAA;AAC3I,CAAC"}
|
|
1
|
+
{"version":3,"file":"activity-panel.js","sourceRoot":"","sources":["../src/activity-panel.tsx"],"names":[],"mappings":"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"}
|
package/lib/api.d.ts
CHANGED
|
@@ -9,6 +9,7 @@ import { NetworkDialer } from './network-dialer.js';
|
|
|
9
9
|
import { RemoteFileSystems } from './remote-file-systems.js';
|
|
10
10
|
import { FileTransferManager } from './file-transfer-manager.js';
|
|
11
11
|
import { EndpointSessionManager } from './endpoint-session-manager.js';
|
|
12
|
+
import { GistSyncService } from './gist-sync.js';
|
|
12
13
|
export interface WebServerLike {
|
|
13
14
|
register(route: {
|
|
14
15
|
kind: 'prefix';
|
|
@@ -19,6 +20,7 @@ export interface WebServerLike {
|
|
|
19
20
|
export interface SshApiRuntime {
|
|
20
21
|
store: SshStore;
|
|
21
22
|
credentials: SshCredentialVault;
|
|
23
|
+
gistSync: GistSyncService;
|
|
22
24
|
connector: SshConnector;
|
|
23
25
|
forwards: ForwardManager;
|
|
24
26
|
terminals: BrowserTerminalManager;
|
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;
|
|
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;AAKtE,OAAO,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAKhD,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;CAClD;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,MAAM,IAAI,CAa3G"}
|
package/lib/api.js
CHANGED
|
@@ -4,6 +4,7 @@ import { HostKeyRequiredError } from './connector.js';
|
|
|
4
4
|
import { normalizeCredentialEntryDraft, normalizeForwardDraft, normalizeFtpProfileDraft, normalizeProfileDraft, normalizeProxyEntryDraft, normalizeRemoteProjectDraft, normalizeSecrets, } from './domain.js';
|
|
5
5
|
import { setSessionDirectory } from './directory.js';
|
|
6
6
|
import { streamTerminalOutput } from './terminal-stream.js';
|
|
7
|
+
import { normalizeGitHubProxy } from './github-http.js';
|
|
7
8
|
import { listSftpDirectory, openSftpFile, readSftpFilePreview, uploadSftpFile } from './sftp.js';
|
|
8
9
|
import { streamActivityEvents } from './activity-events.js';
|
|
9
10
|
import { deleteLocalWorkspaceEntries, listLocalWorkspace, openLocalWorkspaceFile, readLocalWorkspacePreview } from './local-workspace.js';
|
|
@@ -36,6 +37,39 @@ async function dispatch(req, res, prefix, runtime) {
|
|
|
36
37
|
const method = req.method ?? 'GET';
|
|
37
38
|
if (method === 'GET' && segments[0] === 'health')
|
|
38
39
|
return sendJson(res, 200, { ok: true, service: 'dsh-ssh', schemaVersion: 5 });
|
|
40
|
+
if (segments[0] === 'gist-sync') {
|
|
41
|
+
if (segments.length === 1 && method === 'GET')
|
|
42
|
+
return sendJson(res, 200, await runtime.gistSync.view());
|
|
43
|
+
if (segments.length === 1 && method === 'PUT') {
|
|
44
|
+
requireMutationHeader(req);
|
|
45
|
+
return sendJson(res, 200, await runtime.gistSync.configure(await readObject(req)));
|
|
46
|
+
}
|
|
47
|
+
if (segments[1] === 'test' && segments.length === 2 && method === 'POST') {
|
|
48
|
+
requireMutationHeader(req);
|
|
49
|
+
return sendJson(res, 200, await runtime.gistSync.testConnection());
|
|
50
|
+
}
|
|
51
|
+
if (segments[1] === 'network' && segments[2] === 'test' && segments.length === 3 && method === 'POST') {
|
|
52
|
+
requireMutationHeader(req);
|
|
53
|
+
return sendJson(res, 200, await runtime.gistSync.testNetwork());
|
|
54
|
+
}
|
|
55
|
+
if (segments[1] === 'run' && segments.length === 2 && method === 'POST') {
|
|
56
|
+
requireMutationHeader(req);
|
|
57
|
+
return sendJson(res, 200, await runtime.gistSync.sync());
|
|
58
|
+
}
|
|
59
|
+
if (segments[1] === 'oauth' && segments[2] === 'start' && segments.length === 3 && method === 'POST') {
|
|
60
|
+
requireMutationHeader(req);
|
|
61
|
+
return sendJson(res, 200, await runtime.gistSync.startOAuth());
|
|
62
|
+
}
|
|
63
|
+
if (segments[1] === 'oauth' && segments[2] === 'poll' && segments.length === 3 && method === 'POST') {
|
|
64
|
+
requireMutationHeader(req);
|
|
65
|
+
const input = await readObject(req);
|
|
66
|
+
return sendJson(res, 200, await runtime.gistSync.pollOAuth(requireText(input.id, 'id', 64)));
|
|
67
|
+
}
|
|
68
|
+
if (segments[1] === 'oauth' && segments[2] === 'disconnect' && segments.length === 3 && method === 'POST') {
|
|
69
|
+
requireMutationHeader(req);
|
|
70
|
+
return sendJson(res, 200, await runtime.gistSync.disconnectGitHub());
|
|
71
|
+
}
|
|
72
|
+
}
|
|
39
73
|
if (segments[0] === 'file-transfer') {
|
|
40
74
|
if (method === 'GET' && segments[1] === 'endpoints' && segments.length === 2)
|
|
41
75
|
return sendJson(res, 200, runtime.files.endpoints());
|
|
@@ -691,6 +725,7 @@ async function dispatch(req, res, prefix, runtime) {
|
|
|
691
725
|
allowPublicBind: body.allowPublicBind === true,
|
|
692
726
|
defaultCommandTimeoutMs: requireInteger(body.defaultCommandTimeoutMs, 'defaultCommandTimeoutMs', 1000, 300_000),
|
|
693
727
|
maxOutputChars: requireInteger(body.maxOutputChars, 'maxOutputChars', 1000, 1_000_000),
|
|
728
|
+
...(typeof body.githubProxy === 'string' && body.githubProxy.trim() !== '' ? { githubProxy: normalizeGitHubProxy(body.githubProxy) } : {}),
|
|
694
729
|
};
|
|
695
730
|
await runtime.store.update(state => { state.settings = settings; });
|
|
696
731
|
return sendJson(res, 200, settings);
|