@xiaoqiong0v0/opencode-ssh-tool 0.6.17 → 0.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 (51) hide show
  1. package/README.md +34 -3
  2. package/dist/agent.d.ts +7 -0
  3. package/dist/agent.d.ts.map +1 -1
  4. package/dist/agent.js +1 -0
  5. package/dist/agent.js.map +1 -1
  6. package/dist/base-session.d.ts +5 -1
  7. package/dist/base-session.d.ts.map +1 -1
  8. package/dist/base-session.js +4 -2
  9. package/dist/base-session.js.map +1 -1
  10. package/dist/cli-args.d.ts +19 -0
  11. package/dist/cli-args.d.ts.map +1 -0
  12. package/dist/cli-args.js +88 -0
  13. package/dist/cli-args.js.map +1 -0
  14. package/dist/constants.d.ts +42 -1
  15. package/dist/constants.d.ts.map +1 -1
  16. package/dist/constants.js +44 -1
  17. package/dist/constants.js.map +1 -1
  18. package/dist/i18n.d.ts +188 -12
  19. package/dist/i18n.d.ts.map +1 -1
  20. package/dist/i18n.js +164 -12
  21. package/dist/i18n.js.map +1 -1
  22. package/dist/index.d.ts.map +1 -1
  23. package/dist/index.js +313 -26
  24. package/dist/index.js.map +1 -1
  25. package/dist/path-utils.d.ts +8 -0
  26. package/dist/path-utils.d.ts.map +1 -0
  27. package/dist/path-utils.js +17 -0
  28. package/dist/path-utils.js.map +1 -0
  29. package/dist/payload.d.ts +49 -0
  30. package/dist/payload.d.ts.map +1 -0
  31. package/dist/payload.js +101 -0
  32. package/dist/payload.js.map +1 -0
  33. package/dist/server.d.ts.map +1 -1
  34. package/dist/server.js +123 -1
  35. package/dist/server.js.map +1 -1
  36. package/dist/session.d.ts +59 -0
  37. package/dist/session.d.ts.map +1 -1
  38. package/dist/session.js +215 -1
  39. package/dist/session.js.map +1 -1
  40. package/dist/transfer-events.d.ts +41 -0
  41. package/dist/transfer-events.d.ts.map +1 -0
  42. package/dist/transfer-events.js +79 -0
  43. package/dist/transfer-events.js.map +1 -0
  44. package/dist/transfer.d.ts +121 -0
  45. package/dist/transfer.d.ts.map +1 -0
  46. package/dist/transfer.js +1001 -0
  47. package/dist/transfer.js.map +1 -0
  48. package/dist/web/app.css +47 -1
  49. package/dist/web/app.js +10 -10
  50. package/dist/web/index.html +11 -0
  51. package/package.json +2 -2
@@ -105,6 +105,44 @@ export declare const PTY_COLS = 120;
105
105
  export declare const TERM_SCROLLBACK_LINES = 2000;
106
106
  /** 单次工具返回输出上限(字节) */
107
107
  export declare const MAX_OUTPUT_LEN = 50000;
108
+ /** 单次传输入口文件大小上限(字节,256 MiB):超过直接拒绝,避免误传大文件打爆内存/链路 */
109
+ export declare const MAX_TRANSFER_BYTES: number;
110
+ /**
111
+ * 单次传输整体超时(毫秒,10 分钟):SFTP API 本身不接受超时参数,由调用方包装;
112
+ * 到点后中止 SFTP 通道(destroy)并报 timeout,不再主动发起新的 rename/commit
113
+ * (已发出的 rename 仍可能被服务端执行)。
114
+ */
115
+ export declare const TRANSFER_TIMEOUT_MS: number;
116
+ /**
117
+ * 传输失败后的临时文件清理等待上限(毫秒):
118
+ * 通道异常/超时后远端回调可能永不返回,清理必须有时限,不能把错误路径挂死。
119
+ */
120
+ export declare const TRANSFER_CLEANUP_TIMEOUT_MS = 3000;
121
+ /**
122
+ * 通道中止后等待传输 job 真正 settle 的兜底上限(毫秒):
123
+ * job 自身 deadline + 清理预算应有界;超过该上限仍未结束则强制结算队列,
124
+ * 避免单次异常永久堵住同一会话的后续传输(此时通道已中止,job 无法再提交)。
125
+ */
126
+ export declare const TRANSFER_JOB_SETTLE_TIMEOUT_MS: number;
127
+ /**
128
+ * 覆盖提交回退(备份旧目标 → 新文件就位)所需的最小剩余时间(毫秒):
129
+ * 剩余不足时不再开始回退,避免"旧目标已移走、新目标未就位"恰好被超时打断。
130
+ */
131
+ export declare const TRANSFER_COMMIT_MIN_REMAINING_MS = 2000;
132
+ /** 已结束(done/failed)任务在 server 内存中的保留时长(毫秒),过期移除 */
133
+ export declare const TRANSFER_TASK_TTL_MS: number;
134
+ /** 传输进度事件节流窗口(毫秒):窗口内多次进度只发最新一帧,完成时补最终值 */
135
+ export declare const TRANSFER_PROGRESS_THROTTLE_MS = 250;
136
+ /** running 任务的最长静默时长(毫秒):超过此时长无任何更新即视为失联并移除 */
137
+ export declare const TRANSFER_TASK_STALE_MS: number;
138
+ /** 传输任务过期清理周期(毫秒):周期扫描 TTL/stale,定时器 unref 不阻塞进程退出 */
139
+ export declare const TRANSFER_TASK_SWEEP_MS: number;
140
+ /** 传输任务字段长度上限(防止异常/恶意 agent 用超长值打爆内存与页面) */
141
+ export declare const TRANSFER_TASK_ID_MAX = 128;
142
+ export declare const TRANSFER_TASK_SESSION_ID_MAX = 256;
143
+ export declare const TRANSFER_TASK_NAME_MAX = 256;
144
+ export declare const TRANSFER_TASK_PATH_MAX = 4096;
145
+ export declare const TRANSFER_TASK_ERROR_CODE_MAX = 128;
108
146
  /** 会话连续原始字节流上限(超过裁剪最旧部分) */
