DeepSeek Harness (dsh) Adapter
September 4, 2026 ยท View on GitHub
This crate owns the static, runtime-free projection of DeepSeek Harness (dsh)
plugin package sources. It reads a OpenBitFun-managed package whose
openbitfun.plugin.json declares adapter: "dsh_compatible", parses the package's
package.json dsh declaration, and projects the discovered bundle entries
(dsh.bundle.patch -> cordis.patch.yml rows) and/or profile bundle references
(dsh.profile.bundles) as projection-only plugin sources.
It does not execute Cordis plugins, install npm packages, or depend on a
user-local dsh CLI. Execution of dsh bundles belongs to future Plugin Host /
external-ACP work, not this adapter boundary.
If executable dsh support is added, the dsh adapter may project capabilities whose OpenBitFun owner semantics have been verified through the provider-neutral plugin capability contract. Cordis source parsing, execution handles, Host protocol, and lifecycle remain dsh-owned and must not reuse the OpenCode Config Hook or OpenCode Plugin Host composition path. The current configured Skill-root merge and precedence behavior remains OpenCode-owned; dsh Skill publication requires its own consumer evidence before that path is shared.
Boundary Rules
- Depend on stable contracts (
openbitfun-runtime-ports,openbitfun-product-domains) and thePluginRuntimeAdapterboundary trait. Do not depend onopenbitfun-core, app crates, Tauri APIs, product UI, or concrete service managers. - Keep the dsh
package.jsondshfield shape andcordis.patch.ymlentry extraction inside this crate. Cross-crate outputs use typedPluginSourceRef/PluginStatusSnapshot/PluginDiagnosticDTOs; do not expose raw dsh YAML or JSON as product contracts. - Cordis rows may mount services that register model-facing tools when dsh runs
them, but static row metadata is not an executable OpenBitFun provider candidate.
load_dsh_package_adaptertherefore returns no provider dispatch targets. Unsupported or unparsable content must produce typed invalid projections and diagnostics, never silent success. - New ecosystems are sibling adapters registered by Product Assembly
(
openbitfun-core/plugin_runtime), not modes of this adapter.
Verification
cargo test --locked -p openbitfun-dsh-adapter --test dsh_source_adaptercargo test --locked -p openbitfun-core --no-default-features --features plugin-runtime --lib plugin_runtime::tests