An Atlas of 219 Packages
Package groups, roles, dependency direction, and runtime placement
Conclusion: 219 packages form capability closures, not 219 peer modules
The pinned packages/ tree contains 49 groups and 219 npm workspaces. The meaningful unit is rarely one directory: a capability normally spans its Service Definition, one or more providers, model/host consumers, bundle rows, durable projections, UI renderers, and invariant or composition tests.
The atlas below preserves every package instead of selecting only conspicuous runtime code. Its purpose is orientation: show where a capability is declared, who implements and consumes it, what it depends on internally, and which later chapter verifies its control flow.
1. How the inventory was produced
scripts/capture-package-inventory.mjs first rejects an upstream checkout whose HEAD differs from the pinned commit. It then walks every packages/<group>/<leaf>/package.json, sorts groups and leaves, and records manifest identity, description, distribution flag, internal dsh dependencies, TypeScript/TSX source and test counts, README, invariant, bundle-patch, and dsh metadata.
| Captured field | What it proves | What it does not prove |
|---|---|---|
| Manifest name / description | Upstream's declared package identity and intent at the baseline | That every sentence matches all current runtime branches |
dependencies + peerDependencies | Declared direct edges to other dsh packages | Dynamic plugin references, event coupling, or reverse consumers |
| Source / test file counts | A deterministic inventory of files under src and tests | Complexity, quality, coverage, or runtime weight |
private flag | Whether the package manifest blocks publication | That a corresponding npm version has actually been released |
| README / invariant / patch flags | Presence of those repository artifacts | Their semantic correctness without later source review |
2. Exact baseline totals
| Measure | Count | Interpretation |
|---|---|---|
| Package groups | 49 | Ownership-oriented directory families, not runtime layers |
| Workspace packages | 219 | Every package manifest under the two-level package tree |
| TS / TSX source files | 1,324 | Files under package src/ directories |
| TS / TSX test files | 854 | Files under package tests/ directories |
Packages with src/invariant.ts | 219 | Complete structural coverage of the package-owned invariant convention |
| Packages with README | 219 | Every package exposes a local documentation entry point |
Packages with cordis.patch.yml | 3 | The base, headless, and Web product bundles own patch files |
Manifests marked private: true | 0 | All are structurally publishable; actual npm release state is outside this inventory |
| Packages with another internal dsh dependency | 218 | Only the invariant registry stands without a direct dsh-package dependency |
3. Six research planes
Product spine
core, llm, session, context, and compaction define how a model request is assembled, executed, recorded, and reduced under pressure.
Execution world
subprocess, shell, terminal, fs, sandbox, code-runtime, lsp, web, and e2b ground tools in local or remote environments.
Collaboration and orchestration
interaction, plan, goal, todo, jobs, subagent, workflow, skill, and mcp own human-Agent and Agent-Agent coordination.
Composition and data
boot, bundle, preset, settings, credentials, storage, workspace, and attachment determine trees and non-session data ownership.
Product surfaces
api, typert, sdk, acp, host, and client expose one runtime to the browser, stdio JSON-RPC, SDKs, and automation protocols.
Proof and support
runtime-diagnostics, test-support, guard, session-query, feedback, util, and examples supply invariants, real assemblies, diagnostics, and primitives.
4. Where package count is concentrated
| Group | Packages | Source files | Test files | What the concentration signals |
|---|---|---|---|---|
client | 39 | 501 | 244 | The browser surface is decomposed into host bridges, conversation nodes, renderers, settings, and feature plugins rather than one SPA package |
session | 13 | 45 | 33 | Persistence, queries, projection cache, telemetry, titles, forms, and domain data remain separate consumers of the event model |
subagent | 11 | 46 | 43 | One seam supports several backends and exposes orchestration through distinct tools and host services |
shell | 9 | 27 | 21 | Definition, executors, local/PowerShell providers, policies, prompts, and tool consumers are intentionally split |
core | 8 | 44 | 60 | The central runtime remains a small definition/driver spine compared with its extension and UI surfaces |
host | 8 | 65 | 34 | Server-side product features sit above the Agent service rather than inside the Loop |
Package count follows independently evolving roles more than algorithmic complexity. The 39-package client group dominates file count, while the eight-package core group carries the execution spine. This supports the declared goal that product behavior and presentation attach around a relatively stable Loop—but it also makes package discovery and generated maps essential.
5. Dependency direction: read capability closures
Extension plugins depend on Service Definitions rather than concrete providers. UI, hook, and tool packages consume the abstract Agent service instead of importing the default Agent Loop; definitions, providers, and consumers split when they evolve independently. PKG-HIERARCHY
Use the following sequence when tracing any feature:
Find the definition
Locate the service key, public interface, event map, configuration schema, and branded identifiers.
Enumerate providers
Do not stop at the default. Check local, remote, platform-specific, replay, and test providers separately.
Enumerate consumers
Model tools, host RPCs, UI plugins, workflow engines, and other services can exercise different portions of the same definition.
Find composition
Verify which bundle or Agent preset mounts each role and in which scope.
Find durable/UI projections
Trace the events, persistence, replay, and renderer that make an outcome observable.
Find proof
Read the package invariant, HMR-disposal test, production composition test, and any keyless transcript snapshot.
A direct dependency graph is necessary but insufficient. Event declaration merging, service lookup by key, configuration rows, and dynamic registration add edges that do not appear as ordinary imports. The atlas therefore exposes declared internal dependencies while later chapters reconstruct the semantic graph from producers, consumers, and commit points.
6. Why all 219 packages carry an invariant companion
Every package owns ./invariant. Packages with a runtime relationship register an event/data check; packages without one must give a package-specific explanation. Registry contributions also prove disposal when their owning fiber unmounts. PKG-INVARIANTSDESIGN-INVARIANT-REGISTRY
This convention answers a specific weakness of plugin architectures: local type checking cannot prove that a complete tree mounted coherent providers, identities, event order, and projections. The benefit is package-attributed runtime evidence. The cost is 219 companion entry points whose assertions must continue to represent owned relationships rather than devolve into presence checks.
7. Complete package inventory at the pinned baseline
Expand any group below. Every row links to that package at the exact upstream commit, shows its manifest description, direct internal dsh dependencies, source/test file counts, publication flag, and bundle-patch flag. Dependency names link directly to their target packages, making the table a navigable declared graph rather than a flat directory list.
acp1 packages · 3 source files · 8 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
acp@deepseek-ai/dsh-acp |
Automation-only Agent Client Protocol server for driving DeepSeek Harness agents over JSON-RPC stdio | agent invariants session user-approval | 3 | 8 | manifest is not private |
api2 packages · 10 source files · 4 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
gateway@deepseek-ai/dsh-api-gateway |
Typert Remote Host dispatcher and Client API endpoint | client-connection invariants typert-protocol typert-registry | 4 | 2 | manifest is not private |
remotes@deepseek-ai/dsh-api-remotes |
Remote BFF assembly and Host Agent/Session lookup policy | agent agent-presets api-gateway commands cordis-host-runner credentials goal host-plugin-inventory invariants llm message-feedback session session-persistence settings typert-protocol typert-registry | 6 | 2 | manifest is not private |
attachment2 packages · 9 source files · 3 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
attachment@deepseek-ai/dsh-attachment |
Durable immutable attachment storage seam for the DeepSeek Harness | brand invariants | 5 | 0 | manifest is not private |
attachment-local@deepseek-ai/dsh-attachment-local |
Private content-addressed DSH_HOME attachment storage | attachment home-paths invariants | 4 | 3 | manifest is not private |
boot2 packages · 5 source files · 7 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
app-boot@deepseek-ai/dsh-app-boot |
Shared boot glue for the app bins: .env loading, fail-loud Loader guards, snapshot-aware config resolution, and the Loader boot sequence | home-paths invariants launch-environment system-prompt | 3 | 6 | manifest is not private |
cmdline@deepseek-ai/dsh-cmdline |
Immutable command-line handoff from a dsh launcher to any app plugin that injects cmdlineArgs | invariants | 2 | 1 | manifest is not private |
bundle3 packages · 8 source files · 6 tests
client39 packages · 501 source files · 244 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
connection@deepseek-ai/dsh-client-connection |
Wire consumer layer: HTTP-up/WebSocket-down client, ConnectionController dual streams with reconnect, and fixture api | attachment commands host-apiproxy host-webserver invariants llm session tools | 16 | 11 | manifest is not private |
hmr@deepseek-ai/dsh-client-hmr |
Dev-only hot-reload driver for script-loaded client entries: SSE rebuilt frames → invalidate/prefetch → fiber swap through the vendored Loader entry | client-modules host-webserver invariants | 4 | 1 | manifest is not private |
locale@deepseek-ai/dsh-client-locale |
Locale plugin: Host-backed zh/en preference, browser-derived fallback, locale snapshots, and typed namespace dictionaries | api-remotes client-connection client-runtime client-ui-primitives client-ui-settings client-ui-slots invariants settings | 11 | 6 | manifest is not private |
modules@deepseek-ai/dsh-client-modules |
Client module system, dual-face: node half composes the __DSH_BOOT__ entry graph (incremental dsh.client scan, bundle route, index tap, webPlugins service); browser half is the lazy-CJS module table the vendored cordis Loader consumes as its internal seam | invariants | 5 | 2 | manifest is not private |
runtime@deepseek-ai/dsh-client-runtime |
Client core services: SlotRegistry, SessionRuntime (scope tree + object layer) | agent api-remotes attachment client-connection client-ui-slots commands host-apiproxy invariants llm llm-retry session session-projection session-title tools typert-protocol typert-registry | 44 | 25 | manifest is not private |
schema-form@deepseek-ai/dsh-client-schema-form |
Schema/draft model layer for settings editors: rehydrates a serialized schemastery schema, validates drafts, and edits them immutably by path | invariants | 3 | 2 | manifest is not private |
ui-agent-preset@deepseek-ai/dsh-client-ui-agent-preset |
Agent-preset surfaces: the default for later sessions, this session's seat, and the composition editor | api-remotes client-connection client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-settings client-ui-slots client-web-react invariants | 13 | 7 | manifest is not private |
ui-attachment@deepseek-ai/dsh-client-ui-attachment |
Pure React attachment atoms for the dsh web UI: draft-image rail, message image gallery, and original-image lightbox (zero cordis) | attachment client-ui-primitives invariants | 7 | 5 | manifest is not private |
ui-commands@deepseek-ai/dsh-client-ui-commands |
Client command surface: global directory cache, '/' source, three command UI kinds, popupSelect registry | api-remotes client-locale client-runtime client-ui-conversation client-ui-input-trigger client-ui-primitives client-ui-slots commands invariants | 10 | 5 | manifest is not private |
ui-conversation@deepseek-ai/dsh-client-ui-conversation |
Conversation domain: skeleton, ordered chat flow, composer with the Host-backed busy-Enter preference, and details host | agent api-remotes attachment brand client-connection client-locale client-runtime client-ui-attachment client-ui-input-trigger client-ui-primitives client-ui-settings client-ui-slots commands compaction invariants llm-retry session-stats settings token-meter tools | 70 | 28 | manifest is not private |
ui-deliverables@deepseek-ai/dsh-client-ui-deliverables |
Produced-files turn tail and clickable final-response file references for Web | client-connection client-locale client-runtime client-ui-conversation client-ui-slots invariants system-prompt | 7 | 2 | manifest is not private |
ui-directory-picker-browse@deepseek-ai/dsh-client-ui-directory-picker-browse |
In-app directory browsing surface: the workspace directory-flow owner rendering the host's listing and creation primitives | client-locale client-runtime client-ui-primitives client-ui-slots client-ui-workspace invariants | 6 | 2 | manifest is not private |
ui-directory-picker-native@deepseek-ai/dsh-client-ui-directory-picker-native |
Native directory-picker surface: the renderless workspace directory-flow occupant driving the host's OS chooser | client-runtime client-ui-slots client-ui-workspace invariants | 4 | 1 | manifest is not private |
ui-goal@deepseek-ai/dsh-client-ui-goal |
Session goal surface: GoalBar docked above the composer, read from the goal session projection | api-remotes client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots commands goal invariants | 9 | 3 | manifest is not private |
ui-input-trigger@deepseek-ai/dsh-client-ui-input-trigger |
Input trigger pipeline: '/' and '@' detection, candidate menu, pick routing to registered sources | client-locale client-runtime client-ui-primitives client-ui-slots invariants | 14 | 5 | manifest is not private |
ui-jobs@deepseek-ai/dsh-client-ui-jobs |
Session-header background-job list: live registry state mirrored from session/jobs frames | client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants | 6 | 2 | manifest is not private |
ui-layout@deepseek-ai/dsh-client-ui-layout |
Shell plugin: three-column AppFrame with drag handles, ctx.layout viewing-state service (navigation + panels) | client-runtime client-ui-slots client-ui-theme invariants | 9 | 6 | manifest is not private |
ui-message-feedback@deepseek-ai/dsh-client-ui-message-feedback |
Per-message feedback controls contributed to the assistant-message action strip, backed by the messageFeedback Host Remote | api-remotes client-connection client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants message-feedback typert-protocol | 8 | 3 | manifest is not private |
ui-model-selection@deepseek-ai/dsh-client-ui-model-selection |
Model selection: the /model popupSelect over session.models / session.selectModel | api-remotes client-connection client-locale client-runtime client-ui-commands client-ui-conversation client-ui-input-trigger client-ui-primitives client-ui-slots invariants | 9 | 2 | manifest is not private |
ui-permission-presets@deepseek-ai/dsh-client-ui-permission-presets |
Permission surfaces: a new-session default in General settings and a current-session /permission popup over the permissions projection | api-remotes client-connection client-locale client-runtime client-schema-form client-ui-commands client-ui-input-trigger client-ui-primitives client-ui-settings client-ui-slots invariants permission-presets | 8 | 3 | manifest is not private |
ui-plan@deepseek-ai/dsh-client-ui-plan |
Plan-mode composer control: the conversation.input.plan seat over the plan projection and the /plan command channel | api-remotes client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants plan-mode | 6 | 2 | manifest is not private |
ui-primitives@deepseek-ai/dsh-client-ui-primitives |
Pure React atoms for the dsh web UI: controls, icons, markdown, and JSON inspectors (zero cordis) | invariants | 44 | 21 | manifest is not private |
ui-settings@deepseek-ai/dsh-client-ui-settings |
Settings domain base plugin: the settings-namespace scope service and the canonical settings slot-type contract | api-remotes client-connection client-runtime client-schema-form client-ui-slots invariants settings | 6 | 3 | manifest is not private |
ui-settings-general@deepseek-ai/dsh-client-ui-settings-general |
Settings ownerless-copy and product onboarding plugin: the General section, shell trigger/header chrome content, settings dictionaries, and the versioned welcome notice | api-remotes client-connection client-locale client-runtime client-ui-primitives client-ui-settings client-ui-sidebar client-ui-slots client-web-react invariants settings | 11 | 7 | manifest is not private |
ui-settings-models@deepseek-ai/dsh-client-ui-settings-models |
Models settings and shared product-onboarding dialogs over existing settings and credential joins | api-remotes client-connection client-runtime client-schema-form client-ui-primitives client-ui-slots client-web-react invariants | 18 | 10 | manifest is not private |
ui-settings-plugin-inventory@deepseek-ai/dsh-client-ui-settings-plugin-inventory |
Read-only Cordis Loader inventory tab in Web Plugins settings | api-remotes client-locale client-runtime client-ui-primitives client-ui-settings client-ui-slots invariants | 6 | 3 | manifest is not private |
ui-settings-plugins@deepseek-ai/dsh-client-ui-settings-plugins |
Plugins settings section with feature-owned tabs and configurable host-plane plugin cards | api-remotes client-connection client-locale client-runtime client-ui-primitives client-ui-settings client-ui-slots client-web-react invariants | 17 | 5 | manifest is not private |
ui-sidebar@deepseek-ai/dsh-client-ui-sidebar |
Sidebar plugin: session multi-level tree, search, grouping, state dots | client-locale client-runtime client-ui-primitives client-ui-slots invariants | 7 | 7 | manifest is not private |
ui-skill@deepseek-ai/dsh-client-ui-skill |
Web skill references and the dedicated skill tool row | api-remotes client-connection client-locale client-runtime client-ui-input-trigger client-ui-primitives client-ui-slots client-ui-tool invariants | 6 | 2 | manifest is not private |
ui-slots@deepseek-ai/dsh-client-ui-slots |
Slot registry pure core: SlotMap declaration merging, single register composition API, four-share props types, store-seat types, renderer install seam | invariants | 4 | 4 | manifest is not private |
ui-subagent@deepseek-ai/dsh-client-ui-subagent |
Subagent conversation catalog, continuation routing UI, and '@' reference source | client-locale client-runtime client-ui-conversation client-ui-input-trigger client-ui-primitives client-ui-slots invariants subagent token-meter | 7 | 2 | manifest is not private |
ui-theme@deepseek-ai/dsh-client-ui-theme |
Theme plugin: Host bootstrap for the pre-plugin palette; DOM-free ThemeRuntime for light/dark/system state; --dsw-* token styles and Appearance settings row | api-remotes client-connection client-locale client-runtime client-ui-primitives client-ui-settings client-ui-slots host-webserver invariants settings | 9 | 8 | manifest is not private |
ui-tool@deepseek-ai/dsh-client-ui-tool |
Client Tool call-tree renderer and keyed per-tool presentation slot | api-remotes client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants | 25 | 16 | manifest is not private |
ui-trajectory@deepseek-ai/dsh-client-ui-trajectory |
Trajectory event ledger with an interactive timing overview: pure-consumer plugin registering into the conversation ViewMap (no service) | agent client-locale client-runtime client-ui-primitives compaction invariants tools | 28 | 8 | manifest is not private |
ui-user-questions@deepseek-ai/dsh-client-ui-user-questions |
Web ask_user_question feature: host tool mount plus composer-takeover question UI | api-remotes client-connection client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants | 8 | 4 | manifest is not private |
ui-workflow-run@deepseek-ai/dsh-client-ui-workflow-run |
Durable workflow-run Conversation Node and nested member disclosure for dsh web | client-locale client-runtime client-ui-conversation client-ui-primitives client-ui-slots invariants session tool-workflow workflow | 7 | 1 | manifest is not private |
ui-workspace@deepseek-ai/dsh-client-ui-workspace |
Workspace picker plugin: one WorkspacePicker registered into the sidebar and empty-state workspace slots | client-locale client-runtime client-ui-primitives client-ui-slots invariants | 11 | 8 | manifest is not private |
web@deepseek-ai/dsh-client-web |
Web shell kernel: bootWebShell (module system holding + seed table + two-stage boot + AppRoot gate + app-shell assembly entry), consumed by the apps/web vite entry | client-modules client-schema-form client-ui-attachment client-ui-primitives client-ui-slots client-ui-theme client-web-react invariants | 11 | 5 | manifest is not private |
web-react@deepseek-ai/dsh-client-web-react |
Shell-side React glue: createSlotRenderer, SessionProvider, bindSnapshotSelector (uSES bridge), useInvoke | client-ui-slots invariants | 7 | 7 | manifest is not private |
code-runtime2 packages · 10 source files · 8 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
code-runtime@deepseek-ai/dsh-code-runtime |
Abstract code-execution seam (ctx.codeRuntime) for the DeepSeek Harness | invariants | 3 | 2 | manifest is not private |
code-runtime-worker-thread@deepseek-ai/dsh-code-runtime-worker-thread |
Worker-thread implementation of the DeepSeek Harness code-execution seam | code-runtime invariants session timeout | 7 | 6 | manifest is not private |
compaction4 packages · 18 source files · 12 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
command-compact@deepseek-ai/dsh-command-compact |
Human-facing slash command for explicit session compaction | commands compaction invariants | 2 | 3 | manifest is not private |
compaction@deepseek-ai/dsh-compaction |
Abstract compaction service seam (ctx.compaction) for the DeepSeek Harness | brand commands invariants llm session | 6 | 3 | manifest is not private |
compaction-basic@deepseek-ai/dsh-compaction-basic |
Token-meter-driven compaction policy and LLM summarization backend for the DeepSeek Harness | agent commands compaction compaction-tool-result-pruner invariants llm session token-meter | 6 | 4 | manifest is not private |
compaction-tool-result-pruner@deepseek-ai/dsh-compaction-tool-result-pruner |
Replay-safe model-free head/middle/tail pruning for tool-result surface nodes | compaction invariants llm session token-meter | 4 | 2 | manifest is not private |
context4 packages · 20 source files · 8 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
agent-instructions@deepseek-ai/dsh-agent-instructions |
Workspace context loader for AGENTS.md/CLAUDE.md instruction files | agent fs home-paths invariants llm session tools | 7 | 2 | manifest is not private |
session-reference@deepseek-ai/dsh-session-reference |
Cross-session snapshot references and durable untrusted model context (ctx.sessionReferenceResolver) | agent compaction invariants llm output-retention session session-query | 7 | 1 | manifest is not private |
time-context@deepseek-ai/dsh-time-context |
Opt-in durable per-step context with the current time and elapsed time | agent invariants session | 4 | 4 | manifest is not private |
tmux-context@deepseek-ai/dsh-tmux-context |
Opt-in durable per-step context with this agent's tmux pane and window location | agent invariants session shell | 2 | 1 | manifest is not private |
core8 packages · 44 source files · 60 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
agent@deepseek-ai/dsh-agent |
Agent interface, registry, initiator scope, and event vocabulary for the DeepSeek Harness | invariants llm scope session system-prompt typert-protocol | 8 | 6 | manifest is not private |
agent-default-model@deepseek-ai/dsh-agent-default-model |
Default model selection shared by Agent entry points | agent invariants llm settings | 2 | 1 | manifest is not private |
agent-loop@deepseek-ai/dsh-agent-loop |
The concrete agent loop plugin for the DeepSeek Harness | agent invariants llm scope session session-persistence settings system-prompt tools | 6 | 20 | manifest is not private |
agent-tool-presentation@deepseek-ai/dsh-agent-tool-presentation |
Agent-plane presentation selector: composes one agent's tools as Code Mode, native, or both | invariants tools | 2 | 1 | manifest is not private |
scope@deepseek-ai/dsh-scope |
Scoped-context registration primitive (scope tags, scope-filtered event dispatch) for the DeepSeek Harness | invariants | 4 | 3 | manifest is not private |
session@deepseek-ai/dsh-session |
Event-sourced session store for the DeepSeek Harness | brand invariants llm scope typert-protocol | 10 | 13 | manifest is not private |
system-prompt@deepseek-ai/dsh-system-prompt |
System prompt assembly registry for the DeepSeek Harness | invariants llm scope | 2 | 4 | manifest is not private |
tools@deepseek-ai/dsh-tools |
Tool registry and execution pipeline for the DeepSeek Harness | agent code-runtime invariants llm scope session system-prompt user-approval | 10 | 12 | manifest is not private |
credentials2 packages · 5 source files · 7 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
credentials@deepseek-ai/dsh-credentials |
Abstract credential seam (ctx.credentials): settings carry references to secrets, providers own the values | brand invariants | 3 | 3 | manifest is not private |
credentials-local@deepseek-ai/dsh-credentials-local |
File-backed credentials provider ($DSH_HOME/.env under the live process environment) for the DeepSeek Harness | atomic-write credentials home-paths invariants launch-environment | 2 | 4 | manifest is not private |
e2b3 packages · 11 source files · 5 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
e2b@deepseek-ai/dsh-e2b |
Shared E2B sandbox lifecycle for DeepSeek Harness provider adapters | invariants | 2 | 2 | manifest is not private |
fs-e2b@deepseek-ai/dsh-fs-e2b |
E2B filesystem implementation for DeepSeek Harness | e2b fs invariants | 2 | 1 | manifest is not private |
subprocess-e2b@deepseek-ai/dsh-subprocess-e2b |
E2B subprocess implementation for DeepSeek Harness | e2b invariants subprocess timeout | 7 | 2 | manifest is not private |
examples3 packages · 10 source files · 6 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
acp-demo@deepseek-ai/dsh-acp-demo |
ACP automation server app: agent spine + JSONL persistence + ACP transport, with a JSON-RPC stdio bin | acp agent-instructions agent-spine-demo app-boot invariants session-checkpoint-policy session-persistence-jsonl session-query session-query-sqlite tools | 3 | 3 | manifest is not private |
agent-spine-demo@deepseek-ai/dsh-agent-spine-demo |
The default executor-less/UI-less agent spine with fallback session titles, provider-routed retry, and optional persisted goals | agent agent-instructions agent-loop goal goal-round-driver home-paths invariants jobs-local llm llm-retry scope session session-title shell-env skill skill-filesystem system-prompt tool-bash tool-goal tool-jobs tool-skill tools | 2 | 3 | manifest is not private |
jsonrpc-demo@deepseek-ai/dsh-sdk-jsonrpc-demo |
Bin that boots an external Cordis config for the stdio JSON-RPC SDK runtime | app-boot invariants | 5 | 0 | manifest is not private |
extensions4 packages · 44 source files · 15 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
cordis-client-runner@deepseek-ai/dsh-cordis-client-runner |
Browser half of dynamic dual-half plugin packages: event subscription, closure evaluation, guard facade, and loader entries | api-remotes client-connection client-modules client-runtime client-ui-slots client-ui-theme invariants | 12 | 5 | manifest is not private |
cordis-host-runner@deepseek-ai/dsh-cordis-host-runner |
Dynamic package definition registry, host-half sandbox lifecycle, and invoke handler table for model-mounted dual-half packages | agent brand invariants llm scope session tools typert-protocol | 8 | 6 | manifest is not private |
tool-cordis@deepseek-ai/dsh-tool-cordis |
Self-referential cordis toolset: inspect the live runtime, mount and dispose model-written plugins | agent cordis-host-runner invariants llm scope session system-prompt tools | 8 | 1 | manifest is not private |
ui-cordis@deepseek-ai/dsh-client-ui-cordis |
Cordis dynamic-plugin definition card: the keyed cordis_define tool row with its run/stop switch | api-remotes client-connection client-locale client-runtime client-ui-input-trigger client-ui-primitives client-ui-sidebar client-ui-slots client-ui-tool cordis-client-runner invariants | 16 | 3 | manifest is not private |
feedback2 packages · 6 source files · 6 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
command-feedback@deepseek-ai/dsh-command-feedback |
Log-only session feedback producer and human-facing slash command | anonymous-user-id commands invariants session session-telemetry | 2 | 2 | manifest is not private |
message-feedback@deepseek-ai/dsh-message-feedback |
Lifecycle-bound per-message rating and note sidecar for the DeepSeek Harness | brand invariants llm session session-persistence storage-domain typert-protocol | 4 | 4 | manifest is not private |
fs7 packages · 35 source files · 22 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
fs@deepseek-ai/dsh-fs |
Abstract filesystem capability seam (ctx.fs) for the DeepSeek Harness — vocabulary types, the FileSystem service (text IO + optional version-guarded atomic mutations), and the fs/* policy event vocabulary | brand invariants llm sandbox | 3 | 2 | manifest is not private |
fs-local@deepseek-ai/dsh-fs-local |
Local-filesystem implementation of the DeepSeek Harness filesystem seam (ctx.fs) | fs invariants | 4 | 3 | manifest is not private |
fs-observation-policy@deepseek-ai/dsh-fs-observation-policy |
File-context policy plugin for the DeepSeek Harness — observed-state, read-before-edit, and version-guarded write/edit added over the ctx.fs provider seam through the fs/* event gate (no service API) | fs invariants | 3 | 1 | manifest is not private |
fs-sandbox@deepseek-ai/dsh-fs-sandbox |
Sandbox-enforcing implementation of the DeepSeek Harness filesystem seam: fences write/edit by the per-call sandbox mode (read-only denies mutation, workspace-write contains it to the workspace + temp roots) while reads pass through | fs fs-local invariants sandbox sandbox-policy | 3 | 2 | manifest is not private |
tool-fs@deepseek-ai/dsh-tool-fs |
Model-facing filesystem tools (read, write, edit) over the DeepSeek Harness filesystem seam (ctx.fs) | attachment fs invariants llm sandbox sandbox-policy session system-prompt tools user-approval | 12 | 8 | manifest is not private |
tool-fs-search@deepseek-ai/dsh-tool-fs-search |
Model-facing filesystem discovery tools (glob, grep) backed by the packaged ripgrep binary (@vscode/ripgrep) | invariants llm output-retention session spill subprocess system-prompt timeout tools | 8 | 5 | manifest is not private |
tool-str-replace-editor@deepseek-ai/dsh-tool-str-replace-editor |
Model-facing view, create, literal replace, and line insert tool over the Harness filesystem service | fs invariants sandbox sandbox-policy tools | 2 | 1 | manifest is not private |
goal4 packages · 16 source files · 8 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
command-goal@deepseek-ai/dsh-command-goal |
Human-facing slash command for persisted same-session goals | commands goal invariants | 2 | 1 | manifest is not private |
goal@deepseek-ai/dsh-goal |
Event-sourced same-session goal state and lifecycle service for the DeepSeek Harness | agent brand invariants llm scope session session-projection typert-protocol | 7 | 4 | manifest is not private |
goal-round-driver@deepseek-ai/dsh-goal-round-driver |
Race-fenced same-session goal-round driver | agent goal invariants llm session | 3 | 2 | manifest is not private |
tool-goal@deepseek-ai/dsh-tool-goal |
Model-facing same-session goal tools with execution-time authority checks | agent goal invariants llm session system-prompt tools | 4 | 1 | manifest is not private |
guard2 packages · 4 source files · 2 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
repeat-tool-reminder@deepseek-ai/dsh-repeat-tool-reminder |
Repeat-tool-call guard plugin: advisory reminders when an agent loops on identical tool calls | agent invariants tools | 2 | 1 | manifest is not private |
timeout-policy@deepseek-ai/dsh-tool-call-timeout-policy |
Tool-call timeout policy: a tools/execute wrapper that arms a per-tool deadline on exec.signal and returns TOOL_TIMEOUT when it wins | invariants llm timeout tools | 2 | 1 | manifest is not private |
hooks3 packages · 15 source files · 20 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
hook-protocol@deepseek-ai/dsh-hook-protocol |
Shared Claude Code / Codex hook wire protocol: matcher engine, stdin/exit-code/stdout codec, multi-hook merge, and hook/* session events | invariants session shell | 9 | 7 | manifest is not private |
hooks-claude-code@deepseek-ai/dsh-hooks-claude-code |
Bridge plugin: run a Claude Code hooks.json / settings hook config on the DeepSeek Harness interception seams | agent hook-protocol invariants llm session session-persistence subagent tools | 3 | 7 | manifest is not private |
hooks-codex@deepseek-ai/dsh-hooks-codex |
Bridge plugin: run a Codex hooks.json hook config on the DeepSeek Harness interception seams | agent hook-protocol invariants llm session session-persistence tools | 3 | 6 | manifest is not private |
host8 packages · 65 source files · 34 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
apiproxy@deepseek-ai/dsh-host-apiproxy |
API gateway: the ApiProxy contract (api/), the fetch carrier pair (fetch/), and the host-side gateway plugin providing ctx.apiProxy | agent agent-default-model agent-presets api-remotes attachment brand commands cordis-host-runner credentials goal host-directory-picker invariants jobs llm native-command session session-persistence session-projection session-projection-cache session-query session-title settings skill subagent tools user-approval user-questions workspace | 42 | 20 | manifest is not private |
directory-picker@deepseek-ai/dsh-host-directory-picker |
Abstract workspace-directory picking seam (ctx.directoryPicker) for the DeepSeek Harness web GUI host | invariants | 2 | 1 | manifest is not private |
directory-picker-auto@deepseek-ai/dsh-host-directory-picker-auto |
Adaptive chooser of the directory-picker seam: resolves the host situation at boot and mounts the native or browse backend for the DeepSeek Harness web GUI host | client-ui-directory-picker-browse client-ui-directory-picker-native host-directory-picker-browse host-directory-picker-native host-webserver invariants | 4 | 2 | manifest is not private |
directory-picker-browse@deepseek-ai/dsh-host-directory-picker-browse |
In-app browsing backend of the directory-picker seam (listing/creation primitives over the host filesystem) | host-directory-picker invariants | 2 | 1 | manifest is not private |
directory-picker-native@deepseek-ai/dsh-host-directory-picker-native |
Native-OS-chooser backend of the directory-picker seam for the DeepSeek Harness web GUI host | host-directory-picker invariants native-command | 8 | 6 | manifest is not private |
frontend-static@deepseek-ai/dsh-host-frontend-static |
SPA dist server for the Web shell: owns the webserver fallback seat, serving the built frontend with index-tap injection, traversal rejection, and SPA index fallback | host-webserver invariants | 2 | 1 | manifest is not private |
plugin-inventory@deepseek-ai/dsh-host-plugin-inventory |
Read-only Remote projection of current Cordis Loader plugin state | brand invariants typert-protocol | 3 | 2 | manifest is not private |
webserver@deepseek-ai/dsh-host-webserver |
Web route-registration plugin: HTTP and upgrade routes, index transform taps, and static dist fallback; knows no harness concepts | invariants | 2 | 1 | manifest is not private |
identity1 packages · 2 source files · 2 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
anonymous-user-id@deepseek-ai/dsh-anonymous-user-id |
Shared anonymous user identity for DeepSeek Harness telemetry and feedback correlation | brand home-paths invariants | 2 | 2 | manifest is not private |
interaction5 packages · 16 source files · 9 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
commands@deepseek-ai/dsh-commands |
Plugin-owned human command registry for DeepSeek Harness UIs | agent brand invariants scope session typert-protocol | 4 | 2 | manifest is not private |
permission-presets@deepseek-ai/dsh-permission-presets |
User-facing permission presets (ctx.permissionPresets) for the DeepSeek Harness: one product-level Permissions select bundling the sandbox-mode and approval-policy knobs, written through to their own session events | commands invariants sandbox sandbox-policy session session-projection settings shell user-approval | 4 | 3 | manifest is not private |
tool-ask-user@deepseek-ai/dsh-tool-ask-user |
Model-facing ask_user_question tool over the ctx.userQuestions seam | agent invariants tools user-questions | 2 | 1 | manifest is not private |
user-approval@deepseek-ai/dsh-user-approval |
User-approval seam (ctx.approval) for the DeepSeek Harness: one-shot permission decisions dispatched to composed answerers over the approval/request waterfall, fail-closed by default | agent brand invariants llm scope session system-prompt | 3 | 2 | manifest is not private |
user-questions@deepseek-ai/dsh-user-questions |
Abstract user-questions seam (ctx.userQuestions) for asking the human during agent runs | agent invariants llm | 3 | 1 | manifest is not private |
jobs3 packages · 8 source files · 5 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
jobs@deepseek-ai/dsh-jobs |
Background job registry (ctx.jobs) for the DeepSeek Harness — shared ids, owner isolation, polling, cancellation, and completion listeners for long-running tool work | agent brand invariants session | 4 | 2 | manifest is not private |
jobs-local@deepseek-ai/dsh-jobs-local |
Process-local implementation of the DeepSeek Harness background job registry seam | agent invariants jobs scope timeout | 2 | 2 | manifest is not private |
tool-jobs@deepseek-ai/dsh-tool-jobs |
Model-facing background job control tools (job_output, job_list, job_kill) over the ctx.jobs registry | agent invariants jobs llm output-retention system-prompt tools | 2 | 1 | manifest is not private |
llm5 packages · 46 source files · 41 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
llm@deepseek-ai/dsh-llm |
Provider-neutral LLM service interface for the DeepSeek Harness | attachment brand invariants timeout | 14 | 11 | manifest is not private |
llm-deepseek@deepseek-ai/dsh-llm-deepseek |
DeepSeek chat-completions adapter for the DeepSeek Harness LLM seam | anonymous-user-id credentials invariants launch-environment llm settings timeout | 7 | 9 | manifest is not private |
llm-pi-ai@deepseek-ai/dsh-llm-pi-ai |
pi-ai-backed DeepSeek adapter for the DeepSeek Harness LLM seam (design-verification twin of dsh-llm-deepseek) | attachment credentials invariants launch-environment llm settings timeout | 10 | 13 | manifest is not private |
llm-retry@deepseek-ai/dsh-llm-retry |
Provider-routed LLM request retry policy for the DeepSeek Harness | agent brand invariants llm session timeout | 5 | 5 | manifest is not private |
token-meter@deepseek-ai/dsh-token-meter |
Replay-aware token measurement service (ctx.tokenMeter) for the DeepSeek Harness | compaction invariants llm session session-projection | 10 | 3 | manifest is not private |
lsp3 packages · 17 source files · 15 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
lsp@deepseek-ai/dsh-lsp |
Abstract LSP capability seam (ctx.lsp) for the DeepSeek Harness — language-server provider registry keyed by branded id and extension mapping, order-independent per-query selection, normalized definition/references/implementation/hover requests and results, and the LspError taxonomy | brand invariants llm | 4 | 1 | manifest is not private |
lsp-stdio@deepseek-ai/dsh-lsp-stdio |
Generic stdio language-server provider for the DeepSeek Harness LSP capability seam (ctx.lsp) — spawns configured servers, translates JSON-RPC, and serves transient-open goToDefinition/findReferences/goToImplementation/hover queries in the host filesystem namespace | brand fs invariants llm lsp subprocess timeout | 9 | 10 | manifest is not private |
tool-lsp@deepseek-ai/dsh-tool-lsp |
Model-facing lsp tool over the DeepSeek Harness LSP capability seam (ctx.lsp) — one read-only tool with goToDefinition/findReferences/goToImplementation/hover operations, one-based UTF-16 cursor coordinates, bounded location rendering, and hover normalization | invariants llm lsp system-prompt timeout tools | 4 | 4 | manifest is not private |
mcp1 packages · 5 source files · 6 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
mcp-client@deepseek-ai/dsh-mcp-client |
MCP client bridge: connects to MCP servers and registers their tools on ctx.tools | invariants llm subprocess timeout tools | 5 | 6 | manifest is not private |
plan1 packages · 4 source files · 4 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
plan-mode@deepseek-ai/dsh-plan-mode |
Logged per-agent plan mode with deployment guidance, a direct slash command, and a user-reviewed exit | agent commands invariants llm session session-projection system-prompt tools user-questions | 4 | 4 | manifest is not private |
preset2 packages · 11 source files · 9 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
agent-presets@deepseek-ai/dsh-agent-presets |
Per-session agent composition from preset cordis.yml files for the DeepSeek Harness | agent atomic-write home-paths invariants scope session settings system-prompt | 9 | 8 | manifest is not private |
persona@deepseek-ai/dsh-persona |
Composition-authored deployment persona section for the DeepSeek Harness | invariants system-prompt | 2 | 1 | manifest is not private |
runtime-diagnostics1 packages · 2 source files · 1 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
invariants@deepseek-ai/dsh-invariants |
Registry service for package-owned DeepSeek Harness runtime invariants | None | 2 | 1 | manifest is not private |
sandbox4 packages · 22 source files · 25 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
sandbox@deepseek-ai/dsh-sandbox |
Abstract process-sandbox seam (ctx.sandbox) for the DeepSeek Harness: same-world confinement vocabulary and the SandboxProvider contract | invariants llm session | 4 | 3 | manifest is not private |
sandbox-local@deepseek-ai/dsh-sandbox-local |
Local process-sandbox backends for the DeepSeek Harness sandbox seam: bwrap, the npm-distributed landlock-run launcher, macOS Seatbelt, or the Windows ACL restricted-token runner — functionally probed, fail-closed | invariants llm sandbox sandbox-windows-acl session | 3 | 6 | manifest is not private |
sandbox-policy@deepseek-ai/dsh-sandbox-policy |
Per-call sandbox policy resolver and current model context: deployment fallbacks plus each session's mode and workspace root, shared by every enforcing capability family | agent invariants sandbox session system-prompt | 3 | 2 | manifest is not private |
sandbox-windows-acl@deepseek-ai/dsh-sandbox-windows-acl |
Windows ACL write-restriction sandbox backend (restricted-token spawn with capability-SID write allowlist) for the DeepSeek Harness sandbox seam | invariants | 12 | 14 | manifest is not private |
schedule1 packages · 8 source files · 7 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
schedule@deepseek-ai/dsh-schedule |
Agent-scoped durable after, at, and fixed-rate reminders over the session event log | agent brand invariants llm session session-persistence tools | 8 | 7 | manifest is not private |
sdk3 packages · 13 source files · 8 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
client@deepseek-ai/dsh-sdk-client |
TypeScript client SDK for driving a DeepSeek Harness runtime subprocess over stdio JSON-RPC: the DeepSeekHarness high-level turns API and the lower-level HarnessClient | invariants llm sdk-protocol session | 6 | 3 | manifest is not private |
protocol@deepseek-ai/dsh-sdk-protocol |
Shared wire protocol for the DeepSeek Harness SDK runtime: the newline-delimited JSON-RPC stdio transport and the named request, result, and notification types spoken between the runtime server and SDK clients | invariants llm session subagent | 4 | 1 | manifest is not private |
server@deepseek-ai/dsh-sdk-jsonrpc-server |
Stdio JSON-RPC server plugin for out-of-process DeepSeek Harness SDK clients | agent invariants llm llm-deepseek scope sdk-protocol session subagent | 3 | 4 | manifest is not private |
session13 packages · 45 source files · 33 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
session-checkpoint-policy@deepseek-ai/dsh-session-checkpoint-policy |
Semantic session durability checkpoints before model requests and tool side effects | agent invariants llm session session-persistence tools | 2 | 3 | manifest is not private |
session-persistence@deepseek-ai/dsh-session-persistence |
Abstract durable session persistence seam (ctx.sessionPersistence) for the DeepSeek Harness | brand invariants session timeout | 6 | 5 | manifest is not private |
session-persistence-jsonl@deepseek-ai/dsh-session-persistence-jsonl |
JSONL durable session persistence backend for the DeepSeek Harness | invariants session session-persistence | 7 | 4 | manifest is not private |
session-persistence-sqlite@deepseek-ai/dsh-session-persistence-sqlite |
SQLite durable session persistence backend for the DeepSeek Harness | invariants session session-persistence | 3 | 1 | manifest is not private |
session-projection@deepseek-ai/dsh-session-projection |
Session-projection seam: the merge-extensible projection type table, the provider contract, and the ctx.sessionProjections registry serving whole current values of log-derived per-session state | invariants session | 3 | 1 | manifest is not private |
session-projection-cache@deepseek-ai/dsh-session-projection-cache |
Persisted projection cache (ctx.sessionProjectionCache): durable per-session projection checkpoints over the domain data form, throttled write-behind, and the cold-read ladder (cache row + persistence tail replay) | invariants session session-persistence session-projection storage-domain | 3 | 1 | manifest is not private |
session-stats@deepseek-ai/dsh-session-stats |
Whole-log conversation counts and wall times projection (sessionStats) for the DeepSeek Harness | invariants llm session session-projection | 5 | 2 | manifest is not private |
session-telemetry@deepseek-ai/dsh-session-telemetry |
SessionTelemetryBackend seam for the DeepSeek Harness: session-event capture, projection, redaction, and handoff to a reporting backend | agent invariants session | 3 | 2 | manifest is not private |
session-telemetry-otel@deepseek-ai/dsh-session-telemetry-otel |
OpenTelemetry backend for the DeepSeek Harness telemetry seam: hands captured session records to the OTel JS SDK's log pipeline | anonymous-user-id command-feedback invariants llm session session-telemetry | 2 | 2 | manifest is not private |
session-title@deepseek-ai/dsh-session-title |
Log-backed session title service and provider registry for the DeepSeek Harness | brand invariants llm session session-projection | 5 | 7 | manifest is not private |
session-title-all-prompts-llm@deepseek-ai/dsh-session-title-all-prompts-llm |
All-user-messages LLM provider plugin for DeepSeek Harness session titles | invariants llm session session-title session-title-llm | 2 | 1 | manifest is not private |
session-title-first-prompt-llm@deepseek-ai/dsh-session-title-first-prompt-llm |
First-message LLM provider plugin for DeepSeek Harness session titles | invariants llm session session-title session-title-llm | 2 | 3 | manifest is not private |
session-title-llm@deepseek-ai/dsh-session-title-llm |
Shared LLM generation policy for DeepSeek Harness session-title providers | invariants llm session session-title timeout | 2 | 1 | manifest is not private |
session-query4 packages · 30 source files · 16 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
session-log-export@deepseek-ai/dsh-session-log-export |
Web Session-log export command and shared download dialog | client-locale client-runtime client-ui-commands client-ui-conversation client-ui-primitives client-ui-slots commands invariants | 8 | 7 | manifest is not private |
session-query@deepseek-ai/dsh-session-query |
Combined session query service contract with concrete reads, traces, and filters | brand invariants llm session session-persistence session-title | 11 | 4 | manifest is not private |
session-query-sqlite@deepseek-ai/dsh-session-query-sqlite |
Concrete ctx.sessionQuery backend with SQLite FTS5 search | invariants session session-persistence session-query | 4 | 3 | manifest is not private |
tool-session-query@deepseek-ai/dsh-tool-session-query |
Workspace-authorized model-facing session history search, trace, and event read tools | invariants llm session session-query system-prompt timeout tools | 7 | 2 | manifest is not private |
settings2 packages · 6 source files · 9 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
settings@deepseek-ai/dsh-settings |
Abstract user-settings seam (ctx.settings) for the DeepSeek Harness | brand invariants | 4 | 4 | manifest is not private |
settings-file@deepseek-ai/dsh-settings-file |
File-backed settings provider (settings.yaml) for the DeepSeek Harness | atomic-write home-paths invariants settings | 2 | 5 | manifest is not private |
shell9 packages · 27 source files · 21 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
bash-local@deepseek-ai/dsh-bash-local |
Local-subprocess implementation of the DeepSeek Harness bash executor seam | invariants settings shell subprocess timeout | 2 | 2 | manifest is not private |
bash-sandbox@deepseek-ai/dsh-bash-sandbox |
Sandbox-consuming implementation of the DeepSeek Harness bash executor seam (confines every command via ctx.sandbox, reports denial/enforcement result facts) | bash-local invariants sandbox sandbox-policy shell | 3 | 5 | manifest is not private |
pwsh-local@deepseek-ai/dsh-pwsh-local |
Local PowerShell implementation of the DeepSeek Harness bash executor seam | invariants settings shell subprocess timeout | 3 | 2 | manifest is not private |
pwsh-sandbox@deepseek-ai/dsh-pwsh-sandbox |
Sandbox-consuming implementation of the DeepSeek Harness PowerShell executor seam (confines every command via ctx.sandbox, reports denial/enforcement result facts) | invariants pwsh-local sandbox sandbox-policy shell | 3 | 2 | manifest is not private |
shell@deepseek-ai/dsh-shell |
Abstract bash executor seam (ctx.shell) for the DeepSeek Harness | invariants sandbox settings subprocess | 4 | 2 | manifest is not private |
shell-env@deepseek-ai/dsh-shell-env |
Tool-independent managed DSH_* shell environment registry | home-paths invariants session-persistence shell tools | 2 | 1 | manifest is not private |
tool-bash@deepseek-ai/dsh-tool-bash |
Model-facing bash tool with optional generic background-job and sandbox-escalation support | agent invariants jobs llm sandbox sandbox-policy shell shell-env system-prompt tools user-approval | 4 | 2 | manifest is not private |
tool-bash-persistent@deepseek-ai/dsh-tool-bash-persistent |
Model-facing owner-scoped persistent Bash tool backed by the Harness PTY service | agent invariants terminal timeout tools | 2 | 2 | manifest is not private |
tool-pwsh@deepseek-ai/dsh-tool-pwsh |
Model-facing pwsh tool over the bash executor seam | agent invariants jobs llm sandbox sandbox-policy shell shell-env system-prompt tools user-approval | 4 | 3 | manifest is not private |
skill4 packages · 8 source files · 5 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
skill@deepseek-ai/dsh-skill |
Agent skill provider registry for the DeepSeek Harness | invariants llm scope | 2 | 1 | manifest is not private |
skill-badge@deepseek-ai/dsh-skill-badge |
Bundled dsh badge skill provider for DeepSeek Harness | invariants skill | 2 | 1 | manifest is not private |
skill-filesystem@deepseek-ai/dsh-skill-filesystem |
Local filesystem skill provider for the DeepSeek Harness | fs home-paths invariants skill | 2 | 2 | manifest is not private |
tool-skill@deepseek-ai/dsh-tool-skill |
Model-facing skill loading tool for the DeepSeek Harness | agent invariants llm skill tools | 2 | 1 | manifest is not private |
spill3 packages · 9 source files · 3 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
spill@deepseek-ai/dsh-spill |
Abstract spill storage seam (ctx.spillStore) for the DeepSeek Harness — save oversized tool text and return a retrieval locator | brand invariants llm session | 3 | 1 | manifest is not private |
spill-local@deepseek-ai/dsh-spill-local |
Local-filesystem implementation of the DeepSeek Harness spill storage seam (private session-scoped files) | invariants spill | 3 | 1 | manifest is not private |
spill-policy@deepseek-ai/dsh-spill-policy |
Tool-result spill policy for the DeepSeek Harness — replaces oversized plain-text tool results with a retained preview plus a spill-file path (no service API) | invariants llm output-retention session spill tools | 3 | 1 | manifest is not private |
storage4 packages · 20 source files · 8 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
storage@deepseek-ai/dsh-storage |
Storage hub (ctx.storage): named backend registry plus mounted data-form facilities for the DeepSeek Harness | invariants | 5 | 2 | manifest is not private |
storage-domain@deepseek-ai/dsh-storage-domain |
Domain data form (ctx.storage.domain): schema-validated, event-emitting KV domains over storage backends for the DeepSeek Harness | invariants storage | 6 | 3 | manifest is not private |
storage-json@deepseek-ai/dsh-storage-json |
JSON file KV storage backend for the DeepSeek Harness storage hub | invariants storage | 5 | 1 | manifest is not private |
storage-sqlite@deepseek-ai/dsh-storage-sqlite |
SQLite storage backend (kv facet) for the DeepSeek Harness storage hub | invariants storage | 4 | 2 | manifest is not private |
subagent11 packages · 46 source files · 43 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
subagent@deepseek-ai/dsh-subagent |
Abstract subagent seam (ctx.subagents): named-provider registry for delegating to child agents | agent agent-presets brand invariants jobs llm sandbox sandbox-policy scope session session-persistence session-projection session-projection-cache tools user-approval | 18 | 10 | manifest is not private |
subagent-acp@deepseek-ai/dsh-subagent-acp |
Out-of-process ACP subagent backend: drives a child agent in a spawned subprocess over the Agent Client Protocol | agent invariants llm session subagent subprocess timeout | 3 | 4 | manifest is not private |
subagent-claude-code@deepseek-ai/dsh-subagent-claude-code |
One-shot Claude Code subagent provider over the official Agent SDK | invariants llm session subagent subprocess timeout | 4 | 5 | manifest is not private |
subagent-codex@deepseek-ai/dsh-subagent-codex |
One-shot Codex subagent provider over the official app-server protocol | invariants llm sdk-protocol session subagent subprocess timeout | 4 | 6 | manifest is not private |
subagent-dsh-sdk@deepseek-ai/dsh-subagent-dsh-sdk |
Out-of-process SDK subagent backend: drives a child DeepSeek Harness runtime subprocess over stdio JSON-RPC through the TypeScript SDK client | agent invariants llm sdk-client session subagent subprocess | 3 | 2 | manifest is not private |
subagent-fork-in-process@deepseek-ai/dsh-subagent-fork-in-process |
In-process fork subagent backend: runs a child agent seeded with a prefix of the parent's log | agent invariants session subagent subagent-in-process-driver | 2 | 2 | manifest is not private |
subagent-in-process-driver@deepseek-ai/dsh-subagent-in-process-driver |
Shared in-process subagent run driver: drives a child agent on ctx.agents (used by the spawn and fork backends) | agent invariants llm session subagent system-prompt tools | 3 | 4 | manifest is not private |
subagent-spawn-in-process@deepseek-ai/dsh-subagent-spawn-in-process |
In-process spawn subagent backend: runs a fresh child agent on ctx.agents | invariants subagent subagent-in-process-driver | 2 | 3 | manifest is not private |
tool-subagent@deepseek-ai/dsh-tool-subagent |
Model-facing subagent delegation tool over the ctx.subagents seam | agent invariants jobs llm subagent system-prompt tools | 2 | 3 | manifest is not private |
tool-subagent-control@deepseek-ai/dsh-tool-subagent-control |
Globally named send_message, interrupt_agent, and list_agents tools over ctx.subagents continuations | invariants llm session subagent tools | 3 | 3 | manifest is not private |
tool-subagent-report@deepseek-ai/dsh-tool-subagent-report |
Child-scoped report tool over ctx.subagents continuations | invariants llm subagent system-prompt tools | 2 | 1 | manifest is not private |
subprocess2 packages · 8 source files · 8 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
subprocess@deepseek-ai/dsh-subprocess |
Subprocess seam (ctx.subprocess) for the DeepSeek Harness — managed process groups, bounded spill-backed output, and escalated kills behind one abstract service | invariants | 3 | 1 | manifest is not private |
subprocess-local@deepseek-ai/dsh-subprocess-local |
Local-subprocess implementation of the DeepSeek Harness subprocess seam | invariants subprocess timeout | 5 | 7 | manifest is not private |
terminal3 packages · 11 source files · 9 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
terminal@deepseek-ai/dsh-terminal |
Persistent PTY session seam for the DeepSeek Harness — owner-scoped ids, backend registry, interactive sends, reads, signals, and awaited cleanup | agent brand invariants | 3 | 1 | manifest is not private |
terminal-bash@deepseek-ai/dsh-terminal-bash |
Persistent shell PTY backend over the DeepSeek Harness subprocess terminal primitive | agent invariants sandbox sandbox-policy session subprocess terminal | 5 | 5 | manifest is not private |
tool-terminal@deepseek-ai/dsh-tool-terminal |
Six model-facing persistent PTY tools with owner isolation and generic background-job integration | agent invariants jobs llm output-retention system-prompt terminal tools | 3 | 3 | manifest is not private |
test-support6 packages · 27 source files · 18 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
acp-snapshot@deepseek-ai/dsh-acp-snapshot |
ACP test kit: shared subprocess launcher, snapshot scenario harness, expected-output normalizers, and suite factory | invariants loader-smoke session | 6 | 4 | manifest is not private |
agent-loop-testkit@deepseek-ai/dsh-agent-loop-testkit |
Shared prerequisite mounting for tests that exercise the concrete agent loop | agent invariants llm session system-prompt tools | 2 | 1 | manifest is not private |
client-runtime@deepseek-ai/dsh-client-test-runtime |
jsdom slot test runtime: real Cordis Context + SlotRegistry + web-react renderer with test-owned session/workspace doubles for feature specs | client-runtime client-ui-slots client-web-react host-apiproxy invariants | 10 | 3 | manifest is not private |
llm-mock-server@deepseek-ai/dsh-llm-mock-server |
Scriptable OpenAI-compatible HTTP/SSE fault server for LLM recovery tests | invariants | 4 | 3 | manifest is not private |
llm-replay@deepseek-ai/dsh-llm-replay |
Replay LLM plugin: short-circuits llm/stream with model chunks reconstructed from a recorded session JSONL (keyless snapshot tests) | compaction invariants llm session | 2 | 1 | manifest is not private |
loader-smoke@deepseek-ai/dsh-loader-smoke |
Shared subprocess and direct-agent harness for keyless real-Loader example smoke tests | agent invariants llm session | 3 | 6 | manifest is not private |
todo1 packages · 4 source files · 5 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
tool-todo@deepseek-ai/dsh-tool-todo |
Model-facing todo_write tool over the DeepSeek Harness event-sourced session log | agent invariants session session-projection tools | 4 | 5 | manifest is not private |
typert4 packages · 27 source files · 22 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
generator@deepseek-ai/dsh-typert-generator |
TypeScript project analyzer and model-driven Typert artifact generator | invariants | 17 | 18 | manifest is not private |
loader@deepseek-ai/dsh-typert-loader |
Loader integration for generated Typert package contributions | invariants typert-registry | 2 | 1 | manifest is not private |
protocol@deepseek-ai/dsh-typert-protocol |
Compiler-independent Remote metadata and Typert provider protocols | invariants | 3 | 2 | manifest is not private |
registry@deepseek-ai/dsh-typert-registry |
Runtime registry for generated package reflection and Zod schemas | invariants typert-protocol | 5 | 1 | manifest is not private |
util7 packages · 14 source files · 7 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
atomic-write@deepseek-ai/dsh-atomic-write |
Zero-dependency atomic file replacement: exclusive-create random-suffix temp + rename carrying the caller-stated permissions (writeFileAtomic) | invariants | 2 | 2 | manifest is not private |
brand@deepseek-ai/dsh-brand |
Type-only Branded<B> nominal-typing primitive for the DeepSeek Harness | invariants | 2 | 0 | manifest is not private |
home-paths@deepseek-ai/dsh-home-paths |
Shared filesystem path helpers for the DeepSeek Harness | invariants | 2 | 1 | manifest is not private |
launch-environment@deepseek-ai/dsh-launch-environment |
Immutable DeepSeek Harness launch environment that records which layer supplied each value | invariants | 2 | 1 | manifest is not private |
native-command@deepseek-ai/dsh-native-command |
Zero-dependency no-shell execFile runner for host-native OS integrations: utf8 stdio capture, abort propagation, Windows hide | invariants | 2 | 1 | manifest is not private |
output-retention@deepseek-ai/dsh-output-retention |
Zero-dependency bounded-retention primitive: ItemRetainer/TextRetainer + neutral notice helpers (what did we keep, what did we omit) | invariants | 2 | 1 | manifest is not private |
timeout@deepseek-ai/dsh-timeout |
Zero-dependency timeout/deadline primitive: clampTimeout, deadline, timeoutOf, TimeoutReason (timing + classification only, no termination) | invariants | 2 | 1 | manifest is not private |
web6 packages · 24 source files · 14 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
tool-web@deepseek-ai/dsh-tool-web |
Model-facing web tools (web_search, web_fetch) over the DeepSeek Harness web capability seam (ctx.web) | invariants llm system-prompt tools web | 5 | 4 | manifest is not private |
web@deepseek-ai/dsh-web |
Abstract web access capability seam (ctx.web) for the DeepSeek Harness — search/fetch provider registry, registration-order-independent selection, request/result vocabulary, and the WebError taxonomy | invariants llm | 3 | 1 | manifest is not private |
web-fetch-http@deepseek-ai/dsh-web-fetch-http |
Anonymous public HTTP(S) fetch provider for the DeepSeek Harness web capability seam (ctx.web) | invariants timeout web | 4 | 1 | manifest is not private |
web-search-deepseek@deepseek-ai/dsh-web-search-deepseek |
DeepSeek-backed search provider (native web_search via the Anthropic-compatible API) for the DeepSeek Harness web capability seam (ctx.web) | agent credentials invariants launch-environment session settings web | 4 | 4 | manifest is not private |
web-search-exa@deepseek-ai/dsh-web-search-exa |
Exa-backed search provider for the DeepSeek Harness web capability seam (ctx.web) | invariants launch-environment web | 4 | 2 | manifest is not private |
web-search-perplexity@deepseek-ai/dsh-web-search-perplexity |
Perplexity-backed search provider for the DeepSeek Harness web capability seam (ctx.web) | invariants launch-environment web | 4 | 2 | manifest is not private |
workflow4 packages · 19 source files · 14 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
tool-ralph@deepseek-ai/dsh-tool-ralph |
Model-facing fresh-agent Ralph loop over the workflow and subagent seams | agent invariants llm subagent system-prompt tools workflow | 2 | 2 | manifest is not private |
tool-workflow@deepseek-ai/dsh-tool-workflow |
Model-facing workflow tool: run a JavaScript orchestration script over ctx.workflowEngine | agent invariants llm session system-prompt tools workflow | 3 | 2 | manifest is not private |
workflow@deepseek-ai/dsh-workflow |
Workflow capability seam: ctx.workflowEngine service, run vocabulary, and workflow/* events | agent brand invariants llm session | 4 | 2 | manifest is not private |
workflow-worker-thread@deepseek-ai/dsh-workflow-worker-thread |
worker-thread workflow engine: executes model-written orchestration scripts off the host event loop, bridging agent() calls back to ctx.subagents | agent brand invariants llm session subagent tools workflow | 10 | 8 | manifest is not private |
workspace1 packages · 6 source files · 2 tests
| Package | Upstream manifest description | Internal dsh dependencies | source files | tests | Distribution |
|---|---|---|---|---|---|
workspace@deepseek-ai/dsh-workspace |
Workspace entity registry (ctx.workspaceRegistry): durable workspace records with validated session attachment over the domain data form for the DeepSeek Harness | brand invariants session session-persistence storage storage-domain | 6 | 2 | manifest is not private |
Chapter verification checklist
- Re-ran the inventory only after verifying upstream
HEADequals the pinned baseline. - Enumerated every two-level package manifest: 49 groups and 219 packages.
- Captured all direct internal dependency and peer-dependency edges without inferring dynamic edges.
- Separated deterministic file counts from any claim about complexity or coverage.
- Verified every package has a README and invariant companion; exactly three own bundle patches.
- Corrected “not private” to “structurally publishable,” without claiming actual npm publication.
- Kept the six research planes explicitly labeled as this study's taxonomy.
My Learning Notes
Autosaved only in this browser. Nothing is uploaded or committed. Export Markdown whenever you want to keep a copy.