Every package under packages/, apps/, and vendor/ drops "private": true and declares publishConfig.access "restricted": the repository now states which packages it publishes instead of deciding it at publish time. Each one also declares its repository and directory, which is how a consumer of a private package reaches its source. The Landlock packages move to restricted with them. They have never been published, so nothing anonymous depends on them today, and the whole @deepseek-ai scope stays private. The workspace constraint that required every package to be private now applies to non-members only, and asserts the publishable trio on each release member.
guard/ — loop-hygiene guard family
English | 中文
Behavioral guard plugins watch the agent loop for unproductive patterns and enforce per-call budgets. A guard is a self-contained consumer of core services and extension points, not a swappable capability.
| Package | Role | ctx key |
|---|---|---|
repeat-tool-guard/ |
Advisory reminders for repeated tool calls | listens on tool and agent events |
timeout-policy/ |
Arms per-call tool deadlines as deployment policy | registers a tools/execute listener |
Reminders travel as additionalContexts on the tools/post-execute decision and are appended as logged plugin-sourced user/message events (tools); the timeout split across dsh-timeout, capability termination, and this policy layer is recorded in the timeout-library Agent Note.