@askdkc/dsh-cli 0.11.3 → 0.11.4

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.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <p align="center">
2
- <img src="docs/assets/readme/logo-en.svg" alt="dsh-TUI animated whale logo" width="560">
2
+ <img src="docs/assets/readme/logo-en.svg" alt="dsh-cli animated whale logo" width="560">
3
3
  </p>
4
4
 
5
5
  <p align="center">
@@ -7,15 +7,13 @@
7
7
  </p>
8
8
 
9
9
  <p align="center">
10
- <a href="https://www.npmjs.com/package/dsh-cli"><img alt="npm" src="https://img.shields.io/npm/v/dsh-cli?style=flat-square&color=4b6fff"></a>
11
- <a href="https://github.com/askdkc/dsh-TUI-fork/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/askdkc/dsh-TUI-fork/actions/workflows/ci.yml/badge.svg"></a>
10
+ <a href="https://github.com/askdkc/dsh-cli/actions/workflows/ci.yml"><img alt="CI" src="https://github.com/askdkc/dsh-cli/actions/workflows/ci.yml/badge.svg"></a>
12
11
  <a href="LICENSE"><img alt="MIT License" src="https://img.shields.io/badge/license-MIT-263146?style=flat-square"></a>
13
12
  <img alt="Public beta" src="https://img.shields.io/badge/status-public%20beta-7da1de?style=flat-square">
14
- <a href="https://github.com/askdkc/dsh-TUI-fork/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/askdkc/dsh-TUI-fork?style=flat-square&color=4b6fff"></a>
15
- <a href="https://www.npmjs.com/package/dsh-cli"><img alt="npm downloads" src="https://img.shields.io/npm/dm/dsh-cli?style=flat-square&color=4b6fff"></a>
13
+ <a href="https://github.com/askdkc/dsh-cli/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/askdkc/dsh-cli?style=flat-square&color=4b6fff"></a>
16
14
  </p>
17
15
 
18
- # dsh-TUI
16
+ # dsh-cli
19
17
 
20
18
  > An interactive terminal UI plugin for DeepSeek Harness. It ships a
21
19
  > pixel-whale header, live work status, streaming thinking, double-Esc time
@@ -45,13 +43,13 @@ Keys and commands: [Interaction and commands](docs/interaction.en.md). Everythin
45
43
  <div align="center">
46
44
  <picture>
47
45
  <source media="(max-width: 640px)" srcset="docs/assets/readme/preview-en-mobile.svg">
48
- <img src="docs/assets/readme/preview-en.svg" alt="Recorded dsh-TUI session: welcome, completion, help and typing, with animated pixel whale." width="78%">
46
+ <img src="docs/assets/readme/preview-en.svg" alt="Recorded dsh-cli session: welcome, completion, help and typing, with animated pixel whale." width="78%">
49
47
  </picture>
50
48
  </div>
51
49
 
52
50
  ## Featured & Listed
53
51
 
