deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
Thin on-demand context-retrieval layer for the DeepSeek Harness.
Automatic truncation, spill-to-disk, compaction, and token metering are already
owned by output-retention, spill-policy, compaction-basic, and
session-query. This package adds only the missing piece: three model-facing
tools that read already-persisted history back on demand.
dsh plugin --profile <name> add github:EvilIrving/dsh-context-proxy
Or, from a checkout:
dsh plugin --profile <name> add ./dsh-context-proxy
The bundle patch inserts one plugin row (dsh-context-proxy). sessionQuery
and subprocess are optional backends (ctx.get): without a sessionQuery
backend each tool degrades to an isError result instead of waiting forever.
| Tool | Backing seam | Returns |
|---|---|---|
context_query |
sessionQuery.filterEvents |
lightweight { seq, type, text } matches by seq/type/surface/text |
context_slice |
sessionQuery.readEvent |
one event plus a bounded before/after window |
context_grep |
subprocess (packaged rg) or sessionQuery.filterEvents |
matches with { text, citation } |
Citations are replay-safe: context_query/context_slice cite session:<seq>
(rebuildable from the canonical log), and context_grep cites either a spill
path (path:line, fast local path) or session:<seq> (semantic-text fallback
when no spill path is supplied or available).
export interface Config {
readWindowDefault: number // default before/after for context_slice (default 0)
grepMaxBytes: number // rg stdout in-memory cap (default 1 MiB)
rgGraceMs: number // rg termination grace (default 5000)
}
sessionQuery and subprocess are optional services read via
ctx.get(...). A missing sessionQuery backend degrades each tool to an
isError result (session query backend unavailable) instead of leaving the
plugin waiting forever; the same applies to subprocess for context_grep
with an explicit path.tools is a hard dependency (inject).@vscode/ripgrep — the same mechanism
dsh-tool-fs-search uses — so no system rg install is required and no
shell layer exists between the argv vector and ripgrep.Three tool schemas (context_query, context_slice, context_grep) are
registered into the agent's tool set. Each result is a compact JSON object of
matches/items plus citations; no prose is returned for the model to parse ids
out of.
Zero-direct effect until a tool is invoked; each invocation's cost is bounded
by the query/slice window and the grepMaxBytes cap.
Append-only: tool results append to the surface; they never rewrite earlier request tokens.
context_grep line parse is path:line:text — a spill path containing a
newline (not expressible in the durable locator) would confuse the parser;
absolute spill paths never contain one.context_grep falls back to sessionQuery's literal,
case-insensitive, whitespace-flexible scan, not a regex search.CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。