Files
deepseek-harness/packages/scaffold
Hypatia May 1db1cda464 fix(subagent): keep output past an empty terminal message with one selection rule
A max-tokens step that assembled only tool-call blocks appends an
EMPTY-content assistant/message (the usage host). Three consumers each
hand-rolled output selection and all let it erase the child's real
answer: the in-process readResult and the Activation subagent/end
capture took the last message unfiltered, and the SDK backend let any
message beat its streamed-text fallback; the in-process driver also had
no streamed-text fallback for cancelled turns.

dsh-subagent now owns the canonical rule in src/assistant-output.ts
(last non-empty assistant message, else the accumulated text-delta
stream) and all three consumers apply it. Regression tests in all three
packages fail under the previous selections.

Closes #1514
2026-08-10 11:16:29 +08:00
..

scaffold/ — create, launch, and drive projects from outside

English | 中文

This group contains developer tooling for Harness projects and the client stack for driving a Harness runtime from another process. Folders are role-named; npm names converge on dsh-sdk-* through the FIXME-tracked renames in the regrouping Agent Note.

Package Role
helper/ Provides the shared project-editing domain
scripts/ Provides the dsh-sdk project commands
create-sdk/ Creates new SDK projects
protocol/ Defines the SDK runtime wire protocol
client/ Drives a Harness runtime through the TypeScript client API
server/ Serves out-of-process SDK clients over stdio JSON-RPC
telemetry/ Provides launcher telemetry, consent, and redaction primitives

@deepseek-ai/create-sdk follows npm's scoped initializer naming convention; the other packages follow the repository's @deepseek-ai/dsh-* convention. See the developer-project workflow, project-editing architecture, and TypeScript SDK design.