DeepSeek Harness Plugin Hub

发布与管理完整 Harness Profiles,发现适合你的插件。

探索

插件目录环境预设文档中心动态

社区

发布插件联系我们报告问题

相关链接

Plugin Hub GitHubDeepSeek Harness 官方项目系统状态隐私说明
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

独立、非官方社区项目,与 DeepSeek 官方无隶属、授权或背书关系。

Short Tool Ids — DeepSeek Harness 插件(DSH Plugin)
DeepSeek Harness Plugin Hub
ProfilesPlugins分类动态文档登录管理 Profiles
ProfilesPlugins分类动态文档登录
← Plugins
S

dsh-short-tool-ids

Short Tool Ids

适用于 DeepSeek Harness 的作用域限定、可逆工具调用 ID 兼容插件

插件会安装到这里;不确定时保持 web。

npx -y @deepseek-ai/dsh plugin --profile web add github:mrbeandev/dsh-short-tool-ids#e88d7d951beced07e2e97728a5961d44ff5abb0d
README兼容性版本

兼容性与来源证明

Short Tool Ids 以 dsh-short-tool-ids 发布,当前版本为 0.2.1。Plugin Hub 会校验它的 manifest,并保存精确安装来源,便于复现安装结果。

DSH 兼容范围
*
运行环境
web
发布来源
github
Registry 更新时间
2026/9/20

版本

0.2.1stable
2026/9/20

相关插件

正在加载相关插件…

最新版
0.2.1
DSH
*
HMR
重启进程
Tree shaking
未声明可安全裁剪
解包体积
未提供
文件数
未提供
Surface
web
许可证
MIT
发布源
github
GitHub
★ 0
周下载
0
最近提交
2026/9/20
查看源码 ↗
README Badge

点击下方 Badge 复制 Markdown,粘贴到 README 即可。

这是你的 Plugin?认领权益 · 优先安全扫描

验证 package.json 声明的 GitHub 仓库,即可管理这个公开页面。认领后,Hub 会优先安排当前版本的安全扫描,并在通过后公开展示结果。

认领这个 Plugin →
报告问题

相关插件

继续浏览 developer-tools 分类下经过校验的插件。

Web App@deepseek-ai/dsh-web-appdsh 浏览器界面捆绑包:位于 dsh-base 之上的 Web 补丁层,加上运行时粘合插件(提供前端 dist、Web 界面提示符、bash 运行时变量和 URL 行)Sdk Minimal@deepseek-ai/dsh-sdk-minimal独立的最小 SDK 配置包:JSON-RPC、一个 DeepSeek 适配器、持久化 Shell 和 JSONL 会话Sdk App@deepseek-ai/dsh-sdk-appdsh SDK 配置包:基于 dsh-base 提供 stdio JSON-RPC 服务和进程生命周期管理Subagent Codex@deepseek-ai/dsh-subagent-codex基于官方 app-server 协议的一次性 Codex 子代理提供程序

README

dsh-short-tool-ids

An experimental DeepSeek Harness plugin with a per-provider Use short tool-call IDs checkbox in Settings → Models, on configured pi-ai provider cards.

Fixes ordinary oversized tool-call IDs in OpenAI-compatible Chat Completions history, such as maximum length 64, got length 81, without editing saved sessions.

Source repository

Why this plugin exists

This was built to recover a real DSH chat session that could no longer accept messages. The session history contained tool-call IDs with 81 characters, but the OpenAI-compatible API receiving the request accepts at most 64. Every new turn resent the invalid history, so the session failed before the model could respond with:

Invalid 'input[5].call_id': string too long. Expected a string with maximum length 64, but got a string with length 81 instead.

The original route used a custom cc provider. DSH's built-in normalization did not cover that provider during same-model replay, and renaming it to openai: cc would not activate the exact upstream openai branch. Renaming it to openai would still leave the same-model replay gap.

Use this plugin when an OpenAI-compatible Chat Completions provider rejects a resumed or tool-using chat because a tool-call ID is too long. Enable the toggle only for the affected provider in Settings → Models. The plugin shortens IDs at request time, rewrites matching tool results consistently, and leaves the saved session history unchanged. It is a targeted compatibility workaround, not a general fix for Responses or Anthropic message IDs.

Install from npm

Install it into the Web profile with one command:

dsh plugin --profile web add dsh-short-tool-ids

The package declares the bundled host patch and browser registration in its package.json metadata, so a global npm install is not required. Stop the existing DSH Web process when active work is finished, then restart it normally (without the previous short-ID --patch flag):

dsh web --no-open --port 3080

Refresh the existing Web page. In Settings → Models, enable Use short tool-call IDs for the provider that returns the ID-length error. Retry that chat.

Install locally

To install from a local checkout instead, from a terminal:

dsh plugin --profile web add "/absolute/path/to/dsh-short-tool-ids"

Stop the existing DSH Web process when active work is finished, then restart it normally (without the previous short-ID --patch flag):

dsh web --no-open --port 3080

Refresh the existing Web page. In Settings → Models, enable Use short tool-call IDs for the provider that returns the ID-length error. Retry that chat. All provider toggles default OFF, including cc when upgrading from v0.1.0.

The profile installation persists across restarts. Each enabled provider covers all its eligible models and sessions in that process. It does not enable other profiles or separately launched worker processes. Keep the local package folder in place if the package manager installed it as a link.

Do not load this package and the old startup overlay together. Two installs of the same adapter wrapper are rejected. The host client-package manifest and browser bundle are cached, so upgrading from the host-only plugin requires a server restart plus page refresh. There is no standalone UI server to start and no core Web rebuild is necessary; the plugin uses an existing settings slot.

Rollback:

dsh plugin --profile web remove dsh-short-tool-ids
# Stop/restart the existing server without any short-ID --patch flag.

Or switch a provider's toggle off; subsequent dispatches stop rewriting its IDs.

What the toggle does

  • Persists a boolean under the plugin-owned short-tool-ids.providers settings map, not in API keys or the provider's own configuration schema.
  • Defaults off. Changes take effect on the next dispatch, including a prepared request not yet dispatched. Already-dispatched requests are unaffected.
  • Supports pi-ai openai-completions models only. Other protocols and native adapters are untouched even when that provider's switch is on.
  • Ordinary IDs longer than 64 characters become call_ plus 48 SHA-256 hex characters (53 total). Calls and matching results receive the same mapping.
  • Leaves valid IDs, arguments, outputs, replay metadata, tool execution identities and saved session files unchanged. Works on existing history and future requests.
  • Checks for collisions against rewritten and untouched IDs; refuses collisions instead of pairing the wrong result.
  • Leaves compound Responses call_id|item_id IDs untouched; this is NOT a general Responses/Anthropic compatibility fix. Unsupported signed/native history that would require an unsafe rewrite is refused rather than stripped.

The checkbox disables itself for loading, unavailable, read-only or non-host settings and during saves. Path-scoped writes retain other provider settings and use revision fencing. Save conflicts/failures show an error rather than a false success; different provider cards subscribe to the shared settings scope.

Compatibility and risk

No guarantee of zero regressions. This is a version-gated prototype wrapper, not an officially supported adapter-decorator API. DSH's ordinary llm/stream middleware sees frozen durable requests and cannot replace their histories.

The plugin resolves the adapter from the running CLI's dependency tree, wraps PiAiAdapter.stream() and prepared-call dispatch reversibly, and retains original prepared handles/model snapshots. Runtime versions are deliberately pinned:

PackageTested version
@deepseek-ai/dsh-llm-pi-ai0.1.5-rc.2
@earendil-works/pi-ai0.85.1
Inspected CLI0.1.5-rc.1

Untested adapter versions refuse plugin startup and require review. Disable or remove the plugin if an upgrade prevents startup. It must not be combined with another wrapper of the same methods. The UI occupies the keyed settings.models.provider-card slot for llm-pi-ai; that slot supports only one occupant per key, so another plugin using the same key needs coordination.

Renaming a provider to literal openai: cc does not trigger the upstream exact provider === 'openai' branch. Even renaming to openai leaves the upstream same-model normalization gap.

Development

Zero npm runtime/build dependencies: server code is ESM; the dependency-free client builder emits DSH's lazy ModuleLoader format using the shell's existing React.

npm run build
npm test
DSH_TEST_HARNESS_ENTRY="/absolute/path/to/dsh/lib/bin.js" npm run test:integration
npm run pack:check

Use a workspace-local npm cache if desired (npm_config_cache="$PWD/.cache/npm"). Optional DSH_TEST_SESSION=/path/to/decoded-session.jsonl enables private-history replay checks. Never package or commit real session history. Generic test runs skip integration tests without the explicit installed CLI path; the integration script refuses a missing path rather than silently skipping adapter verification.

Tests include frozen-history preservation, matching results, boundary lengths, collisions, live provider toggles, protocol isolation, prepared snapshots, unload/duplicate guards, iterator cancellation/errors, settings schema, actual adapter HTTP serialization, provider checkbox writes/errors/read-only state and lazy browser-bundle registration. Mock HTTP tests use a temporary loopback SSE endpoint and fake credentials, close it afterward, and make no paid API calls. UI tests use a fake React hook harness, not a full browser DOM test.

v0.1.0's live repair was confirmed with a successful reply on a previously stalled session. The v0.2.0 provider-card UI was checked in a running DSH web session: toggle rendering, saving, and persistence across a page reload.

License

MIT. Maintainer release steps are in RELEASE.md.