dsh-ssh-tui 0.5.0 → 0.5.2

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 CHANGED
@@ -69,7 +69,7 @@ Reproducible, no model in the loop: `npm run screenshots:slow` writes
69
69
  ## Requirements
70
70
 
71
71
  - Node.js >= 22.19
72
- - `@deepseek-ai/dsh` CLI: `npm i -g @deepseek-ai/dsh`
72
+ - `@deepseek-ai/dsh` CLI: `npm i -g @deepseek-ai/dsh` (verified on `0.1.2-rc.1`. `0.1.3-alpha.2` / `0.1.5-alpha.1` are incompatible: session persistence moved to a handle API and live tokens moved from `assistant/chunk` to `agent/assistant-stream`. `0.1.3-alpha.1` exists only as a GitHub tag and was never published to npm)
73
73
  - pnpm (used by `dsh plugin` to manage profile dependencies)
74
74
 
75
75
  ## Install
@@ -452,8 +452,8 @@ the round-trip. `DSH_TUI_PAINT_MS` always wins (40–1000). The stats line
452
452
  starts with `SSH ●●●○ 90ms` (1 pip red, 2 yellow, 3+ green). The probe
453
453
  does not write into the transcript.
454
454
 
455
- Hangup cancels a running turn, flushes the session log, and keeps the Host.
456
- `--resume` attaches to that process; do not start a second Host.
455
+ Idle hangup exits the Host. A busy turn keeps it; `--resume` attaches to that
456
+ process. Do not start a second Host.
457
457
 
458
458
  ## Development
459
459
 
package/README.md CHANGED
@@ -87,7 +87,7 @@ dsh --profile tui
87
87
  ## 环境要求
88
88
 
89
89
  - Node.js ≥ 22.19
90
- - DeepSeek Harness CLI:`npm i -g @deepseek-ai/dsh`
90
+ - DeepSeek Harness CLI:`npm i -g @deepseek-ai/dsh`(已验证 `0.1.2-rc.1`。`0.1.3-alpha.2` / `0.1.5-alpha.1` 不兼容:会话 persistence 改成 handle API,流式输出从 `assistant/chunk` 改到 `agent/assistant-stream`。`0.1.3-alpha.1` 只在 GitHub 有 tag,npm 未发布,无法本地装包验证)
91
91
  - pnpm(`dsh plugin` 通过 pnpm 管理 profile 依赖)
92
92
  - 支持 ANSI 的终端(推荐 SSH 直连;Windows 用 PowerShell / Windows Terminal)
93
93
 
@@ -364,7 +364,7 @@ src/session-lock.ts 同会话防双开
364
364
  src/update-check.ts npm 最新版提示(不自动升级)
365
365
  src/tui.ts 终端渲染、交互、统计、标题/铃声
366
366
  src/i18n/ 中英界面字典(/language、DSH_TUI_LANG)
367
- cordis.patch.yml dsh bundle patch(挂载 TUI agent-presets
367
+ cordis.patch.yml dsh bundle patch(仅 insert ssh-tui-startup / ssh-tui
368
368
  scripts/ 安装 / 卸载 / 验证脚本
369
369
  ```
370
370
 
package/cordis.patch.yml CHANGED
@@ -1,88 +1,11 @@
1
1
  # dsh-ssh-tui — SSH-friendly interactive terminal mode over dsh-base.
2
2
  #
3
- # A patch replaces the targeted row's whole `config`, so each overridden row
4
- # restates every key it owns. Later layers (profile cordis.patch.yml,
5
- # $DSH_HOME/cordis.patch.yml, --patch overlays) can re-patch any of these rows.
6
-
7
- # The persona section keeps identity and behavior; tool plugins own tool
8
- # guidance. The loop resolves {{model}} from the agent configuration.
9
- - id: system-prompt
10
- config:
11
- persona: >-
12
- You are a coding agent powered by the {{model}} model. Your working
13
- directory is {{cwd}}. Verify your work by running the code or tests.
14
- Keep answers brief and factual.
15
-
16
- # A patch replaces the targeted row's whole `config`, so restating `root`
17
- # keeps the official HMR row complete while the TUI keeps module reload off.
18
- # The launcher's watch-only fallback still keeps user patch layers live.
19
- - id: hmr
20
- disabled: true
21
- config:
22
- root: ['.']
23
-
24
- - id: tools
25
- config:
26
- # 0.1.2 renamed the tools-mode value `code` → `ptc` with no alias.
27
- # Map either env value onto the schema this dsh install actually accepts.
28
- mode: !!js (function () { var mode = process.env.DSH_TOOLS_MODE; if (mode !== 'code' && mode !== 'ptc') return mode; try { var req = process.getBuiltinModule('module').createRequire(ctx.baseUrl || process.cwd() + '/'); var ver = req('@deepseek-ai/dsh-tools/package.json').version || ''; if (!/^0\.(0|1)\.(0|1)/.test(ver)) return 'ptc'; return 'code' } catch (err) { if (mode === 'code') return 'ptc'; return mode } })()
29
-
30
- # The `main` agent is created by the TUI plugin itself after the loader
31
- # settles, so it can read the saved default provider/model from
32
- # `agent-default-model` without a boot-time race. The base `agent-loop` row
33
- # stays mounted (empty) because it owns the agent factory.
34
-
35
- # Full thinking at max effort on every request. Key and endpoint stay
36
- # unconfigured here: both resolve per request from the `llm-deepseek:`
37
- # settings section, the credential store, and DEEPSEEK_BASE_URL.
38
- - id: llm-deepseek
39
- config:
40
- thinking: enabled
41
- reasoningEffort: max
42
-
43
- # Subagents follow the parent session's provider and default to the
44
- # lightweight model. The TUI's /submodel and /subeffort commands can override
45
- # both model and reasoning effort at runtime through the request waterfall.
46
- - id: tool-subagent
47
- config:
48
- provider: spawn
49
- toolName: subagent
50
- backgroundMode: continuable
51
- agentOptions:
52
- model: deepseek-v4-flash
53
-
54
- - id: tool-subagent-fork
55
- config:
56
- provider: fork
57
- toolName: subagent_fork
58
- backgroundMode: one-shot
59
- agentOptions:
60
- model: deepseek-v4-flash
3
+ # DSH STORE requires an additive Bundle Patch: unique plugin-owned entry IDs
4
+ # only, no @deepseek-ai/* names, and no disable/replace of official rows.
5
+ # Persona, HMR, tools-mode, DeepSeek thinking, and subagent defaults stay with
6
+ # the profile / dsh-base composition; this patch only mounts the TUI.
61
7
 
62
8
  - insert:
63
- # The agent-mode roster (standard / PTC / minimal / cordis / routing-suite).
64
- # The launcher injects the shipped preset root into this row when it is
65
- # present.
66
- - id: agent-presets
67
- name: '@deepseek-ai/dsh-agent-presets'
68
- config:
69
- default: standard
70
-
71
- # Host-plane PTC runtime used by the shipped `ptc` preset. Absent on
72
- # dsh-base; web/headless insert it themselves. Keep it optional so an
73
- # older dsh install without the package still boots standard mode.
74
- # Disabled when the package is not installed (older dsh 0.1.1 runtimes
75
- # still boot; 0.1.2's ptc preset can mount once the worker is on disk).
76
- - id: code-runtime
77
- name: '@deepseek-ai/dsh-code-runtime-worker-thread'
78
- disabled: !!js (function () { try { process.getBuiltinModule('module').createRequire(ctx.baseUrl || process.cwd() + '/').resolve('@deepseek-ai/dsh-code-runtime-worker-thread'); return false } catch (err) { return true } })()
79
-
80
- # Host-owned subagent model selection settings sampled by standard/ptc presets.
81
- # Keep it optional so an older dsh install without the package still boots.
82
- - id: subagent-model-selection-settings
83
- name: '@deepseek-ai/dsh-tool-subagent/model-selection-settings'
84
- disabled: !!js (function () { try { process.getBuiltinModule('module').createRequire(ctx.baseUrl || process.cwd() + '/').resolve('@deepseek-ai/dsh-tool-subagent/model-selection-settings'); return false } catch (err) { return true } })()
85
-
86
9
  - id: ssh-tui-startup
87
10
  name: 'dsh-ssh-tui/startup'
88
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-ssh-tui",
3
- "version": "0.5.0",
3
+ "version": "0.5.2",
4
4
  "description": "SSH-friendly interactive terminal TUI plugin for DeepSeek Harness",
5
5
  "keywords": [
6
6
  "deepseek-harness",
@@ -54,6 +54,16 @@
54
54
  "dsh": {
55
55
  "bundle": {
56
56
  "patch": "./cordis.patch.yml"
57
+ },
58
+ "compatibility": {
59
+ "dsh": ">=0.1.1-rc.2 <0.1.3",
60
+ "dshReleases": {
61
+ "0.1.2-rc.1": "compatible",
62
+ "0.1.3-alpha.1": "unknown",
63
+ "0.1.3-alpha.2": "incompatible",
64
+ "0.1.5-alpha.1": "incompatible"
65
+ },
66
+ "profiles": ["tui"]
57
67
  }
58
68
  },
59
69
  "scripts": {