109
147
  export declare const RAW_LOG_MAX = 1048576;
110
148
  /** 工具语言环境变量(工具描述/CLI/session 文案,en | zh,默认 en) */
@@ -130,6 +168,9 @@ export declare const SHELL_ID_RE: RegExp;
130
168
  * server-entry 启动时写入 server.json(proto 字段),ensureServer 发现既有服务版本不符时
131
169
  * 杀掉旧进程重启,防止 detached 持久进程一直跑旧代码导致行为不生效(如 busy 卡死)。
132
170
  * v18:register 增加 running 运行集合(注册时对账僵尸 busy);状态推送改事件驱动+兜底;空闲关闭改事件驱动。
171
+ * v19:history-only 删除判据、meta.json 标题持久化。
172
+ * v20:新增传输任务事件(agent→server `transfer`,server→web `transfer`/`transfers` 快照)。
173
+ * v21:传输面板改右下浮窗;新增 `transfer-remove` 清理广播与 agent 断线任务失败收尾。
133
174
  */
134
- export declare const SERVER_PROTO_VERSION = 19;
175
+ export declare const SERVER_PROTO_VERSION = 21;
135
176
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAEA,kCAAkC;AAClC,eAAO,MAAM,cAAc,QAC0F,CAAA;AAErH,6BAA6B;AAC7B,eAAO,MAAM,IAAI,QACsmB,CAAA;AAEvnB,qCAAqC;AACrC,eAAO,MAAM,UAAU,QAAgB,CAAA;AAEvC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,MAAM,CAAA;AAEtC,uCAAuC;AACvC,eAAO,MAAM,mBAAmB,OAAQ,CAAA;AAExC;;;;;GAKG;AACH,eAAO,MAAM,0BAA0B,OAAQ,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,eAAe,MAAM,CAAA;AAElC;;GAEG;AACH,eAAO,MAAM,kBAAkB,OAAQ,CAAA;AAEvC;;;;;GAKG;AACH,eAAO,MAAM,oCAAoC,IAAI,CAAA;AAErD,oBAAoB;AACpB,eAAO,MAAM,gBAAgB,QAAS,CAAA;AAEtC;;;;;GAKG;AACH,eAAO,MAAM,yBAAyB,QAAS,CAAA;AAE/C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,IAAI,CAAA;AAIxC;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAA;AAE3C;;;;GAIG;AACH,eAAO,MAAM,oBAAoB,QAAS,CAAA;AAE1C;;;GAGG;AACH,eAAO,MAAM,2BAA2B,QAA4B,CAAA;AAEpE;;;GAGG;AACH,eAAO,MAAM,0BAA0B,MAAM,CAAA;AAI7C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,KAAK,CAAA;AAEzC;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAE7C;;;GAGG;AACH,eAAO,MAAM,qBAAqB,QAAS,CAAA;AAE3C;;;GAGG;AACH,eAAO,MAAM,uBAAuB,QAAS,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAiB,CAAA;AAE7C,kCAAkC;AAClC,eAAO,MAAM,iBAAiB,QAAS,CAAA;AAEvC,gDAAgD;AAChD,eAAO,MAAM,QAAQ,KAAK,CAAA;AAC1B,eAAO,MAAM,QAAQ,MAAM,CAAA;AAE3B,iEAAiE;AACjE,eAAO,MAAM,qBAAqB,OAAO,CAAA;AAEzC,qBAAqB;AACrB,eAAO,MAAM,cAAc,QAAS,CAAA;AAEpC,4BAA4B;AAC5B,eAAO,MAAM,WAAW,UAAY,CAAA;AAEpC,kDAAkD;AAClD,eAAO,MAAM,QAAQ,kBAAkB,CAAA;AAEvC,4CAA4C;AAC5C,eAAO,MAAM,YAAY,iBAAiB,CAAA;AAE1C,8BAA8B;AAC9B,eAAO,MAAM,SAAS,8CAA8C,CAAA;AAIpE,0CAA0C;AAC1C,eAAO,MAAM,QAAQ,eAAe,CAAA;AAEpC;;;;GAIG;AACH,eAAO,MAAM,SAAS,gBAAgB,CAAA;AAEtC,0CAA0C;AAC1C,eAAO,MAAM,eAAe,iBAAiB,CAAA;AAE7C,eAAe;AACf,eAAO,MAAM,WAAW,QAAqB,CAAA;AAE7C;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB,KAAK,CAAA"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/constants.js CHANGED
@@ -108,6 +108,46 @@ export const PTY_COLS = 120;
108
108
  export const TERM_SCROLLBACK_LINES = 2000;
