deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
English | 中文
In plain terms, DSH Standard is a set of universal interoperability protocols. Its goal is simple: let DSH plugins, background runtimes, and various user interfaces (TUI terminals, Web UIs, desktop apps, headless daemons) decouple cleanly and work together smoothly.
@dsh-std/core is a "meta-protocol" (the protocol about protocols). Domain-specific protocols—like Command, Tool, Model, and Presentation—sit on top of this meta-protocol substrate for discovery and negotiation, each versioned independently. Different hosts and applications only implement the parts they actually need.
Reference packages provide types, validators, and pure-function negotiators. Conforming implementations are not required to depend on these npm packages, nor do they need to run inside DeepSeek Harness.
Most protocols you deal with handle specific domain tasks:
In contrast, @dsh-std/core knows zero domain business fields (it doesn't even know what a command or a model is). It is purely the "protocol about protocols":
apiVersion + kind), how participants declare what they need (requires) and what they provide (supports), and how to run pure-function negotiations to output a structured compatibility report.Why is this powerful?
Monolithic frameworks hardcode every capability (commands, storage, events) into a central SDK; whenever a new domain arises, the entire framework requires a release or a breaking change. Under a meta-protocol architecture, the protocols themselves are pluggable plugins: public standards, community extensions, and private protocols alike register as standalone protocol definitions. The core never changes, letting the ecosystem evolve boundlessly on its own.
The upstream DSH core and downstream ecosystem plugins have inherently different engineering priorities:
The Adapter serves as a single-point shock absorber:
It isolates the upstream runtime from the universal protocol layer. DSH is free to refactor aggressively; all potential breaking changes are absorbed within a single adapter layer (@dsh-std/adapter-dsh), shielding the broader ecosystem from code churn. Similarly, standalone TUIs, Web frontends, and remote runners can plug in via their own adapters on equal footing.
Shielding plugins from upstream breaking changes is just the baseline. In day-to-day development, this architecture brings several concrete superpowers:
dsh-plugin.json), marketplaces, hosts, and CI tools calculate compatibility in milliseconds without running a single line of plugin code. No more installing a plugin only to find out it crashes at runtime.Meta-protocol (core) only defines how protocols are declared and negotiated; no domain concepts, no fixed roles
|
Domain protocols connection / command / tool / session / presentation / agent ...
| independently versioned, implementable and replaceable; future protocols may supersede them
|
Profiles admission and interoperability specifications for concrete product shapes,
carried by ecosystem projects (e.g. dsh-ecosystem-spec provides the TUI Profile)
@dsh-std/adapter-dsh.The code and proposals are early drafts.
Each package records changes in its own CHANGELOG.md. Public contract modifications must update the corresponding changelog.
Node.js ^22.19 || >=24 and pnpm are required.
pnpm install
pnpm check
Published package versions are maintained directly in each packages/*/package.json; the release workflow does not rewrite them. A push to main compares those versions with the pre-push commit, then packs, OIDC-publishes, tags, and creates a GitHub Release for every increase. Prerelease versions use their prerelease identifier as the npm dist-tag (rc, alpha, or beta); stable versions use latest.
The release job is restricted to this repository's GitHub ID, so ownership transfers do not disable it and forks do not publish packages. GitHub Releases target the repository running the workflow through GH_REPO.
For the transfer to T-Auto/dsh-std, each published npm package's trusted publisher must use owner T-Auto, repository dsh-std, and workflow release.yml (with no environment). Configure this in the package's npm settings before publishing from the transferred repository; GitHub ownership transfer does not update the npm configuration. See npm trusted publishing.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。