dsh-code 0.9.1 → 1.0.0

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.
Files changed (59) hide show
  1. package/README.en.md +29 -13
  2. package/README.md +264 -248
  3. package/bin/deepseek.mjs +100 -6
  4. package/cordis.patch.yml +29 -1
  5. package/lib/index.mjs +2223 -687
  6. package/lib/startup.mjs +21 -11
  7. package/lib/{theme-BEi4i_aN.mjs → theme-DCT8Y2xf.mjs} +13 -9
  8. package/lib/types/app.d.ts +66 -14
  9. package/lib/types/attachments.d.ts +7 -0
  10. package/lib/types/editor.d.ts +6 -0
  11. package/lib/types/fork.d.ts +8 -0
  12. package/lib/types/git-workflow.d.ts +23 -0
  13. package/lib/types/index.d.ts +6 -0
  14. package/lib/types/kernel-panels.d.ts +39 -0
  15. package/lib/types/keyboard.d.ts +43 -0
  16. package/lib/types/mentions.d.ts +28 -38
  17. package/lib/types/presets.d.ts +1 -3
  18. package/lib/types/provider-settings.d.ts +16 -0
  19. package/lib/types/render/animations.d.ts +10 -39
  20. package/lib/types/render/editor.d.ts +137 -0
  21. package/lib/types/render/export.d.ts +1 -1
  22. package/lib/types/render/lines.d.ts +6 -2
  23. package/lib/types/render/markdown.d.ts +3 -1
  24. package/lib/types/render/projection.d.ts +29 -3
  25. package/lib/types/render/status.d.ts +5 -12
  26. package/lib/types/session-directory.d.ts +1 -3
  27. package/lib/types/startup.d.ts +14 -11
  28. package/lib/types/store.d.ts +11 -9
  29. package/lib/types/subagents.d.ts +3 -3
  30. package/lib/types/theme.d.ts +14 -1
  31. package/lib/types/version.d.ts +15 -2
  32. package/package.json +153 -141
  33. package/src/app.ts +4455 -3917
  34. package/src/attachments.ts +44 -0
  35. package/src/editor.ts +51 -0
  36. package/src/fork.ts +31 -0
  37. package/src/git-workflow.ts +87 -0
  38. package/src/index.ts +1510 -1374
  39. package/src/internals.ts +14 -1
  40. package/src/kernel-panels.ts +914 -798
  41. package/src/keyboard.ts +125 -0
  42. package/src/mentions.ts +72 -117
  43. package/src/presets.ts +1 -4
  44. package/src/provider-settings.ts +94 -0
  45. package/src/render/animations.ts +25 -55
  46. package/src/render/editor.ts +398 -0
  47. package/src/render/export.ts +79 -79
  48. package/src/render/lines.ts +342 -236
  49. package/src/render/markdown.ts +99 -26
  50. package/src/render/projection.ts +102 -19
  51. package/src/render/status.ts +713 -650
  52. package/src/render/text.ts +150 -150
  53. package/src/render/tool-detail.ts +3 -1
  54. package/src/session-directory.ts +3 -3
  55. package/src/startup.ts +136 -119
  56. package/src/store.ts +23 -11
  57. package/src/subagents.ts +13 -5
  58. package/src/theme.ts +214 -206
  59. package/src/version.ts +58 -1
package/README.en.md CHANGED
@@ -7,6 +7,7 @@ English | [中文](README.md)
7
7
  <p align="center"><img alt="Typing SVG" src="https://readme-typing-svg.herokuapp.com?font=JetBrains+Mono&amp;weight=500&amp;size=22&amp;duration=4000&amp;pause=700&amp;color=4176E6&amp;center=true&amp;vCenter=true&amp;width=680&amp;lines=DeepSeek+Harness+Code;DSH+%E5%86%85%E6%A0%B8%E7%9A%84%E7%BB%88%E7%AB%AF%E7%BC%96%E7%A0%81%E7%95%8C%E9%9D%A2"></p>
8
8
  <p align="center">
9
9
  <a href="https://github.com/deepseek-ai/deepseek-harness"><img alt="DeepSeek Harness" src="https://img.shields.io/badge/DeepSeek-Harness-4176E6?style=for-the-badge&amp;logo=deepseek&amp;logoColor=white&amp;labelColor=1c1917"></a>
10
+ <a href="https://www.npmjs.com/package/@deepseek-ai/dsh"><img alt="dsh version" src="https://img.shields.io/badge/dsh-0.1.0--rc.8-4176E6?style=for-the-badge&amp;logo=deepseek&amp;logoColor=white&amp;labelColor=1c1917"></a>
10
11
  <a href="https://github.com/UNLINEARITY/dsh-code/stargazers"><img alt="GitHub stars" src="https://img.shields.io/github/stars/UNLINEARITY/dsh-code?label=Stars&amp;style=for-the-badge&amp;logo=github&amp;logoColor=white&amp;color=4176E6&amp;labelColor=1c1917"></a>
11
12
  <a href="https://www.npmjs.com/package/dsh-code"><img alt="npm version" src="https://img.shields.io/npm/v/dsh-code?label=npm&amp;style=for-the-badge&amp;logo=npm&amp;color=cb3837&amp;labelColor=1c1917"></a>
12
13
  <a href="https://github.com/UNLINEARITY/dsh-code/blob/main/LICENSE"><img alt="License" src="https://img.shields.io/github/license/UNLINEARITY/dsh-code?label=License&amp;style=for-the-badge&amp;logo=opensourceinitiative&amp;color=4176E6&amp;labelColor=1c1917"></a>
@@ -34,22 +35,27 @@ The interface follows familiar terminal conventions, while runtime behavior cont
34
35
 
35
36
  ## 2. Quick start
36
37
 
37
- Requires Node `^22.19 || >=24` and the preview `dsh` CLI. `DEEPSEEK_API_KEY` is not a startup prerequisite: the TUI, sessions, and non-model features remain available without it; press `a` in `/model` to add an API key through the Harness credentials service.
38
+ Requires Node `^22.19 || >=24` and the preview `dsh` CLI (current line: `@deepseek-ai/dsh@0.1.0-rc.8`). `DEEPSEEK_API_KEY` is not a startup prerequisite: the TUI, sessions, and non-model features remain available without it; press `a` in `/model` to add an API key through the Harness credentials service.
39
+
40
+ ### 1. Install or update
41
+
42
+ First install and updates use the same commands:
38
43
 
39
44
  ```sh
40
- npm install -g @deepseek-ai/dsh dsh-code
45
+ npm install -g @deepseek-ai/dsh@0.1.0-rc.8 dsh-code@1.0.0
41
46
  npm install -g pnpm
42
- dsh plugin --profile cli add dsh-code@0.9.1
47
+ dsh plugin --profile cli add dsh-code@1.0.0
43
48
  ```
44
49
 
45
- > Note: pnpm ignores packages published less than 24 hours ago, so pin `dsh-code@0.9.1` on the release day; the version can be omitted afterwards. npm installs are not affected.
50
+ > Note: pnpm ignores packages published less than 24 hours ago, so pin `dsh-code@1.0.0` on the release day; the version can be omitted afterwards. npm installs are not affected.
51
+ >
52
+ > Version alignment: dsh-code 1.0.x builds against the dsh `0.1.0-rc.8` plugin line (all peer dependencies are `^0.1.0-rc.8`). Keep the global dsh CLI and dsh-code on the same release line so the host and the plugin stay aligned.
46
53
 
47
- ### Updating
54
+ ### DSH-Code wrapper
48
55
 
49
- ```sh
50
- npm install -g dsh-code@0.9.1
51
- dsh plugin --profile cli add dsh-code@0.9.1
52
- ```
56
+ DSH-Code is a terminal wrapper over DeepSeek Harness. It does not replace Harness services for Agent, sessions, models, tools, approvals, or persistence; the `cli` profile composes those services with the terminal bundle. `deepseek` and `dsh-code` are convenience aliases for `dsh --profile cli`.
57
+
58
+ ### 2. launching
53
59
 
54
60
  Available launch commands:
55
61
 
@@ -89,6 +95,11 @@ dsh --profile cli --mode code # start with an Agent Preset
89
95
  dsh --profile cli --continue # resume the newest session for this directory
90
96
  dsh --profile cli --resume abc123 # resume by id or unique prefix
91
97
  dsh --profile cli --session my-id # start a fresh session with an explicit id
98
+ deepseek setup # mount the current release in the cli profile
99
+ deepseek doctor # check Node, DSH, profile, and composition
100
+ deepseek completion powershell # generate shell completion
101
+ deepseek update # check available versions only
102
+ deepseek update --apply # explicitly update the global install
92
103
  ```
93
104
 
94
105
  Inside the TUI:
@@ -97,9 +108,13 @@ Inside the TUI:
97
108
  | --- | --- |
98
109
  | `/new [preset]` | Create and enter another session without restarting the terminal |
99
110
  | `/resume [id\|prefix]` | Search root sessions or all conversations; filter by cwd, order, and density |
111
+ | `/fork [event-seq]` | Create a resumable ordinary fork from a completed turn containing the event |
100
112
  | `/mode [preset]` | Inspect or select the blank session's Agent composition |
101
- | `/model` | Switch among models from the live LLM registry; press `a` to manage providers and API keys |
113
+ | `/model` | Switch among live-registry models; press `a` to manage providers, then `Tab` to edit URL, models, and windows |
102
114
  | `/plugin [query]` | Inspect loader entries, enabled state, module identity, and fiber phase |
115
+ | `/diff [--staged\|ref]` | Inspect the complete Git diff by file; left/right switches files |
116
+ | `/review [--staged\|ref]` | Submit a bounded code review after switching to `read-only` permissions |
117
+ | `/copy` | Copy the latest complete assistant response |
103
118
  | `/permission <name>` | Change the permission preset; Shift+Tab cycles presets |
104
119
  | `/help` | Browse local commands, Harness commands, skills, and key bindings |
105
120
  | `Ctrl+O` | Open the exclusive history detail view; switch entries and scroll all content |
@@ -107,7 +122,7 @@ Inside the TUI:
107
122
  | `@` | Mention workspace files or bounded snapshots of persisted sessions |
108
123
  | `Esc` / `Ctrl+C` | Close the topmost surface or interrupt the active turn |
109
124
 
110
- The `/model` provider panel reads only credential configuration, source, and writability facts. Typed keys stay masked and are handed directly to Harness persistence. Keys supplied by the launch environment are shown as read-only and cannot be overwritten or removed in the TUI.
125
+ Press `a` in `/model` to manage providers; press `Tab` on a provider to edit its endpoint URL, explicit model allow-list, and per-model context/output windows. Typed API keys stay masked and are handed directly to Harness persistence. Keys supplied by the launch environment are read-only and cannot be overwritten or removed in the TUI.
111
126
 
112
127
  ## 4. Features
113
128
 
@@ -116,17 +131,18 @@ The `/model` provider panel reads only credential configuration, source, and wri
116
131
  - Per-session Agent Presets for tools, prompt sections, skills, compaction, plan mode, and delegation
117
132
  - Live slash-command and skill discovery from shared Harness registries
118
133
  - Read-only Cordis loader diagnostics through `/plugin`
119
- - Model routing through the live LLM registry, restored per persisted session; `/model` can add or rotate keys, remove writable keys, and delete user-added provider profiles
134
+ - Model routing through the live LLM registry, restored per persisted session; `/model` can add or rotate keys, remove writable keys, delete user-added provider profiles, and set an endpoint, explicit model allow-list, and token windows
120
135
  - Plans, goals, todos, permissions, sandbox state, subagents, and runtime steering
121
136
 
122
137
  ### 2. Sessions and context
123
138
 
124
- - `/new`, `/resume`, `--continue`, and explicit session identifiers without remounting Ink
139
+ - `/new`, `/resume`, `/fork`, `--continue`, and explicit session identifiers without remounting Ink
125
140
  - Codex-style searchable resume panel with root/all-conversation, cwd, order, and density filters
126
141
  - Bare launches defer session creation until your first real input; quitting early leaves nothing behind
127
142
  - Global input recall: Up/Down walks past prompts across sessions, and `/history` searches and fills the composer
128
143
  - Lazy title snapshots and explicitly loaded, fully scrollable transcripts
129
144
  - Read-only subagent conversation inspection and bounded `@` session references
145
+ - Initial prompts and repeated `--image`; Harness persists image bytes in its attachment store and records content-addressed references in session events
130
146
  - Markdown export, persistent titles, context occupancy, cache, token, TTFT, and timing metrics
131
147
 
132
148
  ### 3. Approvals and interaction