109
109
  /** 单次工具返回输出上限(字节) */
110
110
  export const MAX_OUTPUT_LEN = 50_000;
111
+ // ===== SFTP 文件传输(v1) =====
112
+ /** 单次传输入口文件大小上限(字节,256 MiB):超过直接拒绝,避免误传大文件打爆内存/链路 */
113
+ export const MAX_TRANSFER_BYTES = 256 * 1024 * 1024;
114
+ /**
115
+ * 单次传输整体超时(毫秒,10 分钟):SFTP API 本身不接受超时参数,由调用方包装;
116
+ * 到点后中止 SFTP 通道(destroy)并报 timeout,不再主动发起新的 rename/commit
117
+ * (已发出的 rename 仍可能被服务端执行)。
118
+ */
119
+ export const TRANSFER_TIMEOUT_MS = 10 * 60 * 1000;
120
+ /**
121
+ * 传输失败后的临时文件清理等待上限(毫秒):
122
+ * 通道异常/超时后远端回调可能永不返回,清理必须有时限,不能把错误路径挂死。
123
+ */
124
+ export const TRANSFER_CLEANUP_TIMEOUT_MS = 3_000;
125
+ /**
126
+ * 通道中止后等待传输 job 真正 settle 的兜底上限(毫秒):
127
+ * job 自身 deadline + 清理预算应有界;超过该上限仍未结束则强制结算队列,
128
+ * 避免单次异常永久堵住同一会话的后续传输(此时通道已中止,job 无法再提交)。
129
+ */
130
+ export const TRANSFER_JOB_SETTLE_TIMEOUT_MS = 4 * TRANSFER_CLEANUP_TIMEOUT_MS;
131
+ /**
132
+ * 覆盖提交回退(备份旧目标 → 新文件就位)所需的最小剩余时间(毫秒):
133
+ * 剩余不足时不再开始回退,避免"旧目标已移走、新目标未就位"恰好被超时打断。
134
+ */
135
+ export const TRANSFER_COMMIT_MIN_REMAINING_MS = 2_000;
136
+ // ===== SFTP 传输任务事件(agent → server → Web)=====
137
+ /** 已结束(done/failed)任务在 server 内存中的保留时长(毫秒),过期移除 */
138
+ export const TRANSFER_TASK_TTL_MS = 10 * 60 * 1000;
139
+ /** 传输进度事件节流窗口(毫秒):窗口内多次进度只发最新一帧,完成时补最终值 */
140
+ export const TRANSFER_PROGRESS_THROTTLE_MS = 250;
141
+ /** running 任务的最长静默时长(毫秒):超过此时长无任何更新即视为失联并移除 */
142
+ export const TRANSFER_TASK_STALE_MS = 10 * 60 * 1000;
143
+ /** 传输任务过期清理周期(毫秒):周期扫描 TTL/stale,定时器 unref 不阻塞进程退出 */
144
+ export const TRANSFER_TASK_SWEEP_MS = 60 * 1000;
145
+ /** 传输任务字段长度上限(防止异常/恶意 agent 用超长值打爆内存与页面) */
146
+ export const TRANSFER_TASK_ID_MAX = 128;
147
+ export const TRANSFER_TASK_SESSION_ID_MAX = 256;
148
+ export const TRANSFER_TASK_NAME_MAX = 256;
149
+ export const TRANSFER_TASK_PATH_MAX = 4096;
150
+ export const TRANSFER_TASK_ERROR_CODE_MAX = 128;
111
151
  /** 会话连续原始字节流上限(超过裁剪最旧部分) */
112
152
  export const RAW_LOG_MAX = 1_048_576;
113
153
  /** 工具语言环境变量(工具描述/CLI/session 文案,en | zh,默认 en) */
@@ -134,6 +174,9 @@ export const SHELL_ID_RE = /\b__SHELL_ID__\b/;
134
174
  * server-entry 启动时写入 server.json(proto 字段),ensureServer 发现既有服务版本不符时
135
175
  * 杀掉旧进程重启,防止 detached 持久进程一直跑旧代码导致行为不生效(如 busy 卡死)。
