返回目录
其他 待识别

dsh-file-explorer

wendi-lok/dsh-file-explorer

File directory card in the DeepSeek Harness Web left sidebar: tree browsing with arrow expand, drive-selection page, interactive breadcrumbs, full-screen toggle that tracks the sidebar width.

Stars
2
Forks
0
Issues
0
更新
4 天前

PROJECT TOPICS

项目标签

PROJECT README

README

dsh-file-explorer

A DeepSeek Harness Web GUI plugin that shows a file directory tree in the left workspace area.

What it adds

  • A 文件目录 / File Explorer toggle button at the bottom of the left sidebar (sidebar.footer.action).
  • A bottom-anchored card that slides up the left sidebar (non-linear easing):
    • half-height by default (just past the middle); a top bar with a full-expand button covers the whole sidebar, plus restore and close;
    • tree browsing: click a row's arrow to expand/collapse subdirectories inline, double-click a folder name to enter it, single-click a file to open it with the host OS;
    • a drive-selection page ("此电脑") — "up" from any drive root lands there, so you can switch disks;
    • a full interactive breadcrumb path chain (wheel-scrollable when it overflows), plus home / up / path editing / refresh / show-hidden / follow-session;
    • clicking the blank sidebar area above the half card collapses it;
    • the card's right edge tracks the sidebar column (ResizeObserver + direct DOM write), so dragging the sidebar handle resizes the card with it.

It is fully additive: nothing shipped is shadowed; closing the panel restores the normal session browser.

Architecture

Half File Role
Host lib/index.js Cordis plugin registering the exact route POST /plugins/file-explorer/fs: one directory level with files and directories (name-sorted, hidden-flagged) plus the {op:"drives"} drive-selection listing. The shipped host.listDirectory wire only returns directories, so this route exists.
Browser lib/client.js Hand-authored window.__ModuleLoader__.load bundle (no build step): registers the footer toggle + overlay card, renders the tree / drives page / breadcrumbs, fetches listings from the host route.

Install into a profile

  1. Make the package resolvable from the profile (Node walks $DSH_HOME/profiles/<name>/node_modules$DSH_HOME/profiles/node_modules → …). A junction into this repo works:

    New-Item -ItemType Junction -Path "$env:DSH_HOME\profiles\node_modules\dsh-file-explorer" -Target D:\Codes\dsh-file-explorer
  2. Add a row in the profile's cordis.patch.yml:

    - insert:
        - id: file-explorer
          name: dsh-file-explorer
  3. Restart the profile (dsh web) and refresh the page. The browser bundle is picked up by the client-modules scan; subsequent edits to lib/client.js hot-reload through the HMR poll without a server restart.

Development notes

  • Client slot targets: sidebar.footer.action (list, additive) and shell.overlay (list, additive); both are root-scoped, declared by the shipped ui-sidebar / ui-layout entries.
  • The host route only accepts POST with content-type: application/json (cross-origin pages are forced into a CORS preflight the server never answers — the same fence the /api gateway relies on).

CLASSIFICATION EVIDENCE

分类依据

项目类型待识别
功能分类其他
规则置信度

系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。