Back to home@acryldev

dsh-cordis

dsh-cordis

Stars
1
Language
JavaScript
Created
Sep 8, 2026
Updated
Sep 9, 2026
GitHub repo

Introduction

dsh-cordis

dsh-cordis packages the DeepSeek Harness coding engine as a Cordis plugin. It mounts the DSH base composition into the caller's existing Loader tree: native agents, durable sessions, model adapters, tools, goals, plan mode, approvals, and packaged agent presets.

It does not construct another Cordis root. Its Fiber owns the included DSH tree, so disabling or replacing its Loader entry removes its live services and lets consumers enter PENDING until another provider becomes available.

Install

pnpm add dsh-cordis @deepseek-ai/cordis@4.0.1

Compose

Use a stable Loader row in a host that already provides loader:

- id: dsh-engine
  name: dsh-cordis
  config:
    telemetry: false

telemetry defaults to false. The host remains responsible for DSH_HOME, credentials, model selection, UI, and any ACRYL engine-selection contract.

Lifecycle

The package supplies native DSH service providers. A consumer should inject the specific service it needs—for example sessions, agents, or tools—instead of importing this package's implementation. Removing the dsh-engine row withdraws those providers through normal Cordis lifecycle disposal.

Engineering principles

dsh-cordis is deliberately small at its public boundary and substantial behind it. The package carries the DSH engine composition; the host receives ordinary Cordis services rather than an engine-specific global singleton.

  • Dependency inversion and separated interfaces. Consumers ask for sessions, agents, tools, and other service contracts. They do not import a concrete DSH provider to obtain those capabilities.
  • Seams instead of rewrites. The engine is a capability seam: a host can observe, replace, or remove the DSH provider without rewriting the consumers that rely on its services.
  • Orthogonality over hidden coupling. A plugin declares what it requires. Missing dependencies remain pending instead of being hidden behind startup ordering assumptions, timing retries, or a global initialization sequence.
  • One owner for every live contribution. Loader entries, service providers, listeners, timers, subprocesses, and subscriptions belong to a Fiber. The owner also owns their cleanup.
  • Reversible runtime changes. Removing the engine entry withdraws its live DSH services and registrations. A replacement can activate against the same host without retained provider references or duplicate contributions.
  • Configuration is composition. Stable Loader IDs select the engine and its configuration. Changing a deployment choice does not require scattering provider switches through application code.
  • YAGNI at the integration boundary. The package reuses DSH's session, agent, tool, approval, and persistence capabilities instead of introducing another agent loop, event bus, or lifecycle framework.
  • Durable facts stay durable. Sessions and replay-critical work are owned by the DSH session model. Live events coordinate a running process; they are not treated as the only record of work.
  • Information hiding and deep modules. The package absorbs DSH composition, dependency resolution, and lifecycle mechanics, leaving callers with a small service-oriented surface rather than a collection of setup details.
  • Fail fast, contain failure. Invalid configuration and missing services fail before partial activation. Loader replacement keeps a working provider available when a candidate cannot activate.
  • Refactor-safe change. Replacement is tested, not assumed: the release suite covers missing dependencies, real Loader activation, provider removal, and repeated activation with the host still alive.

These are practical constraints on the package, not slogans: the source and tests are organized around them so an engine can be installed, used, removed, and replaced without changing the rest of the host's architecture.

Source and provenance

The repository includes deepseek-harness/ as a pinned Git submodule from https://github.com/deepseek-ai/deepseek-harness. It is the source reference for the wrapped engine. pnpm run upstream:sync restores its recorded pin; pnpm run upstream:update deliberately advances it to upstream and leaves the new gitlink for review and commit. Published DSH dependencies stay version-pinned until that source update has been tested and released in a new dsh-cordis version. The extracted composition, presets, licenses, and exact source records are in provenance.json.

The submodule is not loaded as a second runtime. dsh-cordis wraps the matching published DeepSeek Harness packages as one Cordis plugin in the host's existing plugin tree.

This is the first DSH engine package for ACRYL's future selectable engine host. It does not yet provide Pi integration, engine switching commands, or cross-engine session translation.