1504 hand-written ranges pointing at workspace members become workspace:^, so pnpm pack substitutes each member's real version at publication: sibling peerDependencies follow the family version instead of being pinned at ^0.0.1, and a reference to a vendored package follows that package's own line. Without this, publishing 0.0.2 ships peer ranges naming a version that does not exist, and 0.0.1-rc.1 does not satisfy ^0.0.1 either. It also retires ranges that had gone stale against the workspace: ^4.0.0-rc.6 for a 4.0.0-rc.7 checkout, ^3.17.0 for schemastery 3.18.0. workspace:* stays where an exact published version is the point, which is how the Landlock entry pins its platform packages. A workspace constraint now requires the protocol, so a new package cannot reintroduce a hand-written range. The same constraint caught packages/boot/cmdline arriving on master without the publishable trio, which this change completes.
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 scaffold/server, and the shared bin boot glue boot/.