mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
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
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.