136
176
  * v18:register 增加 running 运行集合(注册时对账僵尸 busy);状态推送改事件驱动+兜底;空闲关闭改事件驱动。
177
+ * v19:history-only 删除判据、meta.json 标题持久化。
178
+ * v20:新增传输任务事件(agent→server `transfer`,server→web `transfer`/`transfers` 快照)。
179
+ * v21:传输面板改右下浮窗;新增 `transfer-remove` 清理广播与 agent 断线任务失败收尾。
137
180
  */
138
- export const SERVER_PROTO_VERSION = 19;
181
+ export const SERVER_PROTO_VERSION = 21;
139
182
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,gCAAgC;AAEhC,kCAAkC;AAClC,MAAM,CAAC,MAAM,cAAc,GACzB,mHAAmH,CAAA;AAErH,6BAA6B;AAC7B,MAAM,CAAC,MAAM,IAAI,GACf,qnBAAqnB,CAAA;AAEvnB,qCAAqC;AACrC,MAAM,CAAC,MAAM,UAAU,GAAG,aAAa,CAAA;AAEvC;;;GAGG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;AAEtC,uCAAuC;AACvC,MAAM,CAAC,MAAM,mBAAmB,GAAG,KAAK,CAAA;AAExC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,KAAK,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,CAAA;AAElC;;GAEG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,KAAK,CAAA;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAA;AAErD,oBAAoB;AACpB,MAAM,CAAC,MAAM,gBAAgB,GAAG,MAAM,CAAA;AAEtC;;;;;GAKG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAA;AAE/C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,CAAC,CAAA;AAExC,0EAA0E;AAE1E;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAE3C;;;;GAIG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,MAAM,CAAA;AAE1C;;;GAGG;AACH,MAAM,CAAC,MAAM,2BAA2B,GAAG,qBAAqB,GAAG,CAAC,CAAA;AAEpE;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG,GAAG,CAAA;AAE7C,6CAA6C;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,EAAE,CAAA;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAA;AAE3C;;;GAGG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;AAE7C,kCAAkC;AAClC,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAA;AAEvC,gDAAgD;AAChD,MAAM,CAAC,MAAM,QAAQ,GAAG,EAAE,CAAA;AAC1B,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,CAAA;AAE3B,iEAAiE;AACjE,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAA;AAEzC,qBAAqB;AACrB,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAA;AAEpC,4BAA4B;AAC5B,MAAM,CAAC,MAAM,WAAW,GAAG,SAAS,CAAA;AAEpC,kDAAkD;AAClD,MAAM,CAAC,MAAM,QAAQ,GAAG,eAAe,CAAA;AAEvC,4CAA4C;AAC5C,MAAM,CAAC,MAAM,YAAY,GAAG,cAAc,CAAA;AAE1C,8BAA8B;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,2CAA2C,CAAA;AAEpE,uBAAuB;AAEvB,0CAA0C;AAC1C,MAAM,CAAC,MAAM,QAAQ,GAAG,YAAY,CAAA;AAEpC;;;;GAIG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,aAAa,CAAA;AAEtC,0CAA0C;AAC1C,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAA;AAE7C,eAAe;AACf,MAAM,CAAC,MAAM,WAAW,GAAG,kBAAkB,CAAA;AAE7C;;;;;GAKG;AACH,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAA"}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"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"}
package/dist/i18n.d.ts CHANGED
@@ -25,6 +25,10 @@ export declare const T: {
25
25
  readonly en: "Sent: {text}";
26
26
  readonly zh: "已发送:{text}";
27
27
  };
