@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 +64 -79
- package/bin/dsh-tui.js +88 -88
- package/cordis.patch.yml +9 -9
- package/cordis.yml +8 -8
- package/lib/types/adapter/standard/descriptor.js +2 -2
- package/lib/types/components/LogoV2.d.ts +1 -1
- package/lib/types/components/LogoV2.js +2 -2
- package/lib/types/dsh-adapter/invariant.js +1 -1
- package/lib/types/dsh-adapter/migrate/cli.js +9 -9
- package/lib/types/dsh-adapter/packaged-presets.d.ts.map +1 -1
- package/lib/types/dsh-adapter/packaged-presets.js +3 -2
- package/lib/types/update.d.ts +2 -2
- package/lib/types/update.d.ts.map +1 -1
- package/lib/types/update.js +33 -32
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="docs/assets/readme/logo-en.svg" alt="dsh-
|
|
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://
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
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
|
-
|
|
97
|
-
|
|
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
|
-
|
|
100
|
-
dsh-
|
|
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
|
-
|
|
106
|
-
|
|
107
|
-
|
|
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
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
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
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
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-
|
|
128
|
-
| `dsh-
|
|
129
|
-
| `dsh-
|
|
130
|
-
| `dsh-
|
|
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-
|
|
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-
|
|
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-
|
|
140
|
-
dsh-
|
|
141
|
-
dsh-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
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
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
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-
|
|
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-
|
|
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-
|
|
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-
|
|
274
|
+
| WeChat group (dsh-cli community 4) | QQ group (ID 572549239) |
|
|
287
275
|
| :---: | :---: |
|
|
288
|
-
| <img src="screenshots/wechat-group.jpg" alt="dsh-
|
|
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-
|
|
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
|
-
[](https://star-history.com/#ccch1mneyyy/dsh-TUI&Date)
|
|
318
303
|
|
|
319
304
|
## License
|
|
320
305
|
|