Every release member now declares publishConfig.access: public, so the scope no longer mixes levels: the 221 packages/*/* and apps/* manifests join the vendored framework and the native packages. check-workspace-constraints drops the per-sequence expectation and holds every release member to public, which is what stops a member from drifting back. Access is a property of the package, not of a version: the dsh packages already published as restricted become world-readable at their next publication.
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.permissionPresets |
user-questions/ |
Defines the provider-neutral human question/answer seam. | ctx.userQuestions |
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-presets.md, user-questions.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/.