28
+ readonly send_ok_source: {
29
+ readonly en: "Sent ({source}, {length} chars; content hidden)";
30
+ readonly zh: "已发送({source},{length} 字符,内容不回显)";
31
+ };
28
32
  readonly local_connect_ok: {
29
33
  readonly en: "Started: {cmd} (terminal {name})";
30
34
  readonly zh: "已启动:{cmd}(终端 {name})";
@@ -42,12 +46,12 @@ export declare const T: {
42
46
  readonly zh: "service 的 PATH 找不到可执行文件:{cmd}。请改用不含空格的全路径,或 \"powershell\"。";
43
47
  };
44
48
  readonly term_cli: {
45
- readonly en: "Unified terminal CLI: SSH (remote) / local shell (wsl, pwsh, bash) / container (docker exec) sessions. For ANY terminal you already have or can start locally — WSL, Docker containers, or local shells — use the 'local' subcommand INSTEAD of running commands via bash. Subcommands: connect / local / exec / read / send / status / disconnect / help. Use 'help' for full usage. Long-running, stdin-reading or interactive commands: use the default submit (returns immediately) and then status / read; use -w only for commands expected to finish quickly.";
46
- readonly zh: "统一终端命令行工具:SSH(远程)/ 本地 shell(wsl、pwsh、bash)/ 容器(docker exec)会话。对任何本地可启动的终端——WSL、Docker 容器或本地 shell——应使用 'local' 子命令,而不是用 bash 直接执行。子命令: connect / local / exec / read / send / status / disconnect / help。用 'help' 查看完整用法。可能长时间运行、需要 stdin 或交互的命令:用默认提交(立即返回)再用 status / read;-w 只用于预期很快结束的命令。";
49
+ readonly en: "Unified terminal CLI: SSH (remote) / local shell (wsl, pwsh, bash) / container (docker exec) sessions. For ANY terminal you already have or can start locally — WSL, Docker containers, or local shells — use the 'local' subcommand INSTEAD of running commands via bash. Subcommands: connect / local / exec / read / send / upload / download / status / disconnect / help. Use 'help' for full usage. Long-running, stdin-reading or interactive commands: use the default submit (returns immediately) and then status / read; use -w only for commands expected to finish quickly. upload/download move regular files over SFTP and require an SSH session (local/container sessions are rejected).";
50
+ readonly zh: "统一终端命令行工具:SSH(远程)/ 本地 shell(wsl、pwsh、bash)/ 容器(docker exec)会话。对任何本地可启动的终端——WSL、Docker 容器或本地 shell——应使用 'local' 子命令,而不是用 bash 直接执行。子命令: connect / local / exec / read / send / upload / download / status / disconnect / help。用 'help' 查看完整用法。可能长时间运行、需要 stdin 或交互的命令:用默认提交(立即返回)再用 status / read;-w 只用于预期很快结束的命令。upload/download 通过 SFTP 传普通文件,仅支持 SSH 会话(本地/容器会话会明确拒绝)。";
47
51
  };
48
52
  readonly term_cli_args: {
49
- readonly en: "Full command line string, e.g. 'local \"wsl bash\"' / 'exec \"ls -la\" -w' / 'connect user@host'; defaults to 'help' when empty.";
50
- readonly zh: "完整命令行字符串,如 'local \"wsl bash\"' / 'exec \"ls -la\" -w' / 'connect user@host';空时默认 'help'。";
53
+ readonly en: "Full command line string, e.g. 'local \"wsl bash\"' / 'exec \"ls -la\" -w' / 'connect user@host' / 'upload ./a.txt ~/a.txt'; defaults to 'help' when empty.";
54
+ readonly zh: "完整命令行字符串,如 'local \"wsl bash\"' / 'exec \"ls -la\" -w' / 'connect user@host' / 'upload ./a.txt ~/a.txt';空时默认 'help'。";
51
55
  };
52
56
  readonly term_cli_help: {
53
57
  readonly en: `term_cli unified CLI tool: manage SSH / local (wsl, pwsh, bash) / container (docker exec) terminal sessions.
@@ -61,12 +65,19 @@ Subcommands:
61
65
  -p accepts plain text or file:<path> (read password from file, avoids exposure)
62
66
  local "<command>" [-n name] [-c cwd]
63
67
  start a local/container terminal (e.g. "pwsh" / "docker exec -it <container> sh")
64
- exec "<command>" [-n name] [-w]
68
+ exec "<command>" [--base64 | --file <path>] [-n name] [-w]
65
69
  run a command in the terminal (default: submit and return immediately without waiting for the result; -w waits until the command actually finishes — use it only for commands expected to finish quickly; for long-running / stdin-reading / interactive commands use the default and poll with status/read, because -w keeps waiting as long as the command runs)
66
70
  read [-n name] [-s buffer|history] [-l limit] [--head] [--includeCommand]
67
71
  read terminal output: buffer (current snapshot, consumed) / history (default tail last N)
68
- send "<text>" [-n name]
72
+ send "<text>" [--base64 | --file <path>] [-n name]
69
73
  send text/keystrokes (\\xHH any hex byte, \\t Tab, \\r/\\n Enter, \\x03 Ctrl-C, \\x04 Ctrl-D, \\x1a Ctrl-Z, \\x1b Esc)
74
+ upload <local> <remote> [-n name] [--overwrite] [--mkdir]
75
+ upload a regular file from this machine (plugin host) to the SSH session over SFTP
76
+ local supports ~; remote supports absolute or home-relative paths and ~/ (expanded by SFTP, no shell; ~user unsupported); Windows drive paths must use forward slashes (C:/dir/file)
77
+ fails if the target exists unless --overwrite; parents are not created unless --mkdir
78
+ SSH sessions only; directories and symlinks are rejected; max 256 MiB
79
+ download <remote> <local> [-n name] [--overwrite] [--mkdir]
80
+ download a regular file over SFTP; same path/overwrite/mkdir/size rules
70
81
  status [-n name]
71
82
  terminal state (busy/pending/connection); omit name to list all
72
83
  disconnect [-n name]
@@ -74,13 +85,24 @@ Subcommands:
74
85
  help
75
86
  show this help
76
87
 
88
+ Payload input (exec / send):
89
+ --base64 decode base64 (whitespace ignored) to strict UTF-8 text; send sends it raw (no \\n / \\xHH decoding), exec still runs the command pipeline and normalizes CRLF
90
+ --file <path> read a LOCAL UTF-8 file on the plugin host (not remote); send sends it raw, exec still runs the command pipeline; strips BOM, rejects NUL; ~ is expanded
91
+ -- end option parsing: exec -- "-x" / send -- "-n" (payload starting with "-")
92
+ For complex quotes or shell-specific escaping, prefer --base64 / --file over guessing outer quotes.
93
+
77
94
  Examples:
78
95
  term_cli connect root@192.168.1.10
79
96
  term_cli connect user@host -p file:C:\\secrets\\pw.txt
80
97
  term_cli local "docker exec -it myctr bash" -n db
81
98
  term_cli exec "ls -la" -w
82
99
  term_cli exec "cd /var/log && tail -50 syslog"
100
+ term_cli exec -- "-x"
101
+ term_cli exec --base64 "bHMK"
102
+ term_cli send --file ./payload.txt -n db
83
103
  term_cli send "mypass\\r" -n default
104
+ term_cli upload ./dist/app.tgz /opt/app/app.tgz --overwrite
105
+ term_cli download ~/logs/app.log ./app.log --mkdir
84
106
  term_cli read -n db -s buffer
85
107
  term_cli status
86
108
  term_cli disconnect -n db
@@ -96,12 +118,19 @@ Examples:
96
118
  -p 支持明文或 file:<路径>(从文件读密码,避免暴露)
97
119
  local "<command>" [-n name] [-c cwd]
98
120
  启动本地/容器终端(如 "pwsh" / "docker exec -it <容器> sh")
99
- exec "<command>" [-n name] [-w]
121
+ exec "<command>" [--base64 | --file <path>] [-n name] [-w]
100
122
  在指定终端执行命令(默认:提交后立即返回、不等结果;-w 等到命令真正结束 —— 只适用于预期很快结束的命令;长时间运行 / 需要 stdin / 交互的命令请用默认模式,再用 status/read 轮询,因为只要命令没结束 -w 就会一直等)
101
123
  read [-n name] [-s buffer|history] [-l limit] [--head] [--includeCommand]
102
124
  读终端输出:buffer 实时快照(读取后清空)/ history 历史快照(默认 tail 后 N 条)
103
- send "<text>" [-n name]
125
+ send "<text>" [--base64 | --file <path>] [-n name]
104
126
  发送文本/按键(\\xHH 任意十六进制字节、\\t Tab、\\r/\\n 回车、\\x03 Ctrl-C、\\x04 Ctrl-D、\\x1a Ctrl-Z、\\x1b Esc)
127
+ upload <local> <remote> [-n name] [--overwrite] [--mkdir]
128
+ 通过 SFTP 把本机(插件进程)普通文件上传到 SSH 会话
129
+ local 支持 ~;remote 支持绝对路径、相对 home 路径与 ~/(由 SFTP 展开,不经过 shell;不支持 ~user);Windows 盘符路径必须用正斜杠(C:/dir/file)
130
+ 目标已存在默认失败,需加 --overwrite;默认不建父目录,需加 --mkdir
131
+ 仅支持 SSH 会话;目录与符号链接会被拒绝;单文件上限 256 MiB
132
+ download <remote> <local> [-n name] [--overwrite] [--mkdir]
133
+ 通过 SFTP 下载普通文件;路径/覆盖/建目录/大小规则相同
105
134
  status [-n name]
106
135
  终端状态(busy/pending/连接);省略 name 列出全部
107
136
  disconnect [-n name]
@@ -109,13 +138,24 @@ Examples:
109
138
  help
110
139
  显示本帮助
111
140
 
141
+ 载荷输入(exec / send):
142
+ --base64 解码 base64(忽略空白)为严格 UTF-8 文本;send 原样发送(不再解释 \\n / \\xHH 等转义),exec 仍走命令管线(CRLF 归一)
143
+ --file <path> 读取插件进程本机的 UTF-8 文件(不是远程文件);send 原样发送,exec 仍走命令管线;剥 BOM、拒绝 NUL;支持 ~ 展开
144
+ -- 终止选项解析:exec -- "-x" / send -- "-n"(载荷以 "-" 开头时)
145
+ 复杂引号或目标 shell 专属转义,优先用 --base64 / --file,不要在外层引号里猜转义。
146
+
112
147
  示例:
113
148
  term_cli connect root@192.168.1.10
114
149
  term_cli connect user@host -p file:C:\\secrets\\pw.txt
115
150
  term_cli local "docker exec -it myctr bash" -n db
116
151
  term_cli exec "ls -la" -w
117
152
  term_cli exec "cd /var/log && tail -50 syslog"
153
+ term_cli exec -- "-x"
154
+ term_cli exec --base64 "bHMK"
155
+ term_cli send --file ./payload.txt -n db
118
156
  term_cli send "mypass\\r" -n default
157
+ term_cli upload ./dist/app.tgz /opt/app/app.tgz --overwrite
158
+ term_cli download ~/logs/app.log ./app.log --mkdir
119
159
  term_cli read -n db -s buffer
120
160
  term_cli status
121
161
  term_cli disconnect -n db
@@ -142,12 +182,12 @@ Examples:
142
182
  readonly zh: "用法: local \"<command>\" [-n name] [-c cwd]";
143
183
  };
144
184
  readonly cli_exec_usage: {
145
- readonly en: "Usage: exec \"<command>\" [-n name] [-w]";
146
- readonly zh: "用法: exec \"<command>\" [-n name] [-w]";
185
+ readonly en: "Usage: exec \"<command>\" [--base64 | --file <path>] [-n name] [-w]";
186
+ readonly zh: "用法: exec \"<command>\" [--base64 | --file <path>] [-n name] [-w]";
147
187
  };
148
188
  readonly cli_send_usage: {
149
- readonly en: "Usage: send \"<text>\" [-n name]";
150
- readonly zh: "用法: send \"<text>\" [-n name]";
189
+ readonly en: "Usage: send \"<text>\" [--base64 | --file <path>] [-n name]";
190
+ readonly zh: "用法: send \"<text>\" [--base64 | --file <path>] [-n name]";
151
191
  };
152
192
  readonly cli_need_command: {
153
193
  readonly en: "Need a command";
@@ -157,10 +197,114 @@ Examples:
157
197
  readonly en: "Need text to send";
158
198
  readonly zh: "需要发送内容";
159
199
  };
200
+ readonly payload_conflict: {
201
+ readonly en: "Use either --base64 or --file, not both.";
202
+ readonly zh: "只能二选一:--base64 或 --file。";
203
+ };
204
+ readonly payload_bad_base64: {
205
+ readonly en: "Invalid base64 payload.";
206
+ readonly zh: "base64 载荷不合法。";
207
+ };
208
+ readonly payload_bad_encoding: {
209
+ readonly en: "Payload is not valid UTF-8 (or contains NUL); save it as UTF-8.";
210
+ readonly zh: "载荷不是合法 UTF-8(或含 NUL);请保存为 UTF-8。";
211
+ };
212
+ readonly payload_file_error: {
213
+ readonly en: "Cannot read file: {path}";
214
+ readonly zh: "无法读取文件:{path}";
215
+ };
216
+ readonly cli_need_transfer_paths: {
217
+ readonly en: "Need a local path and a remote path";
218
+ readonly zh: "需要本地路径和远端路径";
219
+ };
220
+ readonly cli_upload_usage: {
221
+ readonly en: "Usage: upload <local> <remote> [-n name] [--overwrite] [--mkdir]";
222
+ readonly zh: "用法: upload <local> <remote> [-n name] [--overwrite] [--mkdir]";
223
+ };
224
+ readonly cli_download_usage: {
225
+ readonly en: "Usage: download <remote> <local> [-n name] [--overwrite] [--mkdir]";
226
+ readonly zh: "用法: download <remote> <local> [-n name] [--overwrite] [--mkdir]";
227
+ };
228
+ readonly upload_ok: {
229
+ readonly en: "Uploaded {local} -> {remote} ({bytes} bytes, {ms} ms)";
230
+ readonly zh: "已上传 {local} -> {remote}({bytes} 字节,{ms} ms)";
231
+ };
232
+ readonly download_ok: {
233
+ readonly en: "Downloaded {remote} -> {local} ({bytes} bytes, {ms} ms)";
234
+ readonly zh: "已下载 {remote} -> {local}({bytes} 字节,{ms} ms)";
235
+ };
236
+ readonly transfer_denied: {
237
+ readonly en: "Transfer denied by user.";
238
+ readonly zh: "用户已拒绝传输。";
239
+ };
240
+ readonly transfer_err_exists: {
241
+ readonly en: "{path} already exists. Add --overwrite to replace it (no auto-rename/backup).";
242
+ readonly zh: "{path} 已存在。需要覆盖请加 --overwrite(不会自动改名或备份)。";
243
+ };
244
+ readonly transfer_err_local_missing: {
245
+ readonly en: "Local file not found: {path}";
246
+ readonly zh: "本地文件不存在:{path}";
247
+ };
248
+ readonly transfer_err_local_is_dir: {
249
+ readonly en: "Local path is a directory (only regular files are supported): {path}";
250
+ readonly zh: "本地路径是目录(只支持普通文件):{path}";
251
+ };
252
+ readonly transfer_err_remote_missing: {
253
+ readonly en: "Remote file not found: {path}";
254
+ readonly zh: "远端文件不存在:{path}";
255
+ };
256
+ readonly transfer_err_remote_is_dir: {
257
+ readonly en: "Remote path is a directory (only regular files are supported): {path}";
258
+ readonly zh: "远端路径是目录(只支持普通文件):{path}";
259
+ };
260
+ readonly transfer_err_symlink: {
261
+ readonly en: "Symbolic links are not supported: {path}";
262
+ readonly zh: "不支持符号链接:{path}";
263
+ };
264
+ readonly transfer_err_parent_missing: {
265
+ readonly en: "Parent directory does not exist: {path}. Add --mkdir to create it.";
266
+ readonly zh: "父目录不存在:{path}。需要创建请加 --mkdir。";
267
+ };
268
+ readonly transfer_err_too_large: {
269
+ readonly en: "File is too large for v1 transfer: {path} (limit {limit}).";
270
+ readonly zh: "文件超过 v1 传输上限:{path}(上限 {limit})。";
271
+ };
272
+ readonly transfer_err_sftp_unavailable: {
273
+ readonly en: "SFTP is unavailable on this SSH session. Reconnect with term_cli connect and retry.";
274
+ readonly zh: "该 SSH 会话的 SFTP 不可用。请用 term_cli connect 重新连接后重试。";
275
+ };
276
+ readonly transfer_err_timeout: {
277
+ readonly en: "Transfer timed out ({seconds}s). The SFTP channel was aborted; no new rename/commit is started, but an already-issued rename may still run. A partially written file may remain at the target path or in a .part/.bak temp file.";
278
+ readonly zh: "传输超时({seconds}s)。已中止 SFTP 通道,不再主动发起新的 rename/commit,但已发出的 rename 仍可能被执行;目标路径或 `.part`/`.bak` 临时文件可能残留半截内容。";
279
+ };
280
+ readonly transfer_err_io: {
281
+ readonly en: "Transfer failed: {reason}";
282
+ readonly zh: "传输失败:{reason}";
283
+ };
284
+ readonly transfer_err_unsupported: {
285
+ readonly en: "Only regular files are supported (not {path}).";
286
+ readonly zh: "只支持普通文件({path} 不是普通文件)。";
287
+ };
288
+ readonly transfer_err_tilde_user: {
289
+ readonly en: "~user paths are not supported; use ~/ (current user) or an absolute path: {path}";
290
+ readonly zh: "不支持 ~user 路径;请用 ~/(当前用户)或绝对路径:{path}";
291
+ };
292
+ readonly transfer_err_remote_path_backslash: {
293
+ readonly en: "Remote Windows paths must use forward slashes (e.g. C:/dir/file); backslash drive paths are rejected: {path}";
294
+ readonly zh: "远端 Windows 路径必须用正斜杠(如 C:/dir/file);反斜杠盘符路径已拒绝:{path}";
295
+ };
296
+ readonly transfer_err_ssh_only: {
297
+ readonly en: "File transfer is only supported on SSH sessions (term_cli connect); local/container sessions cannot transfer files.";
298
+ readonly zh: "文件传输仅支持 SSH 会话(term_cli connect);本地/容器会话不能传文件。";
299
+ };
160
300
  readonly cli_unknown: {
161
301
  readonly en: "Unknown command: {cmd}";
162
302
  readonly zh: "未知命令: {cmd}";
163
303
  };
304
+ readonly cli_unclosed_quote: {
305
+ readonly en: "Unclosed quote in term_cli args; command not sent.";
306
+ readonly zh: "term_cli 参数中有未闭合引号,命令未发送。";
307
+ };
164
308
  readonly st_name: {
165
309
  readonly en: "name";
166
310
  readonly zh: "名称";
@@ -289,6 +433,10 @@ Examples:
289
433
  readonly en: "Terminal Records";
290
434
  readonly zh: "终端记录";
291
435
  };
436
+ readonly web_close: {
437
+ readonly en: "Close";
438
+ readonly zh: "关闭";
439
+ };
292
440
  readonly web_loading: {
293
441
  readonly en: "Loading...";
294
442
  readonly zh: "加载中...";
@@ -305,6 +453,34 @@ Examples:
305
453
  readonly en: "terminals";
306
454
  readonly zh: "终端";
307
455
  };
456
+ readonly web_transfers: {
457
+ readonly en: "Transfers";
458
+ readonly zh: "传输任务";
459
+ };
460
+ readonly web_transfers_empty: {
461
+ readonly en: "No transfers in this session.";
462
+ readonly zh: "当前会话暂无传输任务。";
463
+ };
464
+ readonly web_transfer_upload: {
465
+ readonly en: "Upload";
466
+ readonly zh: "上传";
467
+ };
468
+ readonly web_transfer_download: {
469
+ readonly en: "Download";
470
+ readonly zh: "下载";
471
+ };
472
+ readonly web_transfer_running: {
473
+ readonly en: "running";
474
+ readonly zh: "传输中";
475
+ };
476
+ readonly web_transfer_done: {
477
+ readonly en: "done";
478
+ readonly zh: "完成";
479
+ };
480
+ readonly web_transfer_failed: {
481
+ readonly en: "failed";
482
+ readonly zh: "失败";
483
+ };
308
484
  readonly web_local: {
309
485
  readonly en: "local";
310
486
  readonly zh: "本地";
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}