@xiaoqiong0v0/opencode-ssh-tool 0.7.2 → 0.7.5

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.
@@ -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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"}
package/dist/i18n.js CHANGED
@@ -59,8 +59,8 @@ export const T = {
59
59
  zh: "service 的 PATH 找不到可执行文件:{cmd}。请改用不含空格的全路径,或 \"powershell\"。",
60
60
  },
61
61
  term_cli: {
62
- 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. NEVER add -w to servers, watchers, tail -f, builds, installs, scans, REPLs or commands waiting for input: -w blocks until completion and can hang. upload/download move regular files over SFTP and require an SSH session (local/container sessions are rejected).",
63
- 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。禁止对 server/watch/tail -f/构建/安装/扫描/REPL/等待输入的命令加 -w:-w 会一直等到结束,可能永久阻塞。upload/download 通过 SFTP 传普通文件,仅支持 SSH 会话(本地/容器会话会明确拒绝)。",
62
+ en: "Unified terminal CLI: SSH / local shell (wsl, pwsh, bash) / container (docker exec); use 'local' for local terminals instead of bash. Subcommands: connect / local / exec / read / send / upload / download / status / disconnect / help; use 'help' for usage. Long-running, stdin-reading or interactive commands: use the default submit, then status/read; never add -w. upload/download use SFTP and require an SSH session. Terminal sessions are scoped to this opencode session: restarting/ending opencode closes them; reconnect after restart. connect/local default to name 'default'; reusing a name (also across SSH/local) closes the old terminal first (running command lost; failed connect does not restore it). Use exec on an existing terminal; use distinct -n names to keep terminals separate.",
63
+ zh: "统一终端 CLI:SSH / 本地 shell(wsl、pwsh、bash)/ 容器(docker exec);本地终端用 'local',不要用 bash 直接跑。子命令:connect / local / exec / read / send / upload / download / status / disconnect / help;用 'help' 查看用法。长命令、需 stdin 或交互的命令:用默认提交后 status/read;禁止 -w。upload/download 走 SFTP,仅支持 SSH 会话。终端会话仅属于当前 opencode 会话,重启或退出 opencode 会关闭,需重新连接。connect/local 未传 -n 时名为 default;同名(包括 SSH 与 local 之间)会先关闭旧终端(运行中命令丢失,新连接失败也不恢复)。已有终端用 exec;并行保留用不同 -n。",
64
64
  },
65
65
  term_cli_args: {
66
66
  en: "Full command line string, e.g. 'local \"wsl bash\"' / 'exec \"ls -la\"' / 'connect user@host' / 'upload ./a.txt ~/a.txt'; defaults to 'help' when empty.",
@@ -69,6 +69,8 @@ export const T = {
69
69
  term_cli_help: {
70
70
  en: `term_cli unified CLI tool: manage SSH / local (wsl, pwsh, bash) / container (docker exec) terminal sessions.
71
71
  Use 'local' for any terminal started on this machine (WSL, Docker containers, local shells).
72
+ Terminal sessions belong to the current opencode session; restarting or ending opencode closes them. Reconnect with connect/local; this is expected, not a crash.
73
+ -n defaults to "default". connect/local with an existing name (also across SSH/local) closes that terminal before attempting the new connection; its running command is lost, and a failed new connection does not restore it. Use exec for more commands in an existing terminal; use distinct -n values to keep terminals separate.
72
74
 
73
75
  Usage: term_cli <subcommand> [args]
74
76
 
@@ -81,11 +83,11 @@ Subcommands:
81
83
  exec "<command>" [--base64 | --file <path>] [-n name] [-w]
82
84
  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; NEVER use -w for long-running / stdin-reading / interactive / server / watch / tail -f / build / install / scan / REPL commands, because -w keeps waiting as long as the command runs and can hang indefinitely; use the default and poll with status/read)
83
85
  read [-n name] [-s buffer|history] [-l limit] [--head] [--includeCommand]
84
- read terminal output: buffer (current snapshot, consumed) / history (default tail last N)
86
+ read terminal output: with no -s, a running command returns a current buffer snapshot (may be partial) and an idle terminal returns history; -s buffer reads the live buffer; -s history reads completed history. read never waits for completion: use status to wait, then read the final result
85
87
  send "<text>" [--base64 | --file <path>] [-n name]
86
88
  send text/keystrokes (\\xHH any hex byte, \\t Tab, \\r/\\n Enter, \\x03 Ctrl-C, \\x04 Ctrl-D, \\x1a Ctrl-Z, \\x1b Esc)
87
89
  upload <local> <remote> [-n name] [--overwrite] [--mkdir]
88
- upload a regular file from this machine (plugin host) to the SSH session over SFTP
90
+ upload a regular file from this machine to the SSH session over SFTP
89
91
  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)
90
92
  fails if the target exists unless --overwrite; parents are not created unless --mkdir
91
93
  SSH sessions only; directories and symlinks are rejected; max 256 MiB
@@ -99,8 +101,8 @@ Subcommands:
99
101
  show this help
100
102
 
101
103
  Payload input (exec / send):
102
- --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
103
- --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
104
+ --base64 decode base64 (whitespace ignored) to strict UTF-8 text; send sends it raw (no \\n / \\xHH decoding), exec executes it as a command
105
+ --file <path> read a LOCAL UTF-8 file on this machine (not remote); send sends it raw, exec executes it as a command; strips BOM, rejects NUL; ~ is expanded
104
106
  -- end option parsing: exec -- "-x" / send -- "-n" (payload starting with "-")
105
107
  For complex quotes or shell-specific escaping, prefer --base64 / --file over guessing outer quotes.
106
108
 
@@ -122,6 +124,8 @@ Examples:
122
124
  `,
123
125
  zh: `term_cli 统一命令行工具:管理 SSH / 本地(wsl、pwsh、bash)/ 容器(docker exec)终端会话。
124
126
  本机可启动的终端(WSL、Docker 容器、本地 shell)一律用 'local' 子命令。
127
+ 终端会话绑定当前 opencode 会话;重启或退出 opencode 后旧终端会关闭,需重新 connect/local;这是正常生命周期,不是崩溃。
128
+ -n 默认 default;connect/local 遇到同名终端(包括 SSH 与 local 之间)会先关闭旧终端再尝试新连接,其中正在运行的命令会丢失,新连接失败也不会恢复旧终端。已有终端继续执行命令请用 exec;需要并行保留请用不同的 -n。
125
129
 
126
130
  用法: term_cli <子命令> [参数]
127
131
 
@@ -134,11 +138,11 @@ Examples:
134
138
  exec "<command>" [--base64 | --file <path>] [-n name] [-w]
135
139
  在指定终端执行命令(默认:提交后立即返回、不等结果;-w 等到命令真正结束 —— 只适用于预期很快结束的命令;**禁止**对长时间运行 / 需要 stdin / 交互 / server / watch / tail -f / 构建 / 安装 / 扫描 / REPL 命令加 -w:只要命令没结束 -w 就会一直等,可能永久阻塞;这些命令请用默认模式,再用 status/read 轮询)
136
140
  read [-n name] [-s buffer|history] [-l limit] [--head] [--includeCommand]
137
- 读终端输出:buffer 实时快照(读取后清空)/ history 历史快照(默认 tail 后 N 条)
141
+ 读终端输出:不传 -s 时,命令运行中返回当前 buffer 快照(可能不完整),空闲时返回 history;-s buffer 读实时 buffer;-s history 读已完成历史。read 不等待命令完成:先用 status 等完成,再读最终结果
138
142
  send "<text>" [--base64 | --file <path>] [-n name]
139
143
  发送文本/按键(\\xHH 任意十六进制字节、\\t Tab、\\r/\\n 回车、\\x03 Ctrl-C、\\x04 Ctrl-D、\\x1a Ctrl-Z、\\x1b Esc)
140
144
  upload <local> <remote> [-n name] [--overwrite] [--mkdir]
141
- 通过 SFTP 把本机(插件进程)普通文件上传到 SSH 会话
145
+ 通过 SFTP 把本机普通文件上传到 SSH 会话
142
146
  local 支持 ~;remote 支持绝对路径、相对 home 路径与 ~/(由 SFTP 展开,不经过 shell;不支持 ~user);Windows 盘符路径必须用正斜杠(C:/dir/file)
143
147
  目标已存在默认失败,需加 --overwrite;默认不建父目录,需加 --mkdir
144
148
  仅支持 SSH 会话;目录与符号链接会被拒绝;单文件上限 256 MiB
@@ -152,8 +156,8 @@ Examples:
152
156
  显示本帮助
153
157
 
154
158
  载荷输入(exec / send):
155
- --base64 解码 base64(忽略空白)为严格 UTF-8 文本;send 原样发送(不再解释 \\n / \\xHH 等转义),exec 仍走命令管线(CRLF 归一)
156
- --file <path> 读取插件进程本机的 UTF-8 文件(不是远程文件);send 原样发送,exec 仍走命令管线;剥 BOM、拒绝 NUL;支持 ~ 展开
159
+ --base64 解码 base64(忽略空白)为严格 UTF-8 文本;send 原样发送(不再解释 \\n / \\xHH 等转义),exec 作为命令执行
160
+ --file <path> 读取本机的 UTF-8 文件(不是远程文件);send 原样发送,exec 作为命令执行;剥 BOM、拒绝 NUL;支持 ~ 展开
157
161
  -- 终止选项解析:exec -- "-x" / send -- "-n"(载荷以 "-" 开头时)
158
162
  复杂引号或目标 shell 专属转义,优先用 --base64 / --file,不要在外层引号里猜转义。
159
163
 
@@ -287,8 +291,8 @@ Examples:
287
291
  zh: "该 SSH 会话的 SFTP 不可用。请用 term_cli connect 重新连接后重试。",
288
292
  },
289
293
  transfer_err_timeout: {
290
- 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.",
291
- zh: "传输超时({seconds}s)。已中止 SFTP 通道,不再主动发起新的 rename/commit,但已发出的 rename 仍可能被执行;目标路径或 `.part`/`.bak` 临时文件可能残留半截内容。",
294
+ en: "Transfer timed out ({seconds}s). The transfer was aborted; the target file or a temporary file may be partially written.",
295
+ zh: "传输超时({seconds}s)。传输已中止;目标文件或临时文件可能残留部分内容。",
292
296
  },
293
297
  transfer_err_io: {
294
298
  en: "Transfer failed: {reason}",
@@ -322,7 +326,7 @@ Examples:
322
326
  st_type: { en: "type", zh: "类型" },
323
327
  st_connected: { en: "connected", zh: "已连接" },
324
328
  st_busy: { en: "busy", zh: "忙碌" },
325
- st_pending: { en: "pending", zh: "待消费" },
329
+ st_pending: { en: "pending", zh: "待读" },
326
330
  st_bytes: { en: "bytes", zh: "字节" },
327
331
  st_host: { en: "host", zh: "主机" },
328
332
  st_program: { en: "program", zh: "程序" },
@@ -337,8 +341,8 @@ Examples:
337
341
  zh: "危险命令,已拒绝执行。",
338
342
  },
339
343
  not_connected: {
340
- en: "No active terminal. Use term_cli connect (SSH) or term_cli local first.",
341
- zh: "无活动终端。请先用 term_cli connect(SSH)或 term_cli local 建立。",
344
+ en: "No active terminal. Terminal sessions are tied to the current opencode session; after an opencode restart, reconnect with term_cli connect (SSH) or term_cli local.",
345
+ zh: "无活动终端。终端会话绑定当前 opencode 会话;重启 opencode 后请重新用 term_cli connect(SSH)或 term_cli local 建立。",
342
346
  },
343
347
  rejected_connect: {
344
348
  en: "Connection rejected.",
@@ -349,8 +353,8 @@ Examples:
349
353
  zh: "终端名非法。仅允许字母、数字、下划线、中划线、点(最多 64 字符),不得含路径分隔符。",
350
354
  },
351
355
  no_sessions: {
352
- en: "No active terminals.",
353
- zh: "当前没有活动的终端会话。",
356
+ en: "No active terminals. Terminal sessions are tied to the current opencode session; after an opencode restart, reconnect with connect/local.",
357
+ zh: "当前没有活动的终端会话。终端会话绑定当前 opencode 会话;重启 opencode 后请重新 connect/local。",
354
358
  },
355
359
  connect_ok: {
356
360
  en: "Connected: {user}@{host}:{port} (session {sid}, terminal {name})",
@@ -360,6 +364,14 @@ Examples:
360
364
  en: "SSH connection failed",
361
365
  zh: "SSH 连接失败",
362
366
  },
367
+ connect_conflict: {
368
+ en: "Another terminal with this name was connected concurrently. Wait for it to finish, or retry with a different -n.",
369
+ zh: "同名终端正在并发连接。请等它完成,或改用不同的 -n 重试。",
370
+ },
371
+ connect_cancelled: {
372
+ en: "The terminal set was closed while connecting. Reconnect and retry.",
373
+ zh: "连接期间终端集合已被关闭,请重新连接后重试。",
374
+ },
363
375
  unknown_error: {
364
376
  en: "Unknown error",
365
377
  zh: "未知错误",
@@ -400,6 +412,14 @@ Examples:
400
412
  en: "Terminal history (first {n} / total {total})",
401
413
  zh: "终端历史(前 {n} 条 / 共 {total} 条)",
402
414
  },
415
+ read_busy_buffer_notice: {
416
+ en: "[read source=buffer busy=true]\nWarning: this is a partial buffer snapshot, not the final result; run status and wait for completion before reading the final result.",
417
+ zh: "[read source=buffer busy=true]\n警告:这是 buffer 部分快照,不是最终结果;请先用 status 等待命令完成后再读取最终结果。",
418
+ },
419
+ read_busy_history_notice: {
420
+ en: "[read source=history busy=true]\nWarning: history only contains completed commands; it does not include the current result.",
421
+ zh: "[read source=history busy=true]\n警告:history 只含已完成命令,不含当前结果。",
422
+ },
403
423
  web_title: { en: "Terminal Records", zh: "终端记录" },
404
424
  web_close: { en: "Close", zh: "关闭" },
405
425
  web_loading: { en: "Loading...", zh: "加载中..." },
@@ -423,8 +443,8 @@ Examples:
423
443
  zh: "未删除:该终端仍在活动(状态文件尚未陈旧),可能属于其他正在运行的 opencode 实例。",
424
444
  },
425
445
  web_delete_refused_active: {
426
- en: "Not deleted: terminal is claimed by an agent (its instance is still online).",
427
- zh: "未删除:该终端仍被 agent 认领(所属实例仍在线)。",
446
+ en: "Not deleted: this terminal is still in use by another online instance.",
447
+ zh: "未删除:该终端仍被其他在线实例占用。",
428
448
  },
429
449
  web_delete_blocked: {
430
450
  en: "Cannot delete this terminal (still active or owned by another instance).",
package/dist/i18n.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"AAAA,+BAA+B;AAC/B,6DAA6D;AAE7D,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAA;AAOvD;;;;;GAKG;AACH,SAAS,QAAQ,CAAC,GAAuB,EAAE,UAAgB;IACzD,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,GAAG,CAAA;IAC5C,OAAO,UAAU,CAAA;AACnB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAAC,UAAU,GAAS,IAAI;IACjD,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,UAAU,CAAC,CAAA;AACpD,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,UAAU,CAAC,UAAU,GAAS,IAAI;IAChD,OAAO,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,EAAE,UAAU,CAAC,CAAA;AACxD,CAAC;AAED,kBAAkB;AAClB,MAAM,CAAC,MAAM,CAAC,GAAG;IACf,SAAS,EAAE;QACT,EAAE,EAAE,0LAA0L;QAC9L,EAAE,EAAE,6EAA6E;KAClF;IACD,OAAO,EAAE;QACP,EAAE,EAAE,cAAc;QAClB,EAAE,EAAE,YAAY;KACjB;IACD,cAAc,EAAE;QACd,EAAE,EAAE,iDAAiD;QACrD,EAAE,EAAE,iCAAiC;KACtC;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,kCAAkC;QACtC,EAAE,EAAE,sBAAsB;KAC3B;IACD,wBAAwB,EAAE;QACxB,EAAE,EAAE,6BAA6B;QACjC,EAAE,EAAE,UAAU;KACf;IACD,iBAAiB,EAAE;QACjB,EAAE,EAAE,6IAA6I;QACjJ,EAAE,EAAE,uFAAuF;KAC5F;IACD,qBAAqB,EAAE;QACrB,EAAE,EAAE,gGAAgG;QACpG,EAAE,EAAE,6DAA6D;KAClE;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,ywBAAywB;QAC7wB,EAAE,EAAE,+ZAA+Z;KACpa;IACD,aAAa,EAAE;QACb,EAAE,EAAE,0JAA0J;QAC9J,EAAE,EAAE,mHAAmH;KACxH;IACD,aAAa,EAAE;QACb,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDP;QACG,EAAE,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoDP;KACE;IACD,MAAM,EAAE;QACN,EAAE,EAAE,iBAAiB;QACrB,EAAE,EAAE,QAAQ;KACb;IACD,cAAc,EAAE;QACd,EAAE,EAAE,0BAA0B;QAC9B,EAAE,EAAE,sBAAsB;KAC3B;IACD,iBAAiB,EAAE;QACjB,EAAE,EAAE,mEAAmE;QACvE,EAAE,EAAE,gEAAgE;KACrE;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,oBAAoB;QACxB,EAAE,EAAE,gBAAgB;KACrB;IACD,eAAe,EAAE;QACf,EAAE,EAAE,+CAA+C;QACnD,EAAE,EAAE,4CAA4C;KACjD;IACD,cAAc,EAAE;QACd,EAAE,EAAE,qEAAqE;QACzE,EAAE,EAAE,kEAAkE;KACvE;IACD,cAAc,EAAE;QACd,EAAE,EAAE,6DAA6D;QACjE,EAAE,EAAE,0DAA0D;KAC/D;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,gBAAgB;QACpB,EAAE,EAAE,MAAM;KACX;IACD,aAAa,EAAE;QACb,EAAE,EAAE,mBAAmB;QACvB,EAAE,EAAE,QAAQ;KACb;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,0CAA0C;QAC9C,EAAE,EAAE,0BAA0B;KAC/B;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,yBAAyB;QAC7B,EAAE,EAAE,eAAe;KACpB;IACD,oBAAoB,EAAE;QACpB,EAAE,EAAE,iEAAiE;QACrE,EAAE,EAAE,kCAAkC;KACvC;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,0BAA0B;QAC9B,EAAE,EAAE,eAAe;KACpB;IACD,uBAAuB,EAAE;QACvB,EAAE,EAAE,qCAAqC;QACzC,EAAE,EAAE,aAAa;KAClB;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,kEAAkE;QACtE,EAAE,EAAE,+DAA+D;KACpE;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,oEAAoE;QACxE,EAAE,EAAE,iEAAiE;KACtE;IACD,SAAS,EAAE;QACT,EAAE,EAAE,uDAAuD;QAC3D,EAAE,EAAE,6CAA6C;KAClD;IACD,WAAW,EAAE;QACX,EAAE,EAAE,yDAAyD;QAC7D,EAAE,EAAE,6CAA6C;KAClD;IACD,eAAe,EAAE;QACf,EAAE,EAAE,0BAA0B;QAC9B,EAAE,EAAE,UAAU;KACf;IACD,mBAAmB,EAAE;QACnB,EAAE,EAAE,+EAA+E;QACnF,EAAE,EAAE,2CAA2C;KAChD;IACD,0BAA0B,EAAE;QAC1B,EAAE,EAAE,8BAA8B;QAClC,EAAE,EAAE,gBAAgB;KACrB;IACD,yBAAyB,EAAE;QACzB,EAAE,EAAE,sEAAsE;QAC1E,EAAE,EAAE,yBAAyB;KAC9B;IACD,2BAA2B,EAAE;QAC3B,EAAE,EAAE,+BAA+B;QACnC,EAAE,EAAE,gBAAgB;KACrB;IACD,0BAA0B,EAAE;QAC1B,EAAE,EAAE,uEAAuE;QAC3E,EAAE,EAAE,yBAAyB;KAC9B;IACD,oBAAoB,EAAE;QACpB,EAAE,EAAE,0CAA0C;QAC9C,EAAE,EAAE,gBAAgB;KACrB;IACD,2BAA2B,EAAE;QAC3B,EAAE,EAAE,oEAAoE;QACxE,EAAE,EAAE,+BAA+B;KACpC;IACD,sBAAsB,EAAE;QACtB,EAAE,EAAE,4DAA4D;QAChE,EAAE,EAAE,kCAAkC;KACvC;IACD,6BAA6B,EAAE;QAC7B,EAAE,EAAE,qFAAqF;QACzF,EAAE,EAAE,iDAAiD;KACtD;IACD,oBAAoB,EAAE;QACpB,EAAE,EAAE,kOAAkO;QACtO,EAAE,EAAE,4GAA4G;KACjH;IACD,eAAe,EAAE;QACf,EAAE,EAAE,2BAA2B;QAC/B,EAAE,EAAE,eAAe;KACpB;IACD,wBAAwB,EAAE;QACxB,EAAE,EAAE,gDAAgD;QACpD,EAAE,EAAE,yBAAyB;KAC9B;IACD,uBAAuB,EAAE;QACvB,EAAE,EAAE,kFAAkF;QACtF,EAAE,EAAE,sCAAsC;KAC3C;IACD,kCAAkC,EAAE;QAClC,EAAE,EAAE,8GAA8G;QAClH,EAAE,EAAE,sDAAsD;KAC3D;IACD,qBAAqB,EAAE;QACrB,EAAE,EAAE,qHAAqH;QACzH,EAAE,EAAE,gDAAgD;KACrD;IACD,WAAW,EAAE;QACX,EAAE,EAAE,wBAAwB;QAC5B,EAAE,EAAE,aAAa;KAClB;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,oDAAoD;QACxD,EAAE,EAAE,2BAA2B;KAChC;IACD,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE;IACjC,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE;IACjC,YAAY,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE;IAC5C,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE;IACjC,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE;IACxC,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;IACnC,OAAO,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE;IACjC,UAAU,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE;IACvC,cAAc,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,MAAM,EAAE;IAChD,eAAe,EAAE,EAAE,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE;IAClD,cAAc,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE;IACnD,kBAAkB,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,MAAM,EAAE;IACxD,WAAW,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE;IAC1C,qBAAqB,EAAE,EAAE,EAAE,EAAE,mCAAmC,EAAE,EAAE,EAAE,eAAe,EAAE;IACvF,aAAa,EAAE;QACb,EAAE,EAAE,wCAAwC;QAC5C,EAAE,EAAE,aAAa;KAClB;IACD,aAAa,EAAE;QACb,EAAE,EAAE,yEAAyE;QAC7E,EAAE,EAAE,qDAAqD;KAC1D;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,sBAAsB;QAC1B,EAAE,EAAE,SAAS;KACd;IACD,YAAY,EAAE;QACZ,EAAE,EAAE,2GAA2G;QAC/G,EAAE,EAAE,8CAA8C;KACnD;IACD,WAAW,EAAE;QACX,EAAE,EAAE,sBAAsB;QAC1B,EAAE,EAAE,cAAc;KACnB;IACD,UAAU,EAAE;QACV,EAAE,EAAE,kEAAkE;QACtE,EAAE,EAAE,oDAAoD;KACzD;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,uBAAuB;QAC3B,EAAE,EAAE,UAAU;KACf;IACD,aAAa,EAAE;QACb,EAAE,EAAE,eAAe;QACnB,EAAE,EAAE,MAAM;KACX;IACD,WAAW,EAAE;QACX,EAAE,EAAE,kBAAkB;QACtB,EAAE,EAAE,MAAM;KACX;IACD,oBAAoB,EAAE;QACpB,EAAE,EAAE,uBAAuB;QAC3B,EAAE,EAAE,OAAO;KACZ;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,yHAAyH;QAC7H,EAAE,EAAE,wDAAwD;KAC7D;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,8GAA8G;QAClH,EAAE,EAAE,+CAA+C;KACpD;IACD,mBAAmB,EAAE;QACnB,EAAE,EAAE,8BAA8B;QAClC,EAAE,EAAE,mBAAmB;KACxB;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,6BAA6B;QACjC,EAAE,EAAE,gBAAgB;KACrB;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,qEAAqE;QACzE,EAAE,EAAE,0BAA0B;KAC/B;IACD,aAAa,EAAE;QACb,EAAE,EAAE,6CAA6C;QACjD,EAAE,EAAE,8BAA8B;KACnC;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,8CAA8C;QAClD,EAAE,EAAE,6BAA6B;KAClC;IACD,SAAS,EAAE,EAAE,EAAE,EAAE,kBAAkB,EAAE,EAAE,EAAE,MAAM,EAAE;IACjD,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;IACpC,WAAW,EAAE,EAAE,EAAE,EAAE,YAAY,EAAE,EAAE,EAAE,QAAQ,EAAE;IAC/C,gBAAgB,EAAE,EAAE,EAAE,EAAE,mCAAmC,EAAE,EAAE,EAAE,WAAW,EAAE;IAC9E,QAAQ,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE;IAClC,aAAa,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE;IAC5C,aAAa,EAAE,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE;IAC9C,mBAAmB,EAAE,EAAE,EAAE,EAAE,iCAAiC,EAAE,EAAE,EAAE,aAAa,EAAE;IACjF,mBAAmB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE;IAC/C,qBAAqB,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,IAAI,EAAE;IACnD,oBAAoB,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,KAAK,EAAE;IAClD,iBAAiB,EAAE,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE;IAC3C,mBAAmB,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE;IAC/C,SAAS,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE;IACpC,YAAY,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,KAAK,EAAE;IAC3C,cAAc,EAAE,EAAE,EAAE,EAAE,kEAAkE,EAAE,EAAE,EAAE,qDAAqD,EAAE;IACrJ,gBAAgB,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,OAAO,EAAE;IACvD,mBAAmB,EAAE,EAAE,EAAE,EAAE,8BAA8B,EAAE,EAAE,EAAE,SAAS,EAAE;IAC1E,yBAAyB,EAAE;QACzB,EAAE,EAAE,oHAAoH;QACxH,EAAE,EAAE,gDAAgD;KACrD;IACD,yBAAyB,EAAE;QACzB,EAAE,EAAE,8EAA8E;QAClF,EAAE,EAAE,8BAA8B;KACnC;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,0EAA0E;QAC9E,EAAE,EAAE,uBAAuB;KAC5B;IACD,iBAAiB,EAAE,EAAE,EAAE,EAAE,gBAAgB,EAAE,EAAE,EAAE,OAAO,EAAE;IAC1D,mBAAmB,EAAE,EAAE,EAAE,EAAE,sCAAsC,EAAE,EAAE,EAAE,sBAAsB,EAAE;IAC7F,gBAAgB,EAAE,EAAE,EAAE,EAAE,kDAAkD,EAAE,EAAE,EAAE,mBAAmB,EAAE;IACrG,YAAY,EAAE,EAAE,EAAE,EAAE,wCAAwC,EAAE,EAAE,EAAE,kBAAkB,EAAE;IACtF,aAAa,EAAE,EAAE,EAAE,EAAE,0CAA0C,EAAE,EAAE,EAAE,mBAAmB,EAAE;IAC1F,sBAAsB,EAAE,EAAE,EAAE,EAAE,uCAAuC,EAAE,EAAE,EAAE,eAAe,EAAE;IAC5F,iBAAiB,EAAE,EAAE,EAAE,EAAE,2CAA2C,EAAE,EAAE,EAAE,eAAe,EAAE;IAC3F,OAAO,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE;IAChC,eAAe,EAAE;QACf,EAAE,EAAE,2BAA2B;QAC/B,EAAE,EAAE,gBAAgB;KACrB;IACD,qBAAqB,EAAE;QACrB,EAAE,EAAE,8BAA8B;QAClC,EAAE,EAAE,mBAAmB;KACxB;IACD,mBAAmB,EAAE;QACnB,EAAE,EAAE,0CAA0C;QAC9C,EAAE,EAAE,uBAAuB;KAC5B;IACD,yBAAyB,EAAE;QACzB,EAAE,EAAE,gDAAgD;QACpD,EAAE,EAAE,0BAA0B;KAC/B;IACD,iBAAiB,EAAE;QACjB,EAAE,EAAE,eAAe;QACnB,EAAE,EAAE,KAAK;KACV;IACD,QAAQ,EAAE;QACR,EAAE,EAAE,mEAAmE;QACvE,EAAE,EAAE,sCAAsC;KAC3C;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,kFAAkF;QACtF,EAAE,EAAE,sCAAsC;KAC3C;IACD,eAAe,EAAE;QACf,EAAE,EAAE,8BAA8B;QAClC,EAAE,EAAE,WAAW;KAChB;IACD,cAAc,EAAE;QACd,EAAE,EAAE,gEAAgE;QACpE,EAAE,EAAE,kDAAkD;KACvD;IACD,aAAa,EAAE;QACb,EAAE,EAAE,eAAe;QACnB,EAAE,EAAE,YAAY;KACjB;IACD,mBAAmB,EAAE;QACnB,EAAE,EAAE,wEAAwE;QAC5E,EAAE,EAAE,kCAAkC;KACvC;CACO,CAAA;AAEV,iBAAiB;AACjB,MAAM,UAAU,EAAE,CAAC,GAAY,EAAE,IAAU;IACzC,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAA;AACrB,CAAC"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/i18n.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AAwRvD,eAAO,MAAM,eAAe,EAAE,MA8nB7B,CAAA;eAGc,eAAe"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAQ,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAA;AA8TvD,eAAO,MAAM,eAAe,EAAE,MAirB7B,CAAA;eAGc,eAAe"}
package/dist/index.js CHANGED
@@ -22,6 +22,7 @@ import { ensureServer } from "./server-manager.js";
22
22
  import { startAgent } from "./agent.js";
23
23
  import { writeSessionState, removeSessionState, removeAllSessionStates, writeSessionMeta } from "./session-store.js";
24
24
  import { precheckBeforeExec } from "./precheck.js";
25
+ import { readBusyNotice } from "./read-output.js";
25
26
  /** 默认终端名(不传 name 时用) */
26
27
  const DEFAULT_NAME = "default";
27
28
  /** 终端名合法字符(字母/数字/下划线/中划线/点),防止路径穿越 */
@@ -263,6 +264,47 @@ function cleanupAllSessions(sessionID) {
263
264
  }
264
265
  refreshAgent();
265
266
  }
267
+ /**
268
+ * 同名终端在 SSH 与 local 之间互斥:connect 与 local 共用 name 查找,
269
+ * 若旧终端留在另一张 map 中,resolveSession 会优先取 SSH,导致 read/exec 落到旧会话。
270
+ * 连接新终端前清掉另一 transport 的同名会话(含 history/state),保持“一个 name 一个终端”。
271
+ * @param sessionID opencode 会话 ID
272
+ * @param name 终端名
273
+ * @param keep 即将建立的 transport
274
+ */
275
+ function closeConflictingTransport(sessionID, name, keep) {
276
+ if (keep === "ssh") {
277
+ if (getLocalSession(sessionID, name))
278
+ cleanupLocalSession(sessionID, name);
279
+ else {
280
+ // 目录名有前缀冲突:local 终端 X 用 local-X,而 SSH 终端 local-X 也用同一目录;
281
+ // 若 live SSH 终端叫 local-X,不能把它正在写入的历史目录当成 stale local 历史删掉。
282
+ try {
283
+ if (!getSession(sessionID, `local-${name}`)) {
284
+ rmSync(join(cacheRoot(), sessionID, `local-${name}`), { recursive: true, force: true });
285
+ }
286
+ }
287
+ catch {
288
+ /* 忽略 */
289
+ }
290
+ }
291
+ }
292
+ else if (getSession(sessionID, name)) {
293
+ cleanupSession(sessionID, name);
294
+ }
295
+ else {
296
+ // 反向前缀冲突:local 终端 X 的历史目录是 local-X;连接 local 终端 local-X 时不能误删 X 的历史。
297
+ const localOwner = name.startsWith("local-") ? getLocalSession(sessionID, name.slice(6)) : undefined;
298
+ if (!localOwner) {
299
+ try {
300
+ rmSync(join(cacheRoot(), sessionID, name), { recursive: true, force: true });
301
+ }
302
+ catch {
303
+ /* 忽略 */
304
+ }
305
+ }
306
+ }
307
+ }
266
308
  // 发送前语法预检已抽到 ./precheck.ts,供 term_exec 与 web run-exec 共用。
267
309
  export const OpenCodeSshTool = async () => {
268
310
  // 父子会话关系(sessionID → parentID;根的 parentID 为 undefined)
@@ -388,6 +430,8 @@ export const OpenCodeSshTool = async () => {
388
430
  old.close();
389
431
  map.delete(name);
390
432
  }
433
+ // 同名 local 终端若仍存在,会与 SSH 同名会话冲突(read/exec 优先命中 SSH),先清掉。
434
+ closeConflictingTransport(ctx.sessionID, name, "ssh");
391
435
  const session = new SshSession(ctx.sessionID, new SessionHistory(join(cacheRoot(), ctx.sessionID), name, cfg.history.maxMessages), name, toolLang, interruptProbeIntervalMs);
392
436
  const result = await session.connect({ host, user, port, password: values.password });
393
437
  log.tool("ssh_connect", { sessionID: ctx.sessionID, name, host, user, port: port ?? 22 });
@@ -395,6 +439,18 @@ export const OpenCodeSshTool = async () => {
395
439
  session.close();
396
440
  return `${tr("connect_title_fail", toolLang)}: ${result.error ?? tr("unknown_error", toolLang)}`;
397
441
  }
442
+ // await 期间可能已被 disconnect 全部/session.deleted 摘掉 map;重新取,避免写入孤儿 Map。
443
+ const liveMap = getSessionMap(ctx.sessionID);
444
+ if (!liveMap) {
445
+ session.close();
446
+ return tr("connect_cancelled", toolLang);
447
+ }
448
+ map = liveMap;
449
+ // cleanup 与 await 之间可能被并发 local 同名连接抢先;完成后再次确认,避免两张 map 同时存在。
450
+ if (getLocalSession(ctx.sessionID, name)) {
451
+ session.close();
452
+ return tr("connect_conflict", toolLang);
453
+ }
398
454
  map.set(name, session);
399
455
  hookBusyState(session, ctx.sessionID, name);
400
456
  syncSessionState(ctx.sessionID, name, "connect");
@@ -421,6 +477,8 @@ export const OpenCodeSshTool = async () => {
421
477
  old.close();
422
478
  map.delete(name);
423
479
  }
480
+ // 同名 SSH 终端若仍存在,会与 local 同名会话冲突(read/exec 优先命中 SSH),先清掉。
481
+ closeConflictingTransport(ctx.sessionID, name, "local");
424
482
  const session = new LocalSession(ctx.sessionID, new SessionHistory(join(cacheRoot(), ctx.sessionID), `local-${name}`, cfg.history.maxMessages), name, toolLang, interruptProbeIntervalMs);
425
483
  const result = await session.connect({ command, cwd: values.cwd });
426
484
  log.tool("local_connect", { sessionID: ctx.sessionID, name, command });
@@ -428,6 +486,18 @@ export const OpenCodeSshTool = async () => {
428
486
  session.close();
429
487
  return `${tr("local_connect_title_fail", toolLang)}: ${result.error ?? tr("unknown_error", toolLang)}`;
430
488
  }
489
+ // await 期间可能已被 disconnect 全部/session.deleted 摘掉 map;重新取,避免写入孤儿 Map。
490
+ const liveMap = getLocalSessionMap(ctx.sessionID);
491
+ if (!liveMap) {
492
+ session.close();
493
+ return tr("connect_cancelled", toolLang);
494
+ }
495
+ map = liveMap;
496
+ // cleanup 与 await 之间可能被并发 SSH 同名连接抢先;完成后再次确认,避免两张 map 同时存在。
497
+ if (getSession(ctx.sessionID, name)) {
498
+ session.close();
499
+ return tr("connect_conflict", toolLang);
500
+ }
431
501
  map.set(name, session);
432
502
  hookBusyState(session, ctx.sessionID, name);
433
503
  syncSessionState(ctx.sessionID, name, "local");
@@ -515,17 +585,40 @@ export const OpenCodeSshTool = async () => {
515
585
  return tr("submitted", toolLang);
516
586
  return result.ok ? result.output : result.error ?? tr("exec_failed", toolLang);
517
587
  }
518
- /** read:读取终端输出 */
588
+ /** read:读取终端输出(未显式 -s 时,运行中读只读快照、空闲读 history) */
519
589
  async function doRead(args, ctx) {
520
590
  const { values } = parseArgs({ args, options: { name: { type: "string", short: "n" }, source: { type: "string", short: "s" }, limit: { type: "string", short: "l" }, head: { type: "boolean" }, includeCommand: { type: "boolean" } }, allowPositionals: true });
521
591
  const session = resolveSession(ctx.sessionID, values.name);
522
592
  if (!session)
523
593
  return tr("not_connected", toolLang);
524
- const source = values.source ?? "history";
594
+ // 无内容日志:只记路由键/终端类型,供排查跨会话命中;不记录 buffer/命令内容。
595
+ const readStatus = session.getStatus();
596
+ log.tool("term_read", {
597
+ sessionID: ctx.sessionID,
598
+ name: values.name ?? DEFAULT_NAME,
599
+ kind: "host" in readStatus ? "ssh" : "local",
600
+ source: values.source,
601
+ busy: readStatus.busy,
602
+ });
603
+ // 显式 -s 非 buffer 的值仍按旧的 history 分支处理(不因 busy 改走快照)
604
+ const explicitSource = values.source === undefined ? undefined : values.source === "buffer" ? "buffer" : "history";
605
+ const busy = session.getStatus().busy === true;
606
+ // 未显式指定来源:运行中给 buffer 只读快照(不消费、不代表最终结果),空闲保持旧的 history 默认
607
+ const source = explicitSource ?? (busy ? "buffer" : "history");
525
608
  if (source === "buffer") {
526
- const r = await session.readBuffer();
527
- return r.output;
609
+ if (explicitSource === "buffer") {
610
+ // 显式 -s buffer 保持旧语义:readBuffer 会消费缓冲,命中完成标记时完成命令(写 history/done/busy)
611
+ const r = await session.readBuffer();
612
+ // 完成标记已收尾时不再提示"部分快照";仍在运行才提示(读取前后都可能变化,按调用后状态为准)
613
+ return readBusyNotice("buffer", session.getStatus().busy === true, toolLang) + r.output;
614
+ }
615
+ // 未显式指定:只读快照,绝不消费;绝不调用 _completeRunning
616
+ const r = await session.peekBuffer();
617
+ if (!r.ok)
618
+ return r.error ?? "";
619
+ return readBusyNotice("buffer", busy, toolLang) + r.output;
528
620
  }
621
+ const notice = readBusyNotice("history", busy, toolLang);
529
622
  const history = session.getHistory();
530
623
  const all = history.getPairs();
531
624
  const limit = Math.max(1, parseInt(values.limit ?? "10", 10) || 10);
@@ -539,7 +632,7 @@ export const OpenCodeSshTool = async () => {
539
632
  const text = parts.join("\n");
540
633
  const url = await resolveHttpUrl();
541
634
  const browserLine = url ? tr("browser_full_record", toolLang).replace("{url}", url) : tr(httpUnavailableKey(), toolLang);
542
- return `${tr(direction === "tail" ? "history_title" : "history_title_head", toolLang).replace("{n}", String(selected.length)).replace("{total}", String(all.length))}\n${text}${browserLine}`;
635
+ return `${notice}${tr(direction === "tail" ? "history_title" : "history_title_head", toolLang).replace("{n}", String(selected.length)).replace("{total}", String(all.length))}\n${text}${browserLine}`;
543
636
  }
544
637
  /** send:发送文本/按键到终端 */
545
638
  async function doSend(args, ctx) {
@@ -854,6 +947,8 @@ export const OpenCodeSshTool = async () => {
854
947
  return HELP_TEXT;
855
948
  // 统一按根会话 ID 路由(主子会话共享终端)
856
949
  const rootID = await findRoot(ctx.sessionID);
950
+ if (rootID !== ctx.sessionID)
951
+ log.info(`cli 路由 caller=${ctx.sessionID} root=${rootID} cmd=${cmd}`);
857
952
  const rootCtx = { ...ctx, sessionID: rootID };
858
953
  switch (cmd) {
859
954
  case "connect": return doConnect(rest, rootCtx);