54
- Featured by the **DeepSeek Harness official WeChat account**, listed in the
52
+ The upstream dsh-TUI project was featured by the **DeepSeek Harness official WeChat account** and listed in the
55
53
  [dshfind](https://dshfind.com/en/plugins/ccch1mneyyy/dsh-TUI) plugin
56
54
  directory, and ranked **#7 on [GitHub Trending](https://trendshift.io/repositories/146168)
57
55
  daily** (TypeScript).
@@ -60,12 +58,12 @@ daily** (TypeScript).
60
58
  <table>
61
59
  <tr>
62
60
  <td align="center" valign="middle" width="50%">
63
- <img src="screenshots/wechat-official.png" alt="dsh-TUI featured by the DeepSeek Harness official WeChat account" width="480">
61
+ <img src="screenshots/wechat-official.png" alt="Upstream dsh-TUI featured by the DeepSeek Harness official WeChat account" width="480">
64
62
  <br>
65
63
  <strong>Featured by the official WeChat account</strong>
66
64
  </td>
67
65
  <td align="center" valign="middle" width="50%">
68
- <a href="https://dshfind.com/en/plugins/ccch1mneyyy/dsh-TUI"><img src="https://dshfind.com/api/card/ccch1mneyyy/dsh-TUI?lang=en" alt="dsh-TUI on dshfind" width="420"></a>
66
+ <a href="https://dshfind.com/en/plugins/ccch1mneyyy/dsh-TUI"><img src="https://dshfind.com/api/card/ccch1mneyyy/dsh-TUI?lang=en" alt="Upstream dsh-TUI on dshfind" width="420"></a>
69
67
  <br>
70
68
  <strong>Listed in the dshfind directory</strong>
71
69
  <br><br>
@@ -92,65 +90,68 @@ IDs. It requires matching profile dependencies with `@deepseek-ai/schemastery`
92
90
  3.18.3 or newer; an incompatible schema stops TUI startup with repair guidance
93
91
  instead of showing an uneditable settings page. Older hosts keep their legacy settings scope.
94
92
 
93
+ Install this fork from source into the `dsh-cli` profile. Use Node
94
+ `^22.19 || >=24` and pnpm 11. The final two commands run in a DeepSeek
95
+ Harness source checkout whose dependencies are already installed:
96
+
95
97
  ```sh
96
- # Install the CLI and this plugin globally (ships the dsh-tui command)
97
- npm install -g @deepseek-ai/dsh dsh-cli
98
+ git clone --recurse-submodules https://github.com/askdkc/dsh-cli.git
99
+ cd dsh-cli
100
+ pnpm install --frozen-lockfile
101
+ TMPDIR=/tmp pnpm build
98
102
 
99
- # Start (first run auto-initializes the profile; needs pnpm)
100
- dsh-tui
101
- # Both `dsh-tui` and the short `dst` alias start the same TUI.
102
- dst
103
- ```
103
+ node scripts/with-publish-manifest.mjs npm pack --ignore-scripts
104
+ TARBALL="$PWD/askdkc-dsh-cli-$(node -p "require('./package.json').version").tgz"
104
105
 
105
- Manual alternative: `dsh plugin --profile dsh-tui add dsh-cli`.
106
- The repo's `sh install.sh` runs that step and checks the required commands.
107
- Afterwards `dsh-tui` and `dsh --profile dsh-tui` are equivalent.
106
+ cd ~/DIR/TO/deepseek-harness
107
+ pnpm dsh plugin --profile dsh-cli add "$TARBALL"
108
+ pnpm dsh --profile dsh-cli
109
+ ```
108
110
 
109
- > **New-user note**: pnpm ≥11 blocks dependencies with install scripts by
110
- > default and reports `ERR_PNPM_IGNORED_BUILDS`. Updates skip foreign-platform
111
- > `@img/sharp-*` native packages, saving about 200MB of downloads. `/update`
112
- > and `dsh-tui update` write both settings automatically. No manual step
113
- > needed. Details:
114
- > [Getting started](docs/getting-started.en.md#pnpm-install-script-blocks-and-foreign-platform-natives).
111
+ Replace `~/DIR/TO/deepseek-harness` with your checkout path. The tarball name
112
+ comes from the package's current name, `@askdkc/dsh-cli`, and version. To
113
+ install the optional `dsh-cli` shell command, run
114
+ `npm install -g --legacy-peer-deps "$TARBALL"` after creating the tarball.
115
+ The existing `dsh-tui` and `dst` commands remain compatibility aliases.
116
+ A locally packed fork should be updated by rebuilding and reinstalling the
117
+ archive, rather than by using the registry-backed `/update` command.
115
118
 
116
- After startup the TUI checks for newer versions in the background. It never
117
- blocks the first frame. Type `/update` for a one-shot upgrade. It restarts
118
- automatically and resumes the current session. See
119
- [Getting started](docs/getting-started.en.md) for the profile lifecycle,
120
- source builds, and troubleshooting, including migration from the former
121
- `dsh-cc-tui` package.
119
+ pnpm ≥11 may report `ERR_PNPM_IGNORED_BUILDS` for dependencies with install
120
+ scripts. See [Getting started](docs/getting-started.en.md#pnpm-install-script-blocks-and-foreign-platform-natives)
121
+ for the native build settings. The built-in `/update` and `dsh-cli update`
122
+ commands use the registry, so use the tarball procedure above to update this fork.
122
123
 
123
124
  ### CLI
124
125
 
125
126
  | Command | Purpose |
126
127
  | --- | --- |
127
- | `dsh-tui` / `dst` | Start the TUI; `dst` is a short alias for the same program |
128
- | `dsh-tui --resume [id]` · `dsh-tui update` · `dsh-tui doctor` | Resume a session · update the profile and align the launcher · pre-flight environment checks |
129
- | `dsh-tui safe` | Read-only diagnostics, plugin inventory and repair guidance; `safe --rescue` builds a clean rescue profile |
130
- | `dsh-tui version` · `dsh-tui help` | Launcher and profile versions and usage; both work even without a `dsh` install |
128
+ | `dsh-cli` / `dst` | Start the TUI; `dst` is a short alias for the same program |
129
+ | `dsh-cli --resume [id]` · `dsh-cli update` · `dsh-cli doctor` | Resume a session · registry update · pre-flight environment checks |
130
+ | `dsh-cli safe` | Read-only diagnostics, plugin inventory and repair guidance; `safe --rescue` builds a clean rescue profile |
131
+ | `dsh-cli version` · `dsh-cli help` | Launcher and profile versions and usage; both work even without a `dsh` install |
131
132
 
132
- Other arguments go to `dsh --profile dsh-tui`. Safe mode: [Getting started](docs/getting-started.en.md).
133
+ Other arguments go to `dsh --profile dsh-cli`. Safe mode: [Getting started](docs/getting-started.en.md).
133
134
 
134
- ### Importing conversations from other agents (`dsh-tui migrate`)
135
+ ### Importing conversations from other agents (`dsh-cli migrate`)
135
136
 
136
137
  Bring Claude Code, Codex, OMP, zcode, or Grok Build conversation histories into the DSH session store, then browse and resume them by their original working directory via `/resume`:
137
138
 
138
139
  ```sh
139
- dsh-tui migrate # list importable counts per agent (writes nothing)
140
- dsh-tui migrate claude-code # import every Claude Code conversation (likewise codex / omp / zcode / grok-build)
141
- dsh-tui migrate codex --dry-run # preview what would land, write nothing
140
+ dsh-cli migrate # list importable counts per agent (writes nothing)
141
+ dsh-cli migrate claude-code # import every Claude Code conversation (likewise codex / omp / zcode / grok-build)
142
+ dsh-cli migrate codex --dry-run # preview what would land, write nothing
142
143
  ```
143
144
 
144
145
  - **Read-only source**: migration only reads the foreign agent's local store; artifacts are written through the official `JsonlSessionPersistence` backend, so imported sessions are first-class (openable, continuable).
145
146
  - **Idempotent**: one deterministic UUID per source conversation — re-importing skips what is already present instead of stacking duplicates.
146
147
  - **Structure preserved**: user/assistant messages and reasoning traces are rebuilt turn by turn; tool traffic is not migrated (source formats cannot replay it faithfully — the contract is "re-read the conversation", not "resume the task").
147
148
  In-TUI: `/migrate` (optionally `/migrate <agent> [--dry-run]`) runs the same import in a child process and reports through the notification flow.
148
- CLI alternative: `dsh-tui migrate ...` from any shell runs the same import.
149
+ CLI alternative: `dsh-cli migrate ...` from any shell runs the same import.
149
150
  Full guide: [Session migration](docs/migrate.en.md).
150
151
 
151
152
  - More agents (pi, opencode, …) extend the adapter registry as adapters land; grok-build reads `GROK_HOME` when set.
152
153
 
153
- **VS Code**: use the integrated terminal or the `dsh-tui-vscode` extension. See [VS Code guide](docs/vscode.en.md). **Herdr**: run `dsh-tui` in a [Herdr](https://herdr.dev) pane; `idle` / `working` / `blocked` are reported through its local integration API.
154
+ **VS Code**: use the integrated terminal or the `dsh-tui-vscode` extension. See [VS Code guide](docs/vscode.en.md). **Herdr**: run `dsh-cli` in a [Herdr](https://herdr.dev) pane; `idle` / `working` / `blocked` are reported through its local integration API.
154
155
 
155
156
  ## Keybindings & Mouse
156
157
 
@@ -179,7 +180,7 @@ Agent presets, themes, MCP servers, environment variables: [Configuration](docs/
179
180
  ## How It Works
180
181
 
181
182
  ```text
182
- dsh profile → dsh-base → dsh-TUI Cordis patch → agent preset + DSH services
183
+ dsh profile → dsh-base → dsh-cli Cordis patch → agent preset + DSH services
183
184
  → session/event → Channel projection → React components → Ink/Yoga renderer → terminal
184
185
  ```
185
186
 
@@ -204,45 +205,32 @@ Run these commands from a checkout with its submodules initialized (use
204
205
  `git submodule update --init --recursive` if either `vendor/dsh-std` or
205
206
  `dsh-auth` is empty):
206
207
 
208
+ The [Quick Start](#quick-start) includes the complete clone, build, pack,
209
+ and installation commands. Before packing, run the focused checks if you
210
+ changed the source:
211
+
207
212
  ```sh
208
- cd ~/DIR/TO/dsh-TUI
209
- pnpm install --frozen-lockfile
210
- TMPDIR=/tmp pnpm build
213
+ cd ~/DIR/TO/dsh-cli
211
214
  pnpm smoke
212
215
  pnpm verify:package
213
-
214
- node scripts/with-publish-manifest.mjs \
215
- npm pack \
216
- --ignore-scripts
217
-
218
- TARBALL="$PWD/dsh-cli-$(node -p "require('./package.json').version").tgz"
219
- cd ~/DIR/TO/deepseek-harness
220
- pnpm dsh plugin --profile dsh-tui add "$TARBALL"
221
216
  ```
222
217
 
223
- The final command assumes the DeepSeek Harness source checkout has its
224
- dependencies installed. `npm pack` prints the tarball name; `TARBALL` points
225
- to that versioned file in the dsh-TUI checkout. The wrapper temporarily
226
- converts local bundled dependencies into a publishable manifest and restores
227
- the source manifest afterwards. This installs the local archive into the
228
- `dsh-tui` profile; it does not publish it to npm.
229
-
230
- `lib/types/` is ignored generated output. `pnpm build` recompiles it from a
231
- clean output directory and runs the build gates. **Git URL installs are not
232
- supported.** The source manifest keeps `@dsh-std/*` as workspace deps and
233
- `vendor/dsh-std` as a submodule. pnpm ≥11 also refuses git-hosted `prepare`
234
- scripts by default. Install the registry package instead:
235
- `dsh plugin --profile dsh-tui add dsh-cli` for a published
236
- release, or use the local tarball procedure above. Rendering,
237
- questionnaire, or tool-card changes also need the matching regression scripts.
218
+ `npm pack` prints the archive name. `with-publish-manifest.mjs` temporarily
219
+ turns local bundled dependencies into a publishable manifest and restores the
220
+ source manifest afterwards. The archive installs into the `dsh-cli` profile;
221
+ it is not published to npm. If a submodule is missing in an existing checkout,
222
+ run `git submodule update --init --recursive` before installing dependencies.
223
+
224
+ **Git URL package installs are unsupported.** The source manifest contains
225
+ workspace and local links that require this build and pack step.
238
226
 
239
227
  ### Bump the version
240
228
 
241
- Set a new SemVer in the dsh-TUI checkout before building the archive. For
229
+ Set a new SemVer in the dsh-cli checkout before building the archive. For
242
230
  example, replace `0.11.3` below with the intended version:
243
231
 
244
232
  ```sh
245
- cd ~/DIR/TO/dsh-TUI
233
+ cd ~/DIR/TO/dsh-cli
246
234
  npm pkg set version=0.11.3
247
235
  pnpm install --lockfile-only --ignore-scripts
248
236
  git diff -- package.json pnpm-lock.yaml
@@ -253,7 +241,7 @@ lockfile too, then record its new submodule commit in this repository before
253
241
  creating a release. A clean checkout otherwise builds the old submodule
254
242
  revision. Rebuild and pack with the commands above; verify the archive name
255
243
  matches `package.json`. Publishing is separate: the release workflow runs only
256
- for a pushed `vX.Y.Z` tag that exactly matches the dsh-TUI package version.
244
+ for a pushed `vX.Y.Z` tag that exactly matches the dsh-cli package version.
257
245
 
258
246
  ## Plugin Ecosystem
259
247
 
@@ -283,9 +271,9 @@ Everything, bilingual: [docs/README.md](docs/README.md).
283
271
  [Contributor Covenant Code of Conduct](CODE_OF_CONDUCT.en.md) before taking
284
272
  part.
285
273
 
286
- | WeChat group (dsh-TUI community 4) | QQ group (ID 572549239) |
274
+ | WeChat group (dsh-cli community 4) | QQ group (ID 572549239) |
287
275
  | :---: | :---: |
288
- | <img src="screenshots/wechat-group.jpg" alt="dsh-TUI community WeChat group 4 QR code" width="200"> | <img src="screenshots/qq-group.png" alt="dsh-TUI community QQ group QR code" width="200"> |
276
+ | <img src="screenshots/wechat-group.jpg" alt="dsh-cli community WeChat group 4 QR code" width="200"> | <img src="screenshots/qq-group.png" alt="dsh-cli community QQ group QR code" width="200"> |
289
277
 
290
278
  > The WeChat QR code expires roughly every 7 days; if it stops working, use
291
279
  > the QQ group (572549239) or open an issue to nudge us for a refresh.
@@ -294,7 +282,7 @@ Everything, bilingual: [docs/README.md](docs/README.md).
294
282
 
295
283
  > **Windows security warning:** the Windows profile defaults to `danger-full-access` with approval set to `never`, so tools have unrestricted access. Inspect and tighten the profile before starting next to sensitive credentials or in an untrusted repository.
296
284
 
297
- No sandbox of its own: dsh-TUI uses the active DSH profile's filesystem, shell, sandbox and approval policies. Permission presets come from the DSH `permissionPresets` registry.
285
+ No sandbox of its own: dsh-cli uses the active DSH profile's filesystem, shell, sandbox and approval policies. Permission presets come from the DSH `permissionPresets` registry.
298
286
 
299
287
  Details: [Permissions and security boundary](docs/architecture.en.md#permissions-and-security-boundary).
300
288
 
@@ -312,9 +300,6 @@ Details: [Permissions and security boundary](docs/architecture.en.md#permissions
312
300
  Community, related projects, and companion tools built by friends:
313
301
  [see the links page](docs/links.md)
314
302
 
315
- ## Stars
316
-
317
- [![Star History](https://raw.githubusercontent.com/ccch1mneyyy/dsh-TUI/bot-star-history/assets/star-history/star-history.png)](https://star-history.com/#ccch1mneyyy/dsh-TUI&Date)
318
303
 
319
304
  ## License
320
305