Bundle
dsh-input-plus
DSH 输入框强化 (DSH Input+): @ file/directory reference and native composer status for the DeepSeek Harness Web UI.
- Source
- WhitePlusMS
- stars
- 4 stars
- License
- MIT
- Updated
- Updated 9 days ago
Readme
# dsh-input-plus
[](https://awesome-dsh-plugin.com)
[中文说明](README-ZH.md)
An input composer enhancement plugin for the DSH Web UI. On the Host side, it builds an index of the active workspace. In the browser, it connects to DSH's official `@` input trigger so files and directories can be searched and inserted into the composer. Type `/h` to open a candidate menu of previous prompts from the current Session.


## Features
### `@` file and directory path selection
Type `@` in the DSH composer, then continue with a file name, directory name, or path fragment. The candidate menu lists files and directories from the current Session workspace. After selection, the draft keeps a plain-text path reference, for example:
```text
@src/contract.ts
```
The reference contains only the path. Sending the message does not read the file, expand the directory, or generate a directory manifest. When the model needs the target, it can inspect the path with the native workspace tools provided by the current Session.
After selecting a directory, you can continue with an instruction:
```text
@src Find the code responsible for candidate ranking
```
The official input-trigger pipeline owns the candidate menu, caret, and write-back behavior. This plugin does not replace the official textarea, send button, or candidate menu, and it does not take over native arrow-key behavior.
### `/h` input history
Type `/h` in the composer to open the history candidate menu through DSH's official `/` input trigger. You can continue typing a keyword to filter the results, for example:
```text
/h
```
The candidates contain only user prompts that were successfully submitted in the current Session, ordered from most recent to oldest.
## Installation
Requires DSH `0.1.0-rc.6` or a compatible DSH Web profile. Install through the official DSH profile plugin flow:
```bash
dsh plugin --profile web add https://github.com/WhitePlusMS/dsh-input-plus/archive/refs/tags/v0.0.2.tar.gz
```
GitHub tag installation consumes the committed `lib/` Host and Client artifacts directly.
Before creating or updating an installation tag, run `pnpm run build` and include the
generated `lib/` directory in the commit; installing a source-only archive will fail
because the package entry points resolve to `lib/index.js` and `lib/client.js`.
## Configuration
The plugin registers the `input-plus` settings namespace. The options used by workspace indexing and path resolution are:
| Option | Default | Range | Description |
|---|---:|---:|---|
| `maxIndexDepth` | `3` | `0–10` | Maximum workspace indexing depth |
| `maxIndexEntries` | `200` | `1–2000` | Maximum number of entries retained per candidate index |
| `referenceRoot` | `''` | Absolute path or empty | Overrides the current Session workspace; empty uses the Session workspace |
## Development
Requirements: Node.js 18+ and pnpm.
```bash
pnpm install
# TypeScript type checking
pnpm run typecheck
# Run the in-process test suite
pnpm test
# Build the Host and browser bundles
pnpm run build
# Check that lib/client.js is synchronized with the source
pnpm run check:client
```
The build has two parts:
- `tsc -p tsconfig.build.json` generates the Host code and declaration files;
- `scripts/build-client.mjs` uses the TypeScript Compiler API to generate `lib/client.js` in-process, avoiding an esbuild service subprocess in restricted environments.
## Repository layout
```text
src/
index.ts Host plugin entry, settings, and HTTP routes
contract.ts Minimal Host/Client wire contract
host/
files.ts Workspace indexing, matching, and path safety
git.ts Git modification state
settings.ts Settings schema and defaults
workspace.ts Session workspace resolution
client/
index.ts Browser plugin entry
input-source.ts @ candidate source and path write-back
history-source.ts /h and /history candidate source and two-line menu styles
history-recorder.ts Current Session prompt recording
find.ts Client candidate matching and ranking
file-icons.ts Candidate icons
input-status.ts Composer status dock
scripts/
build-client.mjs Browser bundle builder
test-runner.ts In-process test entry
```
## License
MIT
Install
dsh plugin --profile web add github:WhitePlusMS/dsh-input-plus#cee1c7907e7f5ad1b38971d316d39c07d787967d
Profile: web
With the hub plugin installed, ask your agent to install it by name — it resolves the same plan shown here.
dsh plugin --profile web add github:stvlynn/dsh.fish#path:packages/dsh-plugin-hub
install dsh-input-plus from the hub
- This package builds from source on install. pnpm will ask you to allow its build script — that is permission to run the package’s code on your machine, outside the agent sandbox. Only allow sources you trust.