dsh-ssh-tui 0.8.0 → 0.8.1
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/README.en.md +34 -0
- package/README.md +435 -577
- package/docs/display-mode.md +122 -0
- package/docs/remote-ops.md +51 -0
- package/docs/terminals.md +53 -0
- package/lib/attach.js +4 -4
- package/lib/attach.js.map +1 -1
- package/lib/auth-failure.js +36 -0
- package/lib/auth-failure.js.map +1 -1
- package/lib/commands.js +2 -0
- package/lib/commands.js.map +1 -1
- package/lib/dialogs.js +43 -0
- package/lib/dialogs.js.map +1 -1
- package/lib/display-mode.js +147 -0
- package/lib/display-mode.js.map +1 -0
- package/lib/display-sock.js +361 -21
- package/lib/display-sock.js.map +1 -1
- package/lib/footer.js +6 -9
- package/lib/footer.js.map +1 -1
- package/lib/glyph-measure.js +92 -0
- package/lib/glyph-measure.js.map +1 -0
- package/lib/i18n/en.js +18 -2
- package/lib/i18n/en.js.map +1 -1
- package/lib/i18n/zh.js +18 -2
- package/lib/i18n/zh.js.map +1 -1
- package/lib/index.js +73 -5
- package/lib/index.js.map +1 -1
- package/lib/paint.js +22 -9
- package/lib/paint.js.map +1 -1
- package/lib/picker.js +14 -13
- package/lib/picker.js.map +1 -1
- package/lib/plan.js +11 -11
- package/lib/plan.js.map +1 -1
- package/lib/platform.js +96 -0
- package/lib/platform.js.map +1 -1
- package/lib/session-blank.js +81 -0
- package/lib/session-blank.js.map +1 -0
- package/lib/session-list.js +102 -81
- package/lib/session-list.js.map +1 -1
- package/lib/startup.js +7 -0
- package/lib/startup.js.map +1 -1
- package/lib/subagent-model.js +8 -7
- package/lib/subagent-model.js.map +1 -1
- package/lib/term-text.js +296 -28
- package/lib/term-text.js.map +1 -1
- package/lib/terminal-input.js +132 -10
- package/lib/terminal-input.js.map +1 -1
- package/lib/theme.js +318 -0
- package/lib/theme.js.map +1 -0
- package/lib/tool-present.js +11 -9
- package/lib/tool-present.js.map +1 -1
- package/lib/tui.js +420 -38
- package/lib/tui.js.map +1 -1
- package/lib/types/attach.d.ts +6 -2
- package/lib/types/auth-failure.d.ts +30 -0
- package/lib/types/commands.d.ts +6 -0
- package/lib/types/dialogs.d.ts +36 -0
- package/lib/types/display-mode.d.ts +99 -0
- package/lib/types/display-sock.d.ts +75 -0
- package/lib/types/footer.d.ts +1 -1
- package/lib/types/glyph-measure.d.ts +41 -0
- package/lib/types/index.d.ts +13 -0
- package/lib/types/plan.d.ts +5 -2
- package/lib/types/platform.d.ts +83 -0
- package/lib/types/session-blank.d.ts +51 -0
- package/lib/types/session-list.d.ts +34 -0
- package/lib/types/startup.d.ts +6 -0
- package/lib/types/subagent-model.d.ts +7 -6
- package/lib/types/term-text.d.ts +55 -23
- package/lib/types/terminal-input.d.ts +37 -0
- package/lib/types/theme.d.ts +109 -0
- package/lib/types/tool-present.d.ts +2 -2
- package/lib/types/tui.d.ts +98 -1
- package/package.json +68 -66
package/README.en.md
CHANGED
|
@@ -101,6 +101,38 @@ side-by-side at 100 columns or more · `DSH_TUI_LINE_MODE=1` appends plain lines
|
|
|
101
101
|
readers and `tee` · `ssh-tui.keys` rebinds keys, refusing conflicts · `DSH_TUI_COLOR_DEPTH`
|
|
102
102
|
pins the palette (truecolor / 256 / 8 / none).
|
|
103
103
|
|
|
104
|
+
## Which host lines this covers
|
|
105
|
+
|
|
106
|
+
The plugin declares and tests **both `@deepseek-ai/dsh` lines in flight**:
|
|
107
|
+
|
|
108
|
+
| Host line | Status |
|
|
109
|
+
| --- | --- |
|
|
110
|
+
| `0.1.7-rc.1` / `0.1.7-rc.2` (`latest`) | declared compatible; CI runs the full real-PTY probe set on rc.2 and typecheck + unit suite on rc.1 |
|
|
111
|
+
| `0.2.0-rc.1` / `0.2.0-rc.2` (`next`, also the desktop app's baseline) | declared compatible; rc.2 is the default development line with the full probe set, rc.1 gets typecheck + suite |
|
|
112
|
+
| `0.1.5` and older | **unsupported as of 0.8.0**, with an explicit `incompatible` entry in `dshReleases` |
|
|
113
|
+
|
|
114
|
+
The declared window is `>=0.1.7-rc.1 <0.1.8 || >=0.2.0-rc.1 <0.2.1` (peer dependencies and `dshReleases`
|
|
115
|
+
state the same fact), and every release re-installs those versions in a clean tree and re-runs the types, the
|
|
116
|
+
suite and the real-PTY probes — not "no errors, so it probably works". Many terminal plugins on npm are still
|
|
117
|
+
stranded on the 0.1.5 line; few terminal UIs install on the 0.2.0-rc line at all, which is why the window is
|
|
118
|
+
maintained this tightly.
|
|
119
|
+
|
|
120
|
+
## Desktop Harness users, read this first
|
|
121
|
+
|
|
122
|
+
**The official desktop app (<https://www.deepseek.com/harness/>) does not need this plugin** — use its own UI
|
|
123
|
+
or `dsh web`. This plugin is a *terminal* UI and must run on a real TTY; the launcher the desktop app puts on
|
|
124
|
+
your PATH (`DeepSeek Harness.exe` with `ELECTRON_RUN_AS_NODE`) is a GUI-subsystem process with no console, so
|
|
125
|
+
`dsh --profile tui` cannot start under it. For a terminal session, install the npm CLI:
|
|
126
|
+
|
|
127
|
+
```bash
|
|
128
|
+
npm i -g @deepseek-ai/dsh # a real console runtime
|
|
129
|
+
dsh --profile tui # from a terminal or an SSH session
|
|
130
|
+
```
|
|
131
|
+
|
|
132
|
+
**Under the desktop app this plugin stays inert rather than failing**: it logs one "inactive here" line through `ctx.logger` and mounts nothing (no locks, no timers, no update check), so the desktop never shows a failed plugin and cannot be broken by it. A profile that would rather fail loudly can set `requireTerminal: true`.
|
|
133
|
+
|
|
134
|
+
The full diagnosis, both desktop defects, the strategy and a copy-paste-ready upstream issue are in [`docs/desktop.md`](docs/desktop.md) and [`docs/upstream-desktop-report.md`](docs/upstream-desktop-report.md).
|
|
135
|
+
|
|
104
136
|
## Requirements
|
|
105
137
|
|
|
106
138
|
- Node.js >= 22.19
|
|
@@ -411,6 +443,8 @@ You can reopen the wizard at any time with:
|
|
|
411
443
|
| `/find [kind] query` | search and jump to the full matching message (`thinking` `plan` `subagent` `reply` `prompt` `tool`), which is also selected. `Ctrl+/` or `Alt+/` opens it |
|
|
412
444
|
| `/copy` | copy the selected card or reply **as written** to the local clipboard (latest reply if none is selected; OSC 52). The selection survives, so pressing it twice copies the same thing. Inside a full view the copy key (`Ctrl+Shift+C`) takes **the body on screen** — a tool body, a changes diff, or the reply as written — and the overlay echoes the confirmation |
|
|
413
445
|
| `/retryauth [on\|off]` | auto-retry once when the *provider* rejects a request (HTTP 401/403 while a local credential is configured); off by default. The three-step diagnosis is in [`docs/remote-ops.md`](docs/remote-ops.md) §4.8 |
|
|
446
|
+
| `/theme [name]` | palette: `default` / `catppuccin` / `gruvbox` / `mono` (emits no colour at all — bold, dim and underline carry the differences). `/theme` lists them and marks the current one; the choice is remembered, and `DSH_TUI_THEME` overrides it for one launch |
|
|
447
|
+
| Question dialog | ↑/↓ moves the highlight and `●` marks what Enter will submit; in a multi-select, Space (or a digit/letter) ticks a row (`✓`), Enter submits the ticked set (or the highlighted row if none is ticked), Esc cancels |
|
|
414
448
|
| `Ctrl+G` / `Alt+N` | next search hit; `Alt+P` previous |
|
|
415
449
|
| `Esc` | drop selection → scroll to bottom → cancel the running turn |
|
|
416
450
|
| `Ctrl+C` | cancel the running turn; press twice when idle to exit |
|