dsh-explorer 0.0.0-stage → 0.1.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.
- package/LICENSE +22 -0
- package/README.md +106 -2
- package/cordis.patch.yml +5 -0
- package/icon.svg +7 -0
- package/lib/client.js +2814 -0
- package/lib/index.js +747 -0
- package/package.json +92 -4
- package/src/client/ExplorerContextMenu.tsx +159 -0
- package/src/client/ExplorerHeader.tsx +75 -0
- package/src/client/ExplorerOptionsModal.tsx +243 -0
- package/src/client/ExplorerRow.tsx +240 -0
- package/src/client/ExplorerSearch.tsx +42 -0
- package/src/client/ExplorerView.tsx +1139 -0
- package/src/client/api.ts +121 -0
- package/src/client/conversation-draft.ts +635 -0
- package/src/client/css-modules.d.ts +5 -0
- package/src/client/drag-drop.ts +209 -0
- package/src/client/explorer.module.css +628 -0
- package/src/client/index.tsx +160 -0
- package/src/client/options.ts +59 -0
- package/src/client/vscode-theme.tsx +250 -0
- package/src/config.ts +11 -0
- package/src/fs-operations.ts +116 -0
- package/src/fs-tree.ts +155 -0
- package/src/fs-watch.ts +179 -0
- package/src/git-status.ts +161 -0
- package/src/index.ts +165 -0
- package/src/path-security.ts +22 -0
- package/src/session-path.ts +35 -0
- package/src/wire.ts +63 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 wwwroot
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
22
|
+
|
package/README.md
CHANGED
|
@@ -1,3 +1,107 @@
|
|
|
1
|
-
#
|
|
1
|
+
# dsh-explorer
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Native workspace file explorer plugin engineered specifically for DeepSeek Harness (DSH). Bridges local workspace navigation and AI-assisted conversation workflows with seamless chat referencing, fluid animations, and editor tab integration.
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
<img src="./assets/preview.png" alt="dsh-explorer preview" width="850" />
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
---
|
|
10
|
+
|
|
11
|
+
## Key Features
|
|
12
|
+
|
|
13
|
+
### 1. Conversational Chat Integration
|
|
14
|
+
* **Precision Drag & Drop**: Drop files or folders into the DSH chat composer with exact text cursor / insertion point positioning, preserving existing words without clobbering text.
|
|
15
|
+
* **Smart Mention Chips**: Files dropped or inserted appear as `@path/to/file` chips, and directories appear with trailing slash `@path/to/folder/`.
|
|
16
|
+
* **Modifier Drop Snippets**: Hold **Alt** or **Shift** while dropping a file to embed its full source code directly into the chat prompt as a syntax-highlighted markdown code block.
|
|
17
|
+
* **One-Click Mentioning**: Click the `@` hover icon on any row or select *Insert Mention to Chat* from the context menu to insert the reference at your active cursor.
|
|
18
|
+
|
|
19
|
+
### 2. Tab Navigation & Workspace Viewing
|
|
20
|
+
* **Double-Click to Open**: Double-click any file to launch it directly into a new DSH editor tab (seamlessly integrating with `betterSidebar`, `sidebarRight`, or native workspace tabs).
|
|
21
|
+
* **Context Menu "Open in New Tab"**: Right-click any file to open it in an editor tab.
|
|
22
|
+
* **Instant Filter Search**: Top search bar filters files and folders in real time with instant path matching.
|
|
23
|
+
|
|
24
|
+
### 3. Motion Collapse Transitions
|
|
25
|
+
* **Fluid Grid Animations**: Smooth CSS grid accordion animations when expanding and collapsing folders.
|
|
26
|
+
* **Rotating Chevrons**: Responsive chevron rotation synchronized with folder open/close state.
|
|
27
|
+
* **Toggleable in Preferences**: Easily disable animations in the Options modal for instantaneous snap navigation.
|
|
28
|
+
|
|
29
|
+
### 4. Git Status Indicators
|
|
30
|
+
* **Multi-Repo & Monorepo Support**: Automatic detection of git repositories at workspace root or nested sub-repositories across tools and project folders.
|
|
31
|
+
* **Parent Folder Bubble-Up**: Ancestor directories reflect modified (`M`), untracked (`U`), or deleted (`D`) states of their children, so changes are visible without needing to expand every folder.
|
|
32
|
+
* **Refined Pill Badges**: Right-aligned status badges with subtle tint backgrounds (`M` in warm amber, `U` in soft green, `D` in coral red).
|
|
33
|
+
* **Toggleable in Preferences**: Cleanly hide all Git colors and badges with one switch in the Options modal.
|
|
34
|
+
|
|
35
|
+
### 5. Compact Folders
|
|
36
|
+
* **Single-Child Folder Chaining**: Single-child directory hierarchies (such as `src/client/ui`) are collapsed into a single compact line.
|
|
37
|
+
* **Instant Responsive Toggle**: Turn Compact Folders on or off in the Options modal with immediate, zero-lag visual re-rendering.
|
|
38
|
+
|
|
39
|
+
### 6. Scale & Density Customization
|
|
40
|
+
* **Density Presets**: Switch between **Compact** (20px rows), **Normal** (24px rows), and **Relaxed** (28px rows).
|
|
41
|
+
* **Continuous Zoom Slider**: Zoom the entire tree from **75%** to **135%** scale, automatically adjusting row heights, font sizes, icon sizes, and indentation step guides.
|
|
42
|
+
* **Persistent Preferences**: All display options are saved to local storage and restored automatically.
|
|
43
|
+
|
|
44
|
+
### 7. Language Icons & Visual Hierarchy
|
|
45
|
+
* **Color-Coded File Types**: Hand-tuned colors and badges for TypeScript, JavaScript, Python, Rust, Go, C/C++, HTML, CSS, JSON, Markdown, YAML, Docker, Git, and shell scripts.
|
|
46
|
+
* **Directory Guides**: Visual indent guide lines showing nesting levels clearly across deep workspace structures.
|
|
47
|
+
* **Hidden Files Toggle**: Toggle visibility of dotfiles and hidden system configurations.
|
|
48
|
+
|
|
49
|
+
### 8. Complete File Management
|
|
50
|
+
* **Inline Operations**: Hover actions for Mention (@), Copy Relative Path, Rename (F2), and Delete.
|
|
51
|
+
* **Keyboard Navigation**: Full keyboard navigation support (Up / Down arrows, Left / Right collapse / expand, Enter to mention or expand, F2 to rename).
|
|
52
|
+
* **Live File System Watcher**: Instantaneous tree updates via WebSocket server when files are created, modified, or deleted externally.
|
|
53
|
+
|
|
54
|
+
---
|
|
55
|
+
|
|
56
|
+
## Installation
|
|
57
|
+
|
|
58
|
+
### Via DSH Plugin CLI (NPM)
|
|
59
|
+
```sh
|
|
60
|
+
dsh plugin --profile web add dsh-explorer
|
|
61
|
+
```
|
|
62
|
+
*(or use `--profile desktop` for desktop harness)*
|
|
63
|
+
|
|
64
|
+
### Via Source (GitHub)
|
|
65
|
+
```sh
|
|
66
|
+
dsh plugin --profile web add github:wwwroot/dsh-explorer
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### Via cordis.patch.yml
|
|
70
|
+
Add `dsh-explorer` to your profile configuration:
|
|
71
|
+
|
|
72
|
+
```yaml
|
|
73
|
+
- insert:
|
|
74
|
+
- id: dsh-explorer
|
|
75
|
+
name: 'dsh-explorer'
|
|
76
|
+
```
|
|
77
|
+
|
|
78
|
+
---
|
|
79
|
+
|
|
80
|
+
## Development & Building
|
|
81
|
+
|
|
82
|
+
Building the standalone client bundle and host ESM service:
|
|
83
|
+
|
|
84
|
+
```sh
|
|
85
|
+
# Install dev dependencies
|
|
86
|
+
npm install
|
|
87
|
+
|
|
88
|
+
# Build host ESM (lib/index.js) and client bundle (lib/client.js)
|
|
89
|
+
npm run build
|
|
90
|
+
|
|
91
|
+
# TypeScript validation
|
|
92
|
+
npm run typecheck
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Architecture
|
|
98
|
+
|
|
99
|
+
* **Host Service (`src/index.ts`, `src/fs-tree.ts`, `src/git-status.ts`)**: Node.js ESM service running on the DSH Cordis container, providing secure filesystem tree traversal, WebSocket live file-watching, and parallel git status aggregation.
|
|
100
|
+
* **Client Surface (`src/client/index.tsx`, `src/client/ExplorerView.tsx`)**: React UI mounted inside DSH's right sidebar slot (`sidebar.right.panel`), managing reactive tree navigation, drag-and-drop caret tracking, and customizable display preferences.
|
|
101
|
+
* **Self-Contained Distribution**: Build outputs in `lib/` are fully bundled by `esbuild` with inlined CSS modules, requiring zero external client dependencies at runtime.
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## License
|
|
106
|
+
|
|
107
|
+
MIT
|
package/cordis.patch.yml
ADDED
package/icon.svg
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="24" height="24" fill="none">
|
|
2
|
+
<path d="M4 4C4 2.89543 4.89543 2 6 2H14L19 7V17C19 18.1046 18.1046 19 17 19H6C4.89543 19 4 18.1046 4 17V4Z" fill="#29B6F6" fill-opacity="0.2" stroke="#0288D1" stroke-width="1.6" stroke-linejoin="round"/>
|
|
3
|
+
<path d="M13.5 2V7.5H19" stroke="#0288D1" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"/>
|
|
4
|
+
<path d="M8 7H11M8 11H15M8 15H13" stroke="#0288D1" stroke-width="1.6" stroke-linecap="round"/>
|
|
5
|
+
<path d="M8 22H18C19.6569 22 21 20.6569 21 19V8" stroke="#0288D1" stroke-width="1.6" stroke-linecap="round" opacity="0.6"/>
|
|
6
|
+
</svg>
|
|
7
|
+
|