Skip to content

This appendix enumerates every workspace package found in the checkout and gives each a one-line role. Use it as a companion to the architecture overview and the glossary.

The big picture

  • 245 package.json files total:
    • 219 workspace packages under packages/<group>/<pkg>/ (a further 7 test-fixture manifests under packages/typert/generator/tests/fixtures/ bring the packages/ tree to 226), spread across 49 functional groups (core, session, client, subagent, … — every packages/<group> directory).
    • 2 application entries under apps/.
    • 4 native entries under native/landlock-run/ (one launcher package plus three per-platform binary sub-packages).
    • 9 vendored framework packages under vendor/.
    • 4 entries under examples/ (one umbrella manifest plus three runnable demo apps).
  • Naming convention: host packages are @deepseek-ai/dsh-<name> (e.g. @deepseek-ai/dsh-agent, @deepseek-ai/dsh-session). Packages express a capability seam (an abstract service + its ctx.<key> vocabulary) or a provider/consumer of one; the three-role capability-seam pattern often draws them into families (dsh-fs + dsh-fs-local + dsh-fs-sandbox + dsh-tool-fs…). Vendored Cordis packages are kept under @deepseek-ai/cordis* so publishing the harness does not squat the upstream names. Client UI packages follow @deepseek-ai/dsh-client-ui-*.

Prices are read from each package's own package.json at the pinned revision.

packages/core/* — the loop, the scope, the registry

PackageRole
dsh-agentAgent interface, live registry, initiator scope, and agent/* event vocabulary
dsh-agent-loopThe concrete agent-loop plugin that drives turns and steps
dsh-agent-default-modelDefault model selection shared by Agent entry points
dsh-agent-tool-presentationComposes one agent's tools as Code Mode, native, or both
dsh-scopeThe scoped-context registration primitive (scope tags, scope-filtered dispatch)
dsh-sessionThe event-sourced SessionEvent store
dsh-system-promptSystem-prompt section and tool-schema assembly registry
dsh-toolsThe scoped tool registry and guarded execution pipeline

packages/acp/*, packages/api/*, packages/attachment/*

PackageRole
dsh-acpAutomation-only Agent Client Protocol server over JSON-RPC stdio
dsh-api-gatewayTypert Remote Host dispatcher and Client API endpoint
dsh-api-remotesRemote BFF assembly and Host Agent/Session lookup policy
dsh-attachmentDurable immutable attachment storage seam
dsh-attachment-localPrivate content-addressed $DSH_HOME attachment storage

packages/boot/* — the composition and launch layer

PackageRole
dsh-app-bootShared boot glue for app bins: .env loading, fail-loud Loader guards, profile/bundle composition, boot sequence
dsh-cmdlineImmutable command-line handoff from a dsh launcher to plugins injecting cmdlineArgs

packages/bundle/* — the profile bundles

PackageRole
dsh-baseThe shared core as a profile bundle; every profile's first patch layer
dsh-headlessThe one-shot bundle: a direct Agent/Session runner with no Host, HTTP, or browser layer
dsh-web-appThe browser-surface bundle: web patch layer over dsh-base plus runtime glue

packages/client/* — the web shell and UI (39 packages)

Client packages split into the shell kernel (web, web-react, runtime, modules, connection, hmr, locale, schema-form) and the UI feature plugins (ui-*).

PackageRole
dsh-client-webWeb shell kernel: bootWebShell, module holding, two-stage boot, AppRoot gate
dsh-client-web-reactShell-side React glue: createSlotRenderer, SessionProvider, useInvoke, uSES bridge
dsh-client-runtimeClient core services: SlotRegistry, SessionRuntime (scope tree + object layer)
dsh-client-modulesClient module system: node half builds the __DSH_BOOT__ entry graph, browser half the lazy-CJS table
dsh-client-connectionWire consumer layer: HTTP-up/WebSocket-down client with reconnect
dsh-client-hmrDev-only hot-reload driver for script-loaded client entries
dsh-client-localeLocale plugin: Host-backed zh/en preference and typed dictionaries
dsh-client-schema-formSchema/draft model layer for settings editors
dsh-client-ui-primitivesPure React atoms: controls, icons, markdown, JSON inspectors
dsh-client-ui-slotsSlot-registry pure core: SlotMap merging, register composition API
dsh-client-ui-themeTheme plugin: palette bootstrap, ThemeRuntime, --dsw-* tokens
dsh-client-ui-layoutThree-column AppFrame shell plugin with drag handles
dsh-client-ui-sidebarSidebar plugin: session tree, search, grouping, state dots
dsh-client-ui-conversationConversation domain: chat flow, composer, busy-Enter preference
dsh-client-ui-commandsClient command surface: global directory cache, / source, command UI kinds
dsh-client-ui-input-triggerInput trigger pipeline: / and @ detection and candidate menus
dsh-client-ui-model-selectionModel selection /model popupSelect
dsh-client-ui-planPlan-mode composer control over the plan projection
dsh-client-ui-goalSession goal GoalBar docked above the composer
dsh-client-ui-jobsSession-header background-job list
dsh-client-ui-subagentSubagent conversation catalog, continuation routing, @ reference
dsh-client-ui-toolTool call-tree renderer and per-tool presentation slot
dsh-client-ui-trajectoryTrajectory event ledger with an interactive timing overview
dsh-client-ui-attachmentPure React attachment atoms: draft rail, galleries, lightbox
dsh-client-ui-deliverablesProduced-files turn tail and clickable file references
dsh-client-ui-settingsSettings domain base plugin and the settings slot contract
dsh-client-ui-settings-generalGeneral settings section, shell trigger/header chrome, onboarding
dsh-client-ui-settings-pluginsPlugins settings section with feature-owned tabs
dsh-client-ui-settings-plugin-inventoryRead-only Cordis Loader inventory tab
dsh-client-ui-settings-modelsModels settings and product-onboarding dialogs
dsh-client-ui-skillWeb skill references and the dedicated skill tool row
dsh-client-ui-workspaceWorkspace picker plugin in the sidebar
dsh-client-ui-directory-picker-browseIn-app directory browsing surface
dsh-client-ui-directory-picker-nativeNative (OS chooser) directory-picker surface
dsh-client-ui-permission-presetsPermission surfaces over the permissions projection
dsh-client-ui-user-questionsWeb ask_user_question feature
dsh-client-ui-message-feedbackPer-message feedback controls
dsh-client-ui-agent-presetAgent-preset surfaces: defaults, session seat, composition editor
dsh-client-ui-workflow-runDurable workflow-run Conversation Node and member disclosure

packages/code-runtime/*, packages/compaction/*, packages/context/*

PackageRole
dsh-code-runtimeAbstract code-execution seam (ctx.codeRuntime)
dsh-code-runtime-worker-threadWorker-thread implementation of the code-execution seam
dsh-compactionAbstract compaction service seam (ctx.compaction)
dsh-compaction-basicToken-meter-driven compaction policy and LLM summarization backend
dsh-compaction-tool-result-prunerModel-free head/middle/tail pruning for tool-result surface nodes
dsh-command-compactHuman-facing slash command for explicit session compaction
dsh-agent-instructionsWorkspace context loader for AGENTS.md/CLAUDE.md
dsh-time-contextOpt-in durable per-step context with current time / elapsed time
dsh-tmux-contextOpt-in durable per-step context with tmux pane/window location
dsh-session-referenceCross-session snapshot references and durable untrusted model context

packages/credentials/*, packages/e2b/*, packages/extensions/*

PackageRole
dsh-credentialsAbstract credential seam (ctx.credentials)
dsh-credentials-localFile-backed credentials provider ($DSH_HOME/.env)
dsh-e2bShared E2B sandbox lifecycle for provider adapters
dsh-fs-e2bE2B filesystem implementation
dsh-subprocess-e2bE2B subprocess implementation
dsh-cordis-host-runnerDynamic package-definition registry and host-half sandbox lifecycle
dsh-cordis-client-runnerBrowser half of dual-half plugin packages
dsh-tool-cordisSelf-referential cordis toolset: inspect runtime, mount/dispose model-written plugins
dsh-client-ui-cordis(listed under client)

packages/feedback/*, packages/fs/*

PackageRole
dsh-message-feedbackLifecycle-bound per-message rating and note sidecar
dsh-command-feedbackLog-only session feedback producer and slash command
dsh-fsAbstract filesystem capability seam (ctx.fs) + fs/* event vocabulary
dsh-fs-localLocal-filesystem implementation of the fs seam
dsh-fs-sandboxSandbox-enforcing implementation: fences writes by per-call sandbox mode
dsh-fs-observation-policyObserved-state, read-before-edit, version-guarded write/edit policy plugin
dsh-tool-fsModel-facing fs tools (read, write, edit)
dsh-tool-fs-searchModel-facing discovery tools (glob, grep) over @vscode/ripgrep
dsh-tool-str-replace-editorView/create/literal-replace/line-insert tool over the fs service

packages/goal/*, packages/guard/*, packages/hooks/*

PackageRole
dsh-goalEvent-sourced same-session goal state and lifecycle service
dsh-goal-round-driverRace-fenced same-session goal-round driver
dsh-tool-goalModel-facing goal tools with execution-time authority checks
dsh-command-goalHuman-facing /goal slash command
dsh-tool-call-timeout-policyPer-tool deadline on exec.signal returning TOOL_TIMEOUT
dsh-repeat-tool-reminderAdvisory reminders when an agent loops on identical tool calls
dsh-hook-protocolShared Claude Code / Codex hook wire protocol and matcher engine
dsh-hooks-claude-codeBridge: run a Claude Code hooks config on Harness seams
dsh-hooks-codexBridge: run a Codex hooks config on Harness seams

packages/host/* — the webserver and pickers

PackageRole
dsh-host-webserverWeb route-registration plugin: HTTP/upgrade routes, index taps, static fallback
dsh-host-frontend-staticSPA dist server for the Web shell
dsh-host-apiproxyAPI gateway (ctx.apiProxy): fetch carrier pair + host-side plugin
dsh-host-plugin-inventoryRead-only Remote projection of current Loader plugin state
dsh-host-directory-pickerAbstract workspace-directory picking seam (ctx.directoryPicker)
dsh-host-directory-picker-autoAdaptive chooser resolving host situation at boot
dsh-host-directory-picker-browseIn-app browsing backend of the directory-picker seam
dsh-host-directory-picker-nativeNative-OS-chooser backend of the directory-picker seam

packages/identity/*, packages/interaction/*

PackageRole
dsh-anonymous-user-idShared anonymous user identity for telemetry and feedback correlation
dsh-user-questionsAbstract user-questions seam (ctx.userQuestions)
dsh-tool-ask-userModel-facing ask_user_question tool
dsh-user-approvalUser-approval seam (ctx.approval): one-shot permission decisions, fail-closed
dsh-permission-presetsProduct-level Permissions select bundling sandbox-mode and approval-policy knobs
dsh-commandsPlugin-owned human command registry

packages/jobs/*, packages/llm/*

PackageRole
dsh-jobsBackground job registry (ctx.jobs) for long-running tool work
dsh-jobs-localProcess-local implementation of the job registry seam
dsh-tool-jobsModel-facing job-control tools (job_output, job_list, job_kill)
dsh-llmProvider-neutral LLM service interface
dsh-llm-retryProvider-routed LLM request retry policy
dsh-token-meterReplay-aware token measurement service (ctx.tokenMeter)
dsh-llm-deepseekDeepSeek chat-completions adapter
dsh-llm-pi-aipi-ai-backed DeepSeek adapter (design twin of dsh-llm-deepseek)

packages/lsp/*, packages/mcp/*

PackageRole
dsh-lspAbstract LSP capability seam (ctx.lsp)
dsh-lsp-stdioGeneric stdio language-server provider
dsh-tool-lspModel-facing lsp tool with definition/references/implementation/hover
dsh-mcp-clientMCP client bridge: connects to servers and registers their tools

packages/plan/*, packages/preset/*, packages/runtime-diagnostics/*

PackageRole
dsh-plan-modeLogged per-agent plan mode with a direct slash command
dsh-agent-presetsPer-session agent composition from preset cordis.yml files
dsh-personaComposition-authored deployment persona section
dsh-invariantsRegistry service for package-owned runtime invariants

packages/sandbox/*

PackageRole
dsh-sandboxAbstract process-sandbox seam (ctx.sandbox) + SandboxProvider contract
dsh-sandbox-localLocal backends: bwrap, landlock-run, macOS Seatbelt, Windows ACL — probed, fail-closed
dsh-sandbox-policyPer-call sandbox-mode resolver and current model context
dsh-sandbox-windows-aclWindows ACL write-restriction backend (restricted-token spawn)

packages/schedule/*, packages/sdk/*

PackageRole
dsh-scheduleAgent-scoped durable after/at/fixed-rate reminders
dsh-sdk-protocolShared wire protocol: newline-delimited JSON-RPC stdio transport and named types
dsh-sdk-jsonrpc-serverStdio JSON-RPC server plugin for out-of-process SDK clients
dsh-sdk-clientTypeScript client SDK driving a runtime subprocess via the high-level turns API

packages/session/* — the event log and its projections

PackageRole
dsh-session-persistenceAbstract durable session persistence seam (ctx.sessionPersistence)
dsh-session-persistence-jsonlJSONL durable session persistence backend
dsh-session-persistence-sqliteSQLite durable session persistence backend
dsh-session-projectionSession-projection seam: type table, provider contract, ctx.sessionProjections
dsh-session-projection-cacheDurable per-session projection checkpoints with cold-read ladder
dsh-session-checkpoint-policySemantic durability checkpoints before model requests and tool side effects
dsh-session-statsWhole-log conversation counts and wall times projection
dsh-session-titleLog-backed session-title service and provider registry
dsh-session-title-llmShared LLM generation policy for title providers
dsh-session-title-first-prompt-llmFirst-message LLM title provider plugin
dsh-session-title-all-prompts-llmAll-user-messages LLM title provider plugin
dsh-session-telemetrySessionTelemetryBackend seam: capture, projection, redaction, handoff
dsh-session-telemetry-otelOpenTelemetry backend for the telemetry seam

packages/session-query/*

PackageRole
dsh-session-queryCombined session-query service contract with reads, traces, filters
dsh-session-query-sqliteConcrete backend with SQLite FTS5 search
dsh-tool-session-queryWorkspace-authorized model-facing history search/trace/read tools
dsh-session-log-exportWeb Session-log export command and download dialog

packages/settings/*, packages/shell/*

PackageRole
dsh-settingsAbstract user-settings seam (ctx.settings)
dsh-settings-fileFile-backed settings provider (settings.yaml)
dsh-shellAbstract bash executor seam (ctx.shell)
dsh-shell-envTool-independent managed DSH_* shell environment registry
dsh-bash-localLocal-subprocess bash executor provider
dsh-bash-sandboxSandbox-consuming bash executor provider
dsh-pwsh-localLocal PowerShell bash-executor provider
dsh-pwsh-sandboxSandbox-consuming PowerShell executor provider
dsh-tool-bashModel-facing bash tool with background-job and sandbox-escalation support
dsh-tool-bash-persistentOwner-scoped persistent Bash tool over the PTY service
dsh-tool-pwshModel-facing pwsh tool over the executor seam

packages/skill/*, packages/spill/*

PackageRole
dsh-skillAgent skill provider registry
dsh-skill-filesystemLocal filesystem skill provider
dsh-skill-badgeBundled dsh badge skill provider
dsh-tool-skillModel-facing skill loading tool
dsh-spillAbstract spill storage seam (ctx.spillStore)
dsh-spill-localLocal-filesystem spill storage (private session-scoped files)
dsh-spill-policyReplaces oversized tool results with a retained preview + spill-file path

packages/storage/*

PackageRole
dsh-storageStorage hub (ctx.storage): named backend registry + mounted data-form facilities
dsh-storage-domainDomain data form: schema-validated, event-emitting KV domains
dsh-storage-jsonJSON-file KV storage backend
dsh-storage-sqliteSQLite storage backend (kv facet)

packages/subagent/* — delegation

PackageRole
dsh-subagentAbstract subagent seam (ctx.subagents): named-provider registry
dsh-subagent-in-process-driverShared in-process run driver on ctx.agents
dsh-subagent-spawn-in-processIn-process spawn backend: fresh child agent
dsh-subagent-fork-in-processIn-process fork backend: child seeded with a parent-log prefix
dsh-subagent-dsh-sdkOut-of-process SDK backend: child runtime over stdio JSON-RPC
dsh-subagent-acpOut-of-process ACP backend: child agent in a spawned subprocess
dsh-subagent-claude-codeOne-shot Claude Code provider over the Agent SDK
dsh-subagent-codexOne-shot Codex provider over the app-server protocol
dsh-tool-subagentModel-facing delegation tool over ctx.subagents
dsh-tool-subagent-controlGlobally named send_message, interrupt_agent, list_agents
dsh-tool-subagent-reportChild-scoped report tool

packages/subprocess/*, packages/terminal/*, packages/todo/*

PackageRole
dsh-subprocessSubprocess seam (ctx.subprocess): managed groups, bounded output, escalated kills
dsh-subprocess-localLocal-subprocess implementation
dsh-terminalPersistent PTY session seam (ctx.terminals)
dsh-terminal-bashPersistent shell PTY backend
dsh-tool-terminalSix model-facing persistent PTY tools with owner isolation
dsh-tool-todoModel-facing todo_write tool over the session log

packages/test-support/*

PackageRole
dsh-loader-smokeShared subprocess + direct-agent harness for keyless Loader smoke tests
dsh-agent-loop-testkitPrerequisite mounting for agent-loop tests
dsh-llm-replayReplay LLM plugin for keyless snapshot tests
dsh-llm-mock-serverScriptable OpenAI-compatible HTTP/SSE fault server
dsh-client-test-runtimejsdom slot test runtime with real Cordis context and doubles
dsh-acp-snapshotACP test kit: subprocess launcher, snapshot harness, normalizers

packages/typert/*

PackageRole
dsh-typert-protocolCompiler-independent Remote metadata and Typert provider protocols
dsh-typert-generatorTypeScript analyzer and model-driven Typert artifact generator
dsh-typert-registryRuntime registry for generated reflection and Zod schemas
dsh-typert-loaderLoader integration for generated Typert contributions

packages/util/*

PackageRole
dsh-atomic-writeZero-dependency atomic file replacement (writeFileAtomic)
dsh-brandType-only Branded<B> nominal-typing primitive
dsh-home-pathsShared filesystem path helpers (incl. resolveDshHome)
dsh-launch-environmentImmutable launch environment recording each value's layer
dsh-native-commandZero-dependency no-shell execFile runner for OS integrations
dsh-output-retentionBounded-retention primitive (ItemRetainer/TextRetainer)
dsh-timeoutTimeout/deadline primitive and TimeReason taxonomy

packages/web/*, packages/workflow/*, packages/workspace/*

PackageRole
dsh-webAbstract web-access seam (ctx.web): search/fetch provider registry
dsh-web-fetch-httpAnonymous public HTTP(S) fetch provider
dsh-web-search-deepseekDeepSeek-backed search provider (Anthropic-compatible API)
dsh-web-search-exaExa-backed search provider
dsh-web-search-perplexityPerplexity-backed search provider
dsh-tool-webModel-facing web_search / web_fetch tools
dsh-workflowWorkflow capability seam (ctx.workflowEngine) + workflow/* events
dsh-workflow-worker-threadWorker-thread workflow engine bridging agent() to ctx.subagents
dsh-tool-workflowModel-facing workflow tool
dsh-tool-ralphModel-facing fresh-agent Ralph loop tool
dsh-workspaceWorkspace entity registry (ctx.workspaceRegistry) over the domain data form

packages/examples/* — in-tree demo apps

PackageRole
dsh-acp-demoACP automation server app: agent spine + JSONL persistence + ACP transport
dsh-agent-spine-demoThe default executor-less/UI-less agent spine with fallback titles
dsh-sdk-jsonrpc-demoBin booting an external Cordis config for the stdio JSON-RPC SDK runtime

dsh-client-ui-cordis lives in packages/extensions/ui-cordis; it is cross-referenced under both client and extensions for discoverability.

apps/*

PackageRole
dsh (CLI)The dsh CLI: profile boot, plugin management, and the browser UI alias
dsh-web-frontendWeb application entry: Vite build over the dsh-client-web shell; dist/ served by dsh web

native/landlock-run/* — the Landlock launcher family

native/landlock-run resolves to four packages that together ship a Linux Landlock self-restrict-then-exec launcher used by the local sandbox backend:

PackageRole
@deepseek-ai/node-addon-landlock-run-workspaceMonorepo workspace container for the launcher packages (no runtime role of its own)
@deepseek-ai/node-addon-landlock-runThe JS seam that resolves, probes, and speaks the launcher CLI contract
@deepseek-ai/node-addon-landlock-run-linux-x64Prebuilt static-musl launcher binary for linux-x64 (resolved as a file path)
@deepseek-ai/node-addon-landlock-run-linux-arm64Prebuilt static-musl launcher binary for linux-arm64 (resolved as a file path)

vendor/* — the vendored Cordis framework family

The Cordis framework and its foundation libraries are vendored under vendor/ and published under the @deepseek-ai scope so the harness does not squat upstream names. See the official-docs map entry for docs/rescope.md.

PackageRole
@deepseek-ai/cordisThe plugin meta-framework under dsh: services, typed events, reversible effects
@deepseek-ai/cosmokitCollection of common utilities for the framework
@deepseek-ai/cordis-plugin-groupNested plugin group for cordis
@deepseek-ai/cordis-plugin-hmrHot Module Replacement plugin for cordis
@deepseek-ai/cordis-plugin-includeInclude files in cordis configurations
@deepseek-ai/cordis-plugin-loaderPlugin loader for cordis
@deepseek-ai/cordis-plugin-logger-consoleConsole logger exporter for cordis
@deepseek-ai/schemasteryType-driven schema validator used for plugin config schemas
@deepseek-ai/cordis-plugin-timerTimer service for cordis

examples/* — runnable demos (not workspace-tracked versions)

Three standalone demo apps live at examples/, each with its own package.json. Three more demo folders — examples/mcp-memory, examples/web-cordis, examples/web-schedule — are config-only folders without a package.json of their own; the dsh-examples umbrella manifest at examples/package.json declares their cordis.yml plugins as workspace:* deps.

PackageRole
acp-agent-exampleRunnable demo: an ACP automation server over JSON-RPC stdio
jsonrpc-agent-exampleUnattended JSON-RPC coding-agent composition
headless-agent-exampleOne complete headless coding-agent turn

Further reading

  • Glossary — capability seams, agent scope, and goal terms used throughout this index.
  • Map of official docs — where each subsystem and catalog lives upstream.
  • docs/architecture.md — profiles, bundles, core packages, and event flow (repo-relative).
  • packages/boot/app-boot/README.md — the profile/bundle/patch composition machinery behind dsh-base.