dsh-tool-call-guard
Neutralize tool calls with invalid JSON arguments on the wire so one malformed model generation cannot brick a session against strict OpenAI-compatible servers.
在 wire 层中性化 arguments 为非法 JSON 的 tool call,避免一次模型畸形输出让 session 在严格 OpenAI 兼容服务端上永久 400。
How to install
dsh plugin add dsh-tool-call-guard About
dsh-tool-call-guard English | 中文 Neutralize tool calls with invalid JSON **arguments** before they reach the wire — so one malformed model generation cannot brick an entire session. sh dsh plugin add dsh-tool-call-guard Why Some models occasionally emit a tool call whose arguments string is not valid JSON — most often unescaped inner quotes: json {"queries": [""The Idiots" trailer youtube official"]} Strict OpenAI-compatible servers (vLLM and friends) are **asymmetric about this**: **Streaming generation path** — lenient. The malformed call streams through, the harness persists it into the app…
Recommendation signals
Meta
- License
- MIT
- Language
- JavaScript
- GitHub stars
- 0
- mo. downloads
- 0
- Last push
- 2026-08-31
- Created
- 2026-08-30
Basic safety check
- Findings
- None
- Sources
- curated:awesome-dsh-plugin.com, curated:awesome-dsh-plugin/awesome-dsh-plugin
- Topics
- dsh-plugin
Related plugins
DSH-EasyRewrite
Renzic-Stone/DSH-EasyRewrite
Inline-edit and recall your own user messages in dsh web — lazily and seamlessly, with a version pager and per-session draft persistence.
dsh-maze
lamost423/dsh-maze
Execution maze for DSH sessions: the agent's real path — main advance, failed or dead-end detours, backtracks, request retries and subagent branches — drawn on one wall-clock timeline, with three tracks under each lane sharing that axis (tool-call density, token pulse, context pressure) and a deterministic analysis panel below it (tool result matrix, failure-recovery chains, duration distribution); watch it grow live in a session tab, or upload up to 5 session logs for a same-axis compare.
dsh-web
zhu1090093659/dsh-web-ui/tree/main/packages/dsh-chat-recovery
Chat recovery for DSH: edit the last finished user message and explicitly retry failed turns, both via session-fork branches that leave the original conversation untouched.