Files
dsh-context-plugin/README.md

2.1 KiB

DeepSeek Harness Context Plugin (dsh-context-plugin)

A dynamic Cordis plugin for DeepSeek Harness (DSH) that adds an interactive UI window to scan workspace files and ingest them directly into the active chat session as individual prompt turns.

Features

  • Interactive UI Window:
    • Rendered in shell.overlay with support for minimize and close.
    • Quick launcher button docked in conversation.session.header.actions.
    • Button dynamically displays the active workspace root directory.
    • Editable input override to type or change the workspace directory path.
  • Header Link Formatting:
    • Configurable switch between standard Linux file:/// URIs and IDE vscode://file/ URIs.
    • Link format: [](file://<abs-path>).
  • Dynamic Backtick Escaping:
    • Dynamically calculates enclosing code fence backtick length (\ge 3 backticks) so files containing markdown or nested code fences never break the outer block.
  • Binary / Non-Text File Detection:
    • Inspects file extensions and scans the first 8 KB for null bytes (\0).
    • Replaces binary contents with *Binary file - content not displayed.*.
  • Git & Ignore Rules:
    • Always ignores .git/ across all directories.
    • Respects .gitignore and .dshignore rules from the workspace root (including negation ! patterns).
    • Skips walking ignored directories entirely for performance.
  • Real-Time Progress Feedback:
    • Live animated spinner and counter (Reading 5/42..., Injecting 5/42...).
    • Visual progress bar.
    • Interactive file selection checklist before ingestion.
  • Individual User Prompt Turns:
    • Dispatches each file as an individual prompt turn into the chat session queue.

Prompt Turn Format

[`relative/path/to/file`](file:///absolute/path/to/workspace/relative/path/to/file)

```{extension}
{file_contents}

## Structure

- `src/host.js`: Node.js host-side plugin handling filesystem queries, ignore rule resolution, and binary checks.
- `src/client.js`: Browser client-side plugin rendering the floating overlay window and header action button in Cordis slots.