Files
deepseek-harness/packages/support/subagent-mock

@deepseek-ai/dsh-subagent-mock

A scripted SubagentProvider for testing the subagent seam without a model or a real child agent — the subagent analog of dsh-llm-replay.

It lets a test drive ctx.subagents and the model-facing dsh-tool-subagent through the real cordis Loader / export path, exercising provider registration, start-time capability validation, the run lifecycle (result / cancel / dispose), and the structured-output branch — all deterministically and keylessly.

Model Experience

Context surface What the model sees Token effect
Deterministic test result No child model runs. When exercised through dsh-tool-subagent, the parent sees the mock provider's configured reply or stop-reason error, and structured tests receive the configured object. Zero child-model tokens. Only the scripted final result is added to the parent test history.

Usage

Load it as a plugin (functional shape: name/inject/Config/apply, no default). Config (all optional):

Key Default Meaning
name mock Registry name to register the provider under.
reply mock subagent reply The scripted child's final answer text.
stopReason completed The stop reason result settles with.
capabilities all true Which start-time capabilities (outputSchema/depthLimit/toolFilter) the provider advertises.
inheritsParentContext false The context contract to declare; true exercises the fork-shaped tool wording in consumer tests.
structured { reply } Structured value surfaced when a request carries an outputSchema and the capability is on.

A cancel() issued before result settles flips the stop reason to aborted, so the cancellation path is observable.