lemonmmice/dsh-agent-toolchain--plugins-dsh-postman ↗★ 0

@dsh-agent-toolchain/dsh-postman

在Web侧边栏提供Postman风格的HTTP/WS/TCP客户端 适合需要在DSH内部直接调试接口、发送网络请求的开发者。

包名
@dsh-agent-toolchain/dsh-postman
兼容性
待验证
版本
0.1.0
许可证
Apache-2.0
最近更新
2026年9月23日

安装

$npx -p @deepseek-ai/dsh dsh plugin --profile web add github:lemonmmice/dsh-agent-toolchain#8dc0b45342b159d82fcc5cda36110d2bdae97fe1&path:plugins/dsh-postman

使用方式

  1. 重启 DSH(插件注册与 client.js 加载在启动时生效),刷新页面后侧边栏出现「接口调试」入口。
  2. 面板发请求:选方法、填 URL、在「请求头 / 请求体」里补参数,点「发送」;响应区显示状态码 / 耗时 / 大小 / 响应头 / 响应体(JSON 自动美化)。URL 输入框回车=发送。
  3. 历史:每次发送自动记录,「历史」标签里点任意一条即可回填到编辑器复用。
  4. 调 WebSocket / 原始 TCP(复用同一套消息日志 + 发送框,按钮为「连接 / 断开」):
    • ws:// / wss://:协议标识变 WS。默认浏览器直连;勾选「经宿主(带鉴权头)」则由宿主发起握手, 把「请求头 / 鉴权」里的头带进 WS 握手(浏览器直连设不了握手头)。这些头在 HTTP 模式下设好即可(WS 模式下这些标签隐藏但值仍生效),支持 {{env}}。
    • tcp://host:port:协议标识变 TCP,由宿主开原始 TCP(浏览器根本连不了),走 /conn/* 转发;二进制帧显示为字节数 + base64。
    • 发消息 Enter / Shift+Enter 换行,消息日志实时收发,{{env}} 会替换后再发。
  5. 调 gRPC:URL 填 grpc://host:port,协议标识变 gRPC。粘贴 .proto →「解析 proto」列出服务 / 方法下拉 → 填请求 message(JSON) → 顶部「调用」发 unary 调用,响应展示在下方;可选 TLS,metadata 取自「请求头 / 鉴权」。
  6. agent 发请求:用 http_request 工具(method/url 必填,headers/body/timeoutMs 可选), 同样会计入面板历史(仅 HTTP/HTTPS)。

连接转发(宿主 WS/TCP 代理,供带鉴权头的 WebSocket 与原始 TCP 使用)

浏览器 WebSocket 不能设握手头、更连不了原始 TCP,所以由宿主开连接、ws 包发起握手, 浏览器经这几条路由桥接(host→browser 走游标长轮询,browser→host 走 POST):

  • POST /api/dsh-postman/conn/open — {kind:'ws'|'tcp', url?|host?+port?, tls?, headers?, subprotocols?} → {id, kind}
  • GET /api/dsh-postman/conn/poll?id&cursor — 长轮询该连接的事件(open/message/close/error,带单调 seq)
  • POST /api/dsh-postman/conn/send — {id, data, encoding?}(encoding:'base64' 发二进制,否则 utf8 文本)
  • POST /api/dsh-postman/conn/close — {id}
  • GET /api/dsh-postman/conn/status

上限:并发连接 32、单帧保留 256KB、单次发送 1MB、空闲 5 分钟回收。目标地址任意,控制口仍限本机回环。