@hyzyn/dsh-tty 0.5.0 → 0.10.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.
package/lib/index.d.ts CHANGED
@@ -7,17 +7,26 @@
7
7
  * 之后双向透传:input/resize/kill 上行,data/exit/error 下行。
8
8
  *
9
9
  * 帧协议 v3(JSON 文本帧;sid 维度支持单连接多会话/标签页 + 断线重连):
10
- * C→S {t:'spawn', sid?, cols?, rows?, cwd?} 创建本地会话;sid 缺省时宿主生成
11
- * C→S {t:'ssh', sid?, cols?, rows?, name? | host, username, ...}
12
- * 创建 SSH 会话(ssh2 原生,见 ssh.ts);
13
- * name 引用连接簿条目,内联字段可覆盖
10
+ * C→S {t:'spawn', sid?, cols?, rows?, cwd?, persist?, persistName?}
11
+ * 创建本地会话;sid 缺省时宿主生成;
12
+ * persist=true 且配置 persistence=tmux
13
+ * 时以 tmux 持久会话托管(0.10.0)
14
+ * C→S {t:'ssh', sid?, cols?, rows?, name? | host, username, ...,
15
+ * persist?, persistName?} 创建 SSH 会话(ssh2 原生,见 ssh.ts);
16
+ * name 引用连接簿条目,内联字段可覆盖;
17
+ * persist 语义同 spawn(远程 tmux 托管)
14
18
  * C→S {t:'input', sid?, d} 按键/粘贴数据
15
19
  * C→S {t:'resize', sid?, cols, rows} xterm fit 触发
16
- * C→S {t:'kill', sid?} 关闭会话(孤儿会话也可跨连接 kill)
20
+ * C→S {t:'refresh', sid?} 请宿主 refresh-client 强制 tmux
21
+ * 重画(tmux 会话;非 tmux no-op)
22
+ * C→S {t:'kill', sid?} 关闭会话(孤儿会话也可跨连接 kill;
23
+ * tmux 会话先 kill-session 再杀客户端)
17
24
  * C→S {t:'sessions'} 列出全局会话(attachable 标记可重连者)
18
25
  * C→S {t:'attach', sid} 重连孤儿会话(断线保活窗口内):
19
- * ready 后紧跟一帧 data 回放输出缓冲
20
- * S→C {t:'ready', sid, pid, kind, target?} 会话就绪(ssh 时 pid=null,target=user@host)
26
+ * ready 后紧跟一帧 data 回放输出缓冲
27
+ * S→C {t:'ready', sid, pid, kind, target?, persist?, reattached?}
28
+ * 会话就绪(ssh 时 pid=null,target=user@host;
29
+ * persist=true 表示 tmux 持久会话)
21
30
  * S→C {t:'data', sid, d} 终端输出(utf8 文本,StringDecoder 兜多字节分帧)
22
31
  * S→C {t:'exit', sid, code, signal} PTY 退出事实(恰好一次)
23
32
  * S→C {t:'error', sid?, m} 错误
@@ -34,7 +43,11 @@
34
43
  * OSC 133/7 钩子(zsh ZDOTDIR 桩 / bash --rcfile 桩),输出流解析出命令
35
44
  * 边界(tty_capture{last} / tty_expect 早停)与实时 cwd(tty_list)。
36
45
  * 辅助路由:/api/dsh-tty/ssh-config(~/.ssh/config 导入候选)、
37
- * /api/dsh-tty/env-vars(SSH 对话框 env:VAR 下拉,仅变量名)。
46
+ * /api/dsh-tty/env-vars(SSH 对话框 env:VAR 下拉,仅变量名)、
47
+ * /api/dsh-tty/shells(设置卡片「Shell 路径」候选,仅路径)、
48
+ * /api/dsh-tty/sftp/*(SFTP 文件传输 0.7.0:list/mkdir/rename/remove/
49
+ * download/upload;0.8.0 起 mkdir 支持 parents 逐级补齐,spec 解析与
50
+ * WS ssh 帧同款,见 src/sftp.ts)。
38
51
  *
39
52
  * M0 探针(scripts/probe.mjs)验证过的三个关键结论:
40
53
  * 1. TERM 必须用 `shell -c 'export TERM=...; exec "$shell"'` 包装层注入——
@@ -74,5 +87,15 @@ export interface Config {
74
87
  shellIntegration?: boolean;
75
88
  /** 端口转发隧道(引用连接簿条目;宿主自持连接与重连,见 src/tunnels.ts)。 */
76
89
  tunnels?: TunnelSpec[];
90
+ /** SFTP 文件浏览界面风格:dialog = 单窗体(默认)/ dual = 本机+远程双栏。 */
91
+ sftpStyle?: 'dialog' | 'dual';
92
+ /** 会话持久化:off = 会话随宿主生死(默认);tmux = 「持久终端」标签由 tmux server 托管,可跨宿主重启恢复。 */
93
+ persistence?: 'off' | 'tmux';
94
+ /** 页面(最后一个连接)断开且保活期结束时,是否连 tmux 持久会话一起结束(默认 false = 留存可恢复)。 */
95
+ endOnPageClose?: boolean;
96
+ /** 内部状态:SSH 持久会话名(远程 tmux 托管,本机 socket 清单看不到,随 settings 留存供新窗口恢复确认)。 */
97
+ persistSessions?: Array<{
98
+ tmuxName: string;
99
+ }>;
77
100
  }
78
101
  export declare const name: string, inject: string[] | undefined, apply: (ctx: Context, config?: Config | undefined) => void;