DSH HUB
首页插件商店插件包社区排行榜资源发布指南
插件源码
返回插件目录

sky-unicorn /

sky-unicorn/dsh-referenced-file

已验证

在输入框中通过 # 快速搜索并引用工作区文件。发送消息时,插件会安全读取文件内容并加入模型上下文,让 AI 更方便地理解和处理项目代码。

★ 1 Stars0 Forks0 IssuesN/A 社区评分0 已确认安装
查看 GitHub
README来源: main@bffb1d49

dsh-referenced-file

Adds # workspace-file references to the DeepSeek Harness (DSH) composer. Typing # opens file candidates from the current session workspace. A pick inserts the explicit marker #<relative/path>. At submission time, the Host resolves and reads the file again and adds that UTF-8 text snapshot to the current model request.

Install

This installable bundle contains both Host and Web Client halves:

dsh plugin --profile web add /path/to/dsh-referenced-file

Or install a packed artifact:

npm pack
dsh plugin --profile web add ./dsh-referenced-file-0.1.0.tgz

From a DSH source checkout, prefix runtime commands with pnpm:

pnpm dsh plugin --profile web add /path/to/dsh-referenced-file
pnpm dsh --profile web --dump-config
pnpm dsh --profile web

Directory/Git installation receives source and runs prepare to produce lib/ and host/lib/. If the profile's pnpm blocks build scripts, allow dsh-referenced-file in that profile's pnpm-workspace.yaml allowBuilds map. npm tarballs already contain the build output.

Use

  1. Type # in a session with a workspace and continue typing path fragments to narrow the match set. The menu shows at most 20 items ordered by modification time, newest first.
  2. Move with Arrow keys and pick with Enter or Tab, or click a row. Escape closes the menu.
  3. A pick becomes #<src/example.ts>. The encoding also handles spaces, >, and backslashes unambiguously.
  4. The Host reads the file on send. A deleted file, directory, binary, oversized file, or outside-workspace target in an explicit marker fails the request with a reason.

A bare #topic is a convenience file reference only when it resolves to an existing workspace file; otherwise it stays ordinary text. Markdown headings beginning with # are not references. The Web menu always inserts explicit #<...> markers.

Design and security boundary

  • # is unused in the target DSH checkout (commit 47f943859bef60e4160492346772ded9b24f765a). The built-in input-trigger public implementation still restricts its trigger character to / | @, so this plugin implements # detection and its menu through the public conversation.input.overlay slot without changing DSH core. A selected reference remains plain composer text rather than a native //@ trigger chip.
  • The browser receives only workspace-relative paths and optional file sizes, never contents or modification times. The Host uses DSH's filesystem service and checks canonical containment during both traversal and submission; symlinks resolving outside the workspace do not pass.
  • Contents are read only in agent/pre-step, just before a model request enters, then inserted after the direct user prompt as a referenced-file plugin snapshot. The snapshot labels file text as untrusted workspace data, not higher-priority instructions.
  • Only regular UTF-8 text files are supported. NUL-containing data, invalid UTF-8, directories, and special files are rejected. Use DSH's attachment flow for images and other binary data.
  • The Host keeps a bounded, non-persistent path index per canonical workspace. The first query builds it once; later keystrokes search memory, and an expired index refreshes in the background with stale-while-revalidate. Unload/HMR cancels refreshes and clears indexes. No watcher is created and no contents enter logs, caches, or the wire.
  • Modification time is read best-effort through the filesystem service's public processPath() coordinate. A remote or non-shared execution world that has no Host-readable mtime still supports path search and falls back deterministically to path ordering. Submission always resolves and reads again, so a briefly stale candidate index does not weaken the read boundary.

Configuration

The Host Loader entry id is referenced-file. Its schema defaults are below. When overriding that entry's config, specify the complete config because later DSH patch layers replace an entry's config rather than deep-merging it.

Field Default Purpose
maxCandidates 20 Maximum candidates returned by one query; the schema hard cap is also 20
maxScannedEntries 5000 Maximum directory entries inspected per index refresh
maxDepth 12 Maximum candidate traversal depth
maxReferences 8 Maximum referenced files in one direct prompt batch
maxFileBytes 131072 Per-file byte limit
maxTotalBytes 524288 Combined reference byte limit
excludeDirectories .git, .cache, .next, .turbo, build, coverage, dist, node_modules Directory basenames omitted from candidate traversal
indexTtlMs 30000 Age at which a workspace candidate index refreshes in the background
maxCachedWorkspaces 8 Maximum in-memory workspace indexes retained by the Host

Develop and verify

npm install --legacy-peer-deps
npm run typecheck
npm test
npm run build
npm pack --dry-run

TypeScript config reads current public declarations from the fixed sibling checkout at D:\work\workspace\github\deepseek-harness. Runtime code still imports only public package exports and does not depend on sibling source paths.

—/ 5

暂无评分

已验证 DSH bundle

Commit bffb1d490104

社区评论

还没有评论,来写第一条。

DSH HUB

社区维护的 DSH 插件索引。不是 GitHub 或 DeepSeek AI 的官方产品。

社区资源API关于