mirror of
https://github.com/deepseek-ai/deepseek-harness
synced 2026-08-15 21:04:50 +00:00
api/remotes owns the allowlist and its type projection; type-meta owns the shape predicate, the selection seat, and the internal remote/host-event carrier signal; api/gateway's Client half turns that signal into $on callbacks through a private dispatch. apiproxy forwards each allowlisted emission verbatim in one host/remote-event frame, registered ahead of the derived invalidation frames so frame order is unchanged, and drops the three per-event variants it replaces. Owner packages move their Events declarations into client-safe ./types exports, so a consumer's listener signature is the Host's own declaration.
interaction/ — the human-collaboration plane
English | 中文
The services and plugins through which a human collaborates with a running agent — questions, approvals, permission presets, commands. These are product packages: real interfaces a person drives.
| Package | Role | ctx key |
|---|---|---|
commands/ |
Registers and dispatches human commands for interactive adapters. | ctx.commands |
user-approval/ |
Coordinates one-shot approval decisions. | ctx.approval |
permission/ |
Presents and persists user-facing permission presets. | ctx.permission |
user-interaction/ |
Defines the provider-neutral human question/answer seam. | ctx.userInteraction |
tool-ask-user/ |
Exposes human questions to the model. | (registers on ctx.tools) |
These packages integrate through existing agent and session contracts rather than changing the loop. Interactive applications provide the concrete command, approval, and question adapters; automation uses acp/, and runnable demo bundles live under examples/. The product dsh CLI composes these packages directly.
The subsystem references: approval.md, permission.md, user-interaction.md, and commands.md. The automation-only ACP transport is acp/, the SDK's JSON-RPC server half is sdk/server, and the shared bin boot glue is boot/.