dsh-tool-adapt
Manifest validSafety and compatibility layer for non-DeepSeek models in DSH Web.
dsh-tool-adapt
English
Portable settings transport — the plugin now resolves its settings scope on both the settingsScope (≤ 0.1.5) and configForms (≥ 0.1.7-rc.1) hosts, so the Settings card and pill switch keep working across the rename.
A compatibility and safety adaptation layer for non-DeepSeek model families in DeepSeek Harness Web. It guards dead escalation states, injects model-family conventions, fuses repeated failures, and provides a lifecycle-safe Settings card and optional composer pill. Its DSH 0.1.2+ remote.settings path falls back to the legacy connection API on older RC hosts.
中文
面向 DeepSeek Harness Web 非 DeepSeek 模型族的兼容与安全适配层:处理不可升级权限状态、注入模型族惯例、熔断连续失败,并提供生命周期安全的设置卡片与可选输入框胶囊。DSH 0.1.2+ 使用 remote.settings,旧版 RC 自动回退到 connection API。
Adaptation layer for foreign models in DSH web — official bundle form
(host pipeline wiring + __ModuleLoader__ client, no tapIndex injection).
ONE RULE: in a "dead" session (sandbox already danger-full-access, or
approval policy never) the model-facing tool schemas no longer offer
sandbox_permissions / justification (remove), and calls that still carry
them run with the fields stripped (strip) — no error, no loop.
- guard — remove + strip, derived from one
escalationDeadState(session)predicate. - L2 — DSH tool-call conventions section, gated by model family (default
excludes
deepseek-*). - L0 — consecutive-failure loop fuse: remind after N failures, optional veto.
Config is hot. When Host ctx.settings is available the plugin registers the
tool-adapt namespace and an official-style expandable Settings Card (same
disclosure chrome as Shell / Agent loop) becomes the writable source of truth.
That card registers on both settings seats DSH has used: the legacy
settings.plugin.item (key tool-adapt) on ≤ 0.1.5, and the keyed row seat
plugins.row.config (key dsh-tool-adapt#tool-adapt, i.e.
<package name>#<row id>) on ≥ 0.1.7-rc.2, where the 插件 panel (the first
sidebar panel icon) shows a
configure control for the row only while that exact key is registered.
The same card is also registered, additively and never as a gate, on the
root-scope settings.section list seat — identity YOTK · ADAPT, id
yotk-tool-adapt, order 61 — so on a host that declares that seat it is a
first-class page one click deep in 设置.
@deepseek-ai/schemastery is a private dependencies entry whose floor must be
≥ 3.18.4 (^3.18.4): the profile hoists an older line (3.18.2) that satisfies a
lower floor, and an entry whose Config exposes no volatile field is dropped from
SettingsForms.describe() — the card then renders nothing with no error.
A legacy plugins/tool-adapt.config.json is migrated once if the
settings user layer is empty; the old file is kept for rollback. The
GET/POST /api/tool-adapt/status|set routes remain as a compatibility
surface (loopback + same-origin fenced, 8 KiB body cap). The pill snaps to
one of the chat input's four corners (drag to switch); the anchor is
remembered in localStorage (dsh.toolAdapt.anchor). The pill mounts inside
the composer seat (same stacking level as the input box) at a normal
z-index, so DSH web popups (modal / menu / toast) can cover it. The pill
itself is status-only — edit the full form in the 插件 panel (on ≤ 0.1.5:
Settings → Plugins). The
pill is hidden by DEFAULT: the「显示状态胶囊」switch (ui.pill, default
false) at the top of the ADAPT card owns its visibility, and the pill
follows the hot /status config within one poll (or instantly after a save
in the same tab).
Install
dsh plugin --profile web add dsh-tool-adapt
Restart the existing DSH Web process afterwards: the Host scans the browser plugin roster at startup, so the Settings card and the optional pill appear only after that restart. Then open the ADAPT card — on ≤ 0.1.5 it is a card in Settings → Plugins; on ≥ 0.1.7-rc.2 open the 插件 panel (the first sidebar panel icon), find the dsh-tool-adapt bundle, and use the tool-adapt row's configure control; the「显示状态胶囊」switch (ui.pill, default false) owns the composer pill's visibility.
Local development, from this package directory:
dsh plugin --profile web add .
Either form records the package in the profile's dsh.profile.bundles, which is what mounts the Host half and serves the client bundle.
Config
The mounting row (in this package's cordis.patch.yml) passes
config.configFile — the JSON config path, resolved against the profile
working directory (default <cwd>/plugins/tool-adapt.config.json, keeping the
legacy location so existing configs migrate unchanged).
Compatibility
Versions
| Latest version | Published | Size |
|---|---|---|
| 0.2.2 | — | — |
| 0.2.3 | — | — |
| 0.2.4 | — | — |
| 0.2.5 | — | — |
| 0.2.6 | — | — |
Comments
Loading…
Similar plugins
by 782042369
DSH compatibility guard: repairs compaction limits, fail-safe sandbox escalation, and missing tool descriptions for third-party models; capability lookups are cached and the deprecated prompt-injection path is off by default.
★ 0
MIT
JavaScript
Sep 8, 2026
dsh plugin --profile web add dsh-model-compat-guardby ardli-firman
Searchable model selector for DeepSeek Harness — search models by name instead of scrolling
★ 0
JavaScript
Aug 22, 2026
dsh plugin --profile web add @ardli-firman/dsh-model-searchby 66wjz
DSH 提供商与模型高级管理台 · Provider & model management console for DeepSeek Harness (dsh)
★ 5
↓ 51/wk
MIT
JavaScript
Oct 24, 2026
dsh plugin --profile web add dsh-model-capby MkaliezZ
DeepSeek Harness health and safety diagnostics: /doctor inspects the effective model-visible tool surface.
★ 0
↓ 103/wk
MIT
TypeScript
Aug 29, 2026
dsh plugin --profile web add @mkaliezz/dsh-agent-doctorby AI-Scarlett
DSH Skill adapter for the build-dsh-plugin development workflow
★ 2
MIT
JavaScript
Nov 3, 2026
dsh plugin --profile web add dsh-build-pluginby chuling-lingling
给 DeepSeek Harness (dsh) 的第三方中转模型补上「推理等级」选择器 —— 和官方模型在聊天框里的体验完全一致。
★ 0
MIT
JavaScript
Sep 11, 2026
dsh plugin --profile web add dsh-plugin-reasoning-efforts