SoMark 解析
A DeepSeek Harness plugin that gives the model a somark parse tool: parse PDFs, images, Word, and PowerPoint files into structure-preserving Markdown and JSON through the SoMark document-parsing API, with page and token counts.
이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.
업스트림에서 중국어 README를 제공하지 않아 저장소 원본 내용을 표시합니다.
dsh-tool-somark
A DeepSeek Harness plugin that gives the model a somark_parse tool: parse PDFs, images, Word, and PowerPoint files into structure-preserving Markdown and JSON through the SoMark document-parsing API, with page and token counts.
The document read goes through ctx.fs, so any mounted filesystem policy applies to the read. Parsed content is returned as data and must never be executed.
Install
# from npm (once published)
dsh plugin --profile <name> add dsh-tool-somark
# from a tarball
dsh plugin --profile <name> add ./dsh-tool-somark-0.1.0.tgz
# from git (requires the package's `prepare` build; see the harness docs)
dsh plugin --profile <name> add github:you/dsh-tool-somark
Then boot the profile; the somark_parse tool registers automatically. The plugin is also usable as a plain library dependency for programmatic parsing (src/client.ts exports the API client).
Requirements
- A DeepSeek Harness profile with the base bundle (
@deepseek-ai/dsh-base), which providesctx.toolsandctx.fs. - A SoMark API key. Set
SOMARK_API_KEYin the environment or configureapiKeybelow. SoMark is an external paid service and receives the uploaded document contents.
Config
All fields optional; defaults apply when omitted.
| Field | Default | Meaning |
|---|---|---|
apiKey | unset | SoMark API key $SOMARK_API_KEY Empty → the tool errors at execution. |
baseURL | https://somark.tech/api/v1 | API base; /parse/async and /parse/async_check append. |
outputFormats | ['markdown', 'json'] | Formats requested when a call omits outputFormats. |
elementFormats | { image: 'url', formula: 'latex', table: 'html', cs: 'image' } | Partial per-element rendering-format overrides. |
featureConfig | cross-page off, inline image / table image / image understanding on, header-footer off | Partial feature-switch overrides. |
pollIntervalMs | 2000 | Delay between status polls. |
maxPollAttempts | 1000 | Maximum polls (≈ 33 minutes at the default interval). |
maxFileBytes | 209715200 | Upload cap; SoMark documents a 200 MB limit. |
markdownCapChars | 200000 | Inclusive cap on the markdown characters returned in one result. |
jsonCapChars | 200000 | Inclusive cap on the stringified JSON characters returned in one result. |
Example profile patch (cordis.patch.yml in the profile, or a --patch overlay):
- id: tool-somark
config:
apiKey: 'sk-…'
Invalid element/feature/output-format values fail the plugin load with a CONFIG_INVALID error rather than being silently accepted.
The tool
somark_parse takes a required path (absolute path to the document) and an optional outputFormats array. It returns the parsed Markdown (capped by markdownCapChars, flagged truncated), the page/token counts, and the structured JSON when requested and within jsonCapChars (otherwise flagged jsonOmitted).
Failures carry machine-routable codes on the tool result: NO_API_KEY, DOCUMENT_NOT_FOUND, DOCUMENT_NOT_A_FILE, UNSUPPORTED_EXTENSION, FILE_TOO_LARGE, CONFIG_INVALID, SUBMIT_FAILED, TASK_FAILED, POLL_TIMEOUT, ABORTED, REQUEST_FAILED, INVALID_RESPONSE.
Development
pnpm install
pnpm test # vitest (79 tests, 100% src coverage)
pnpm build # tsc → lib/
pnpm pack # tarball for dsh plugin add
Known Limitations and Deferred Work
- No batch/directory parsing — one
pathper call; callers loop the tool. - Element and feature formats are deployment config, not per-call arguments.
- No artifact persistence — the result returns content; consumers can persist via
tool/result. - Oversized JSON is omitted (
jsonOmitted), not spilled.
License
MIT
보안 및 설치 증거
이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.
공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.
GitHub 메타데이터에서 라이선스가 감지되지 않았습니다.
최근 180일 내 코드 업데이트가 있습니다.
재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.
검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.
missing-license