- 홈
- 플러그인
- 개발 및 플러그인 도구
- request-frame-preview
request-frame-preview
zampie/request-frame-preview
DeepSeek Harness가 모델에 보내는 정확한 요청 프레임을 미리 보고 다운로드하는 세션 헤더 버튼입니다. 전체 시스템 프롬프트, 선언된 tools 배열, 세션 로그에서 에이전트 루프와 같은 fold를 거쳐 재구성한 wire 메시지 배열(system/user/assistant/tool-result)을 제공합니다.
설치
dsh plugin --profile web add github:zampie/request-frame-previewREADME
request-frame-preview
Preview and download the exact request frame that DeepSeek Harness sends to
the model for a session: the full system prompt, the tool declarations
(tools), and the wire message array (system → user / assistant /
tool-result in order), rebuilt from the session log.
A small DSH plugin with a host half (one read-only HTTP endpoint) and a browser half (a "请求预览 / Request preview" button in the session header).
Install
dsh plugin --profile web add request-frame-preview
or from a local checkout:
dsh plugin --profile web add /path/to/request-frame-preview
Restart dsh web (or let the plugin market restart it) so the bundle is
loaded. A 请求预览 button then appears in the session header utilities,
next to the built-in "Session log" button.
What it does
Click the button to open an overlay showing, top to bottom:
- ① system prompt — message
#0of the wire array (collapsed by default). - ② tools — the tool declarations carried by the request, one
toolrow each; click a row to see its parameters. - ③ messages — the wire message array from
#1on, withuser,assistant,tool-resultchips,tool_call_ids, reasoning content andtool_callsexpanded inline.
下载 JSON / Download JSON saves the whole frame (config + system + tools
with full parameter schemas + messages) as dsh-request-<sessionId>.json.
How the data is produced
- Live session first:
requestHeader()andderiveMessages()— the very same folds the agent loop reads when it builds each request. - Cold session fallback:
sessionQuery.readSession+readSurfacefrom the durable log. - Wire expansion mirrors the DeepSeek chat-completions adapter's text path:
the system prompt becomes message
#0; eachtool-resultblock becomes its ownrole: "tool"message; assistant text, reasoning andtool_callsare split into their wire fields.
Layout
package.json dsh.bundle.patch -> ./cordis.patch.yml; dsh.client.platform web
cordis.patch.yml inserts the plugin row into the profile layer stack
lib/index.js host half: registers GET /request-frame-preview/api
lib/client.js browser half (window.__ModuleLoader__ bundle)
Security notes
- The endpoint is read-only (
GET/HEAD) and serves no state mutation. - Cross-origin requests are rejected when an
Originheader is present and does not matchHost; requests withoutOrigin(curl,<a download>) are allowed, mirroringdshmarket's GET route convention. - This is a debugging aid: it exposes the session's full system prompt, tool schemas and message contents to anyone who can reach the endpoint. The host endpoint is not a security boundary.