Files
deepseek-harness/docs/subsystems
Turtle d1e22a7e24 feat(preset): declare Agent compositions in profile YAML (#4569)
* feat(preset): declare Agent compositions in profile YAML

* fix(preset): share scope binding cleanup and refresh module graph

* fix(preset): use host syntax colors in the YAML editor

* fix(preset): write new profile declarations as block YAML

* fix(preset): align eager activation with browser and worker surfaces

* fix(ui-agent-preset): retain the existing preset card layout

* fix(preset): keep rows waiting for a Host service mounted and re-audit after settlement

A preset row whose Host provider was still activating at declaration time
was reported as waiting for a missing service, and the registry recorded the
definition as broken for the rest of the process. Split the mount audit into
failed and pending rows: failures and root-realm leaks still reject the
mount, while pending rows stay mounted and every read and binding re-audits
them after the Host Loader tree settles.

Remove the accidental self-dependency of @deepseek-ai/dsh-web-app and its
lockfile self-link. Archive the copy-only preset authoring note, which the
declarative-preset note fully supersedes, and update the ralph note's
restore recipe to the profile-patch mechanism.

* chore(lint): re-key and prune the unknown-cast baseline after the master merge

* refactor(web-app): ship each Agent preset as its own bundle patch file

`dsh.bundle.patch` accepts an ordered file list, so the four shipped preset
declarations move out of the 1000-line web patch into
`presets/<id>.patch.yml`, one insert per file, applied after the host patch.
The host patch keeps the preset registry row. Gates and test scaffolds that
read the web layer resolve every patch file through `bundlePatchPaths`
instead of one hardcoded path.

* refactor(preset): drop the save notice injected into live Agents

The notice duplicated the save result the Web editor already shows, and
after the producer-owned message sources it would have needed its own
persisted source kind. Saving now only persists and reports the activation
diagnostic; the persistence catalog is unchanged from master.

* docs: regenerate the module graph after dropping the registry's llm dependency

* test(ui-agent-preset): cover the guide dialog's keyboard handling on the declarative section

* fix(preset): address the remaining review comments

Apply the lowercase id rule only when creating a declaration, so presets
declared with other ids stay editable. Export `isBuiltInPreset` from the
display fold and key the client card groups on it. Remove the dead `error`
and `retry` locale keys, the JSDoc orphaned by the `trust` removal, the
`trust` fields in the plugin-inventory test fixtures, and the stale
`dsh-agent-presets` package name in comments and READMEs.

* refactor(preset): make the Web preset page view-and-select only

Remove the child-plugin YAML editor, the `agent_preset` tool and the
registry's read/save Remote methods. Presets are declared and changed only by
bundle patches; the settings page keeps the roster, the new-task default and
the mode help, and its question icon explains that and offers to start a
Creator-mode task. The `editing-cordis-compositions` skill and the Creator
persona describe the bundle-based path, and the authored skill-load Session
and Web snapshots are refreshed for it.

* docs(skill): make the composition skill self-sufficient for preset authoring

State where the shipped declarations live, list every declaration field,
inline a complete minimal bundle and an override example, and name the
verification calls, so Creator mode no longer reads DSH package sources to
infer the format. Refresh the authored skill-load Session for the new text.

* test(tools): drop the removed agent_preset tool from the catalog expectation
2026-09-21 08:24:18 +00:00
..
2026-09-11 17:45:28 +08:00

Subsystems

English | 中文

One page per subsystem of the DeepSeek Harness: what it is, the data structures it moves, and — where a ctx service or event scope backs it — a generated Cordis API section carrying its service and event reference. The folder complements architecture.md, which describes behavior across subsystems (the service map, the session/turn/step lifecycle, the event taxonomy); each page here is the reference for one subsystem's vocabulary and wiring.

Page Owns
boot.md Current-profile plugin management and launcher reload coordination
core.md how packages/core controls the agent loop: the package-by-package loop description, agent creation and ownership (AgentHandle), the Agent handle's delivery/cancellation/interception contracts, and the repo-wide type patterns (…Map → derived-union, branded ids)
llm-streaming.md the packages/llm conversation types — Message/ContentBlock, the assembled model request, the StreamChunk wire protocol and adapter contract, BlockAssembler, and the LlmAdapter provider contract
token-meter.md immutable scalar and positional replay measurements with consumed-log revisions
scope.md scoped registration identity, dispatch carriers, and the owned Scope context
typert.md Remote invocation descriptors, lookup/Context declarations, Typert registries, and the Host Gateway/Client API boundaries
goal.md persisted goal identity, lifecycle snapshots, activation, change records, and round attribution
schedule.md Session-local reminder records, durable transitions, active views, and ordinary-conversation delivery
todo.md the todo package's whole-list item type, durable event ownership, projection, and open-turn invariant
deliverables.md what a turn hands to the user: PresentedFile deliveries from present and the Host-served WorkspaceChangesSummary of changed files from git snapshots
commands.md the human-command registry service: definitions, adapter discovery, direct invocation, results, and parsing views
session.md the full SessionEventMap variant catalog, TurnEndReason, deriveMessages(), execution enclosure, and standalone events
persistence.md the durability seam: SessionPersistence, the JSONL provider, session/flush, crash recovery, SessionHeader
settings.md the user-settings seam: SettingsNamespace registration, layered resolution (defaults → composition base → user document), owner scopes, hot commits
credentials.md the credential seam: CredentialRef references (never values) in configuration, per-operation resolution, UI-safe CredentialInfo, provider source layers
session-query.md logical records, bounded exact-event reads, relationship traces, semantic filters/documents, and full-text result pages
feedback.md lifecycle-bound per-message feedback records, optimistic versions, sidecar persistence, and the Host Remote contract
session-title.md durable title snapshots, cited source-message seqs, and the asynchronous provider contract
session-reference.md structured cross-session references: SessionReferenceInput/Candidate, prepared message contexts, the stable error taxonomy
system-prompt.md per-assembly context, tool-provider results, prompt sections, and cooperative assembly
tools.md ToolDefinition full fields, the schema DSL, ToolExecution/ToolResult, tool-presentation UI types, and the guarded execution pipeline
mcp.md external MCP connections, scoped tools and resources, server instructions, protocol results, and configuration ownership
user-questions.md the UI-backed human question/answer seam: AskUserQuestionRequest, answer/options vocabulary, provider API, error taxonomy
approval.md the one-shot user-approval seam: ApprovalRequest, ApprovalOutcome, per-session policy, audit events, and answerer contracts
office-to-pdf.md authorized Office-to-PDF conversion, native/WASM engines, and bounded shared reuse
attachment.md durable image identity and metadata, validation inputs, verified reads, and the AttachmentStore seam
shell.md the shell executor seam: ShellExecRequest/Spec, ShellRunResult, background ShellProcess handles
subprocess.md the subprocess seam: fully-explicit SubprocessSpawnSpec, offset-based output readers, unclassified SubprocessOutcome, and the managed DSH_* environment vocabulary
ssh.md the POSIX SSH connection and remote filesystem, subprocess and sandbox providers
terminal.md persistent terminal ids, backend/session contracts, send readiness, bounded reads, and owner-visible snapshots
sandbox.md per-session policy resolution and the process-confinement seam: file-effect modes, execution/provider policies, ConfinedArgv, enforcement and fail-closed errors
ptc-runtime.md the PTC execution seam: PtcRunRequest/Result, binding namespaces, captured logs, the PtcRunFailure taxonomy
computer-use.md exclusive named computer-use provider registration and Cua Driver integration choices
browser-use.md exclusive named browser-use registration, provider choices, and per-Session browser ownership
extensions.md versioned dynamic Cordis Plugins and Packages, Host/Client activation, approval, runtime inspection, and lifecycle teardown
filesystem.md the filesystem seam: FsTarget, read/write/edit outcomes, observed-file state, FsErrorCode
lsp.md the LSP navigation seam: LspQueryRequest/Result, LspProvider/Service, four operations, LspError
skills.md the skill service: discovery priority, SkillSummary/SkillDefinition, session-prefix catalog, model-facing skill loading
compaction.md the compaction seam: the compaction/* session events, CompactionResult, the CompactionEngine interface
subagent.md the subagent seam: the named-provider registry, SubagentStartRequest/Result/Run, the start-time-vs-runtime capability split
voice-input.md experimental named recognizers, transient audio and revision-guarded draft insertion
agent-team.md Agent Teams: implicit Lead identity, named continuable teammates, durable peer mailbox, and shared task DAG
web.md the web access seam: WebSearchRequest/Result, WebFetchRequest/Result, WebFetchBody, provider availability, WebError
spill.md the spill storage seam: SaveTextSpill, SpillOwner/SpillSource, SpillRef, the branded SpillLocator
workflow.md the workflow seam: WorkflowStartRequest, WorkflowMeta, WorkflowRun/Result, the workflow/* event payloads, WorkflowError fatality
jobs.md the background-job runtime: branded JobIds, the producer contract, consumer views, and ctx.jobs service behavior
permission-presets.md the permission-preset layer: PresetSpec/PresetOption, the derived custom state, the log-only permission/preset event
plan.md plan mode: the log-only plan/mode state, pending-selection flush, PlanModeConfig, the exit_plan_mode review arc
invariants.md the runtime-invariant registry: selection Config, InvariantInstaller/InvariantFailure, the empty-companion contract
web-server.md the HTTP carrier: WebRouteKind/WebRoute, match order, the claimable fallback seat, index taps
webhook.md authenticated provider deliveries, arbitrary programmatic rules, and fire-and-forget Workspace Session creation
storage.md the storage subsystem: the backend contract (StorageBackend), StorageForms, DomainSpec/Domain, domain/changed
workspace.md the workspace registry: Workspace/WorkspaceId, registration and resolution, the session cwd relationship
web-client.md the browser architecture: boot, Remote communication, paired Client models, UI adapters, Conversation assembly, Slots, and reconnect semantics
client-modules.md the web plugin table: dsh.client declarations, WebBootGraph wire composition, the bundle route and index tap
slots.md typed Web UI composition: declaration ownership, cardinality and scope, framework and feature injection, props derivation, and the shipped hierarchy
client-resources.md the client resource model: dsh-resource://<type>/… addresses, protocol providers and ResourceProtocolMap, the useResource global hook and its states, pins and release
sidebar-right.md the right Sidebar: resource and navigation addresses, tab-type registration and routing, the ctx.sidebarRight navigation service, the pane-tab slots and owner props, the resource model, and the Workspace Files service
conversation.md target-neutral Session-event assembly: Context identity, Location data, replay paths, view builders, and target-owned render nodes
session-projection.md the projection seam: SessionProjectionMap, the pure ProjectionDefinition unit, ProjectionSnapshot's consistent cut, the change feed
session-telemetry.md the outbound session-reporting capability seam: SessionTelemetryRecord/SessionTelemetrySeverity, the SessionTelemetrySink contract, and the session-telemetry/record redact waterfall

Type declarations and their JSDoc on these pages are source-equivalent and drift-checked by pnpm run verify-type-equiv (see development.md). Ordinary blocks preserve complete declarations; public-api blocks preserve body-stripped public class declarations. Cordis services and events use each page's generated Cordis API section.