Machine-produced by `pnpm run rescope-vendor --apply` plus the regeneration it prints: `pnpm install` for the lockfile, `pnpm run gen-third-party-notices`, `verify-translation-pairing --write` for the touched bilingual pairs, `gen-doc-graphs`, and one typert snapshot whose ids embed character offsets. `pnpm run rescope-vendor --check` verifies the result. Renames nine vendored packages (cordis, cosmokit, schemastery and the six @cordisjs plugins) and every reference that resolves them: manifest names and dependency keys, module specifiers including declare-module merges, cordis.yml plugin names, tsconfig paths, every Markdown fence, and `docs/` prose. Directory names, upstream versions, and dependency ranges are unchanged, so vendor/README.md still reads as an upstream snapshot; its manifest table gains an upstream-name column so THIRD_PARTY_NOTICES keeps MIT attribution pointed at each fork's origin. The tutorial tier follows the rename end to end: its yaml fences named plugins the Loader can no longer resolve, its `ts ignore-check` fences disagreed with the compiled fences beside them, and its prose quoted both. The contracts that told readers to keep upstream names — the root convention and the vendoring cookbook's tree comment and manifest invariant — now say to rescope instead. Two rules read `@deepseek-ai/` as "another workspace plugin": the client bundle purity gate now names the vendored libraries a browser bundle inlines, and the files where a bare `cordis` is an agent-preset id keep that product data.
@deepseek-ai/dsh-client-ui-plan
English | 中文
Plan-mode status chip, a pure browser surface plugin. The browser half occupies the conversation-declared conversation.input.plan single seat (to the right of the access-mode control); the node half is an empty apply (the roster row). Plan behavior itself — the /plan command, the boundary-or-idle-committed plan/mode state, the plan projection unit, and the policy section — is owned by @deepseek-ai/dsh-plan-mode, composed independently on the host roster.
Plan mode is entered through the /plan command path: users can choose Plan from the composer's + Command menu or type /plan, while this package renders no inactive plan control. While the host-computed plan projection's effective target is plan mode (pending ? !active : active — a folded host value, not client optimism, so an arriving frame corrects the chip either way), the seat renders the warn-colored "Plan ×" status button, which executes /plan off through command.execute; otherwise the seat stays empty — a host without plan-mode (or a Draft with no session) shows nothing. While plan mode is the effective target, the composer textarea's placeholder switches to the plan-task hint — "describe your task to generate plan", localized through ui-conversation's conversation locale namespace (the placeholder.plan / hint.plan keys) and shared verbatim with the claimed /plan command hint (rendered by the composer from the same projection; owner-supplied placeholders win).
The chip carries the accessible description "Plan mode on, press to turn off". Admission failures (matched: false, business errors, transport faults) surface as an inline error and the chip stays until the projection confirms the exit.
The model exits plan mode through the stable exit_plan_mode tool; its plan review uses the composed Web question channel.
Model Experience
Indirectly, through the /plan off command line the chip dispatches: @deepseek-ai/dsh-plan-mode owns the model-visible policy section, the exit-tool schema, and the logged state that line drives, while this package only renders the projection and sends what a user could equally type.
KV Cache effect
Entering or leaving plan mode changes the active plan:policy system-prompt section and therefore the request prefix; the chip itself adds no prompt content.
Known Limitations and Deferred Work
- Plan mode is guidance, not an execution sandbox — deployments that require enforced read-only planning must compose the independent sandbox and approval policies.
- The chip belongs to the default composer — a pending whole-composer interaction such as plan review temporarily replaces the InputBar and its chip.
- No inactive plan control — entry uses the shared Command source; a session with the capability but inactive mode shows no plan affordance in the tool row.