dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
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:
Adapter functions and implementation An adapter maps internal product services to the standard protocols the product adopts. Reusable adapters can reduce repeated product API integration work for third-party plugins. Each project can design its own adapter or use an existing implementation.
Third-party plugins target the protocol contracts they adopt; adapter internals and package names are not a shared entrypoint. @dsh-std/adapter-dsh provides a set of mappings for DeepSeek Harness. TUIs, Web frontends, remote runners, and other integrators can provide their own implementations. Compatibility depends on protocol versions, live capabilities, and product mappings.
Separating protocol contracts from product implementations supports the following development patterns:
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 checkPublished 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.