DeepSeek Harness Plugin Hub

Publish and manage complete Harness Profiles. Discover Plugins for your next setup.

Explore

PluginsPresetsDocsNews

Community

Publish a pluginContactReport an issue

Resources

Plugin Hub on GitHubDeepSeek HarnessSystem statusPrivacy notice
© 2026 DeepSeek Harness Plugin HubPowered byPaxTech

Independent and unofficial. Not affiliated with, authorized by, or endorsed by DeepSeek.

Fund Research — DSH Plugin for DeepSeek Harness
← Plugins

dsh-fund-research

Fund Research

Research plugin for Chinese public mutual funds on DeepSeek Harness: collects fund data from public sources (Tiantian Fund / Eastmoney), computes deterministic metrics (manager profile, holdings penetration, style attribution, performance decomposition),

The plugin will be installed here. Keep web if you are unsure.

npx -y @deepseek-ai/dsh plugin --profile web add github:PerryLink/dsh-fund-research#84fa4c25f84823b203ff38d2b04d04aa9be85efc
READMECompatibilityVersions

Compatibility and provenance

Fund Research is published as dsh-fund-research and currently resolves to version 0.4.13. The Hub verifies its manifest and preserves the exact installation source for reproducible installs.

DSH compatibility
*
Runtime surfaces
any
Release source
github
Registry updated
9/20/2026

Versions

0.4.13stable
9/19/2026
0.4.12stable
9/18/2026
0.4.11stable
9/12/2026
Show 18 more versionsCollapse versions
0.4.10stable
9/10/2026
0.4.9stable
9/10/2026
0.4.8stable
9/9/2026
0.4.7stable
9/9/2026
0.4.6stable
9/7/2026
0.4.5stable
9/7/2026
0.4.4stable
9/4/2026
0.4.3stable
9/4/2026
0.4.2stable
9/2/2026
0.4.1stable
9/1/2026
0.4.0stable
8/30/2026
0.3.0stable
8/26/2026
0.2.0stable
8/23/2026
0.1.4stable
8/23/2026
0.1.3stable
8/22/2026
0.1.2stable
8/21/2026
0.1.1stable
8/20/2026
0.1.0stable
8/19/2026

Related plugins

More verified plugins in search-research.

Weknora@wxg-prc-cpg/dsh-weknoraWeKnora knowledge retrieval tools for DeepSeek Harness (dsh): semantic search, document reading and RAG/agent answers over your own knowledge bases.Free Searchdsh-free-searchFree web search for DeepSeek Harness: 13 engines (Bing/DuckDuckGo/AnySearch/SearXNG/Exa/Tavily/Keenable/Firecrawl keyless; Parallel/Perplexity/SerpBase/DeepSeek with key) + time filtering + platform search + web_fetch, with web settings UI.Find Plugindsh-find-pluginFind DeepSeek Harness plugins inside the agent — live GitHub dsh-plugin topic search, ranked by stars.Mimirdsh-mimirResearch-assistant plugin suite (literature search, research wiki, LaTeX compile, independent subagent review) for the DeepSeek Harness
Latest
0.4.13
DSH
*
HMR
Process restart
Tree shaking
Declares sideEffects: false
Unpacked size
Unavailable
Files
Unavailable
Surface
any
License
Apache-2.0
Source
github
GitHub
★ 44
Weekly downloads
593
Last push
9/19/2026
View source ↗Project homepage ↗
README badge

Click the badge to copy Markdown for your README.

Do you maintain this Plugin?Claim benefit · Priority security scan

Verify the GitHub repository declared in package.json to manage this listing. After you claim it, Hub will prioritize a security scan of the current version and publish the result when it passes.

Claim this Plugin →
Report an issue
DeepSeek Harness Plugin Hub
ProfilesPluginsCategoriesNewsDocsSign inManage Profiles
ProfilesPluginsCategoriesNewsDocsSign in

README

📊 dsh-fund-research

  • 1024 store channel: npm i -g dsh1024 once, then dsh1024 plugin --profile web add dsh-fund-research (counts toward the deepseek1024.com install ranking).

Deterministic research reports for Chinese public mutual funds, on DeepSeek Harness.

Every key number in every report traces back to a hashed source snapshot — gaps declared, never invented. Research only; not investment advice.

English · 简体中文 · Español · Português · हिन्दी


Compatibility

ComponentVersion
DeepSeek Harnessdsh-v0.1.6-alpha.2 (peer range admits the alpha.2 line: ). On this line 's third parameter is a for surface-eligible types only, so the audit events stay unappended (the tool results and sealed snapshot/report remain the audit trail). Verified 2026-09-18 (dual typecheck rulers + 176 tests).
>=0.1.2-rc.1 <0.2.0 || >=0.1.5-alpha.1 <0.2.0 || >=0.1.6-0 <0.2.0
Session.append
SurfaceIntent
fund-research/*
Node.js^22.19.0 || >=24.0.0
Package managerpnpm@11.7.0
PlatformWindows / macOS / Linux (host-only plugin)
Data sourcesTiantian Fund / Eastmoney public endpoints (no key, no login)

What you get

  • fund_research tool — one fund code in, a versioned Markdown research report out: overview, performance decomposition, holdings penetration, simplified style attribution, manager profile, risk & gap declarations, disclaimer, and a number-traceability appendix mapping every key figure to its snapshot JSON path and verification verdict. Sealed to fund-reports/{code}/{YYYYMMDD-HHmmss}/ as report.md + manifest.json + snapshot.json. background: true runs it as a fund-report background job.
  • fund_snapshot tool — a light snapshot card (latest NAV, published stage returns, scale, manager, top-3 holdings) sealed into the fund's day directory.
  • Deterministic metrics, zero model arithmetic — period/annualized return, volatility, max drawdown, Sharpe; top-N concentration, HHI, industry distribution, quarter-over-quarter holdings comparison; size-value style bands; manager tenure and peer comparison. All pure functions over the sealed snapshot.
  • Traceability as a first-class feature — before sealing, every key number is checked against the sealed snapshot.json through the optional dsh-data-quality service when it is installed, or through the built-in isomorphic fallback checker (builtin-fallback) otherwise. The appendix table records value ↔ path ↔ verdict.
  • Honest gaps — a failed or degraded data source produces an explicit data-gap declaration in the affected section. The plugin never fills a gap with an invented number.
  • Offline mode — offline: true (config or tool argument) serves everything from the storage-domain snapshot layer or the newest on-disk version snapshot, with zero outbound requests. Ideal for tests and reproduction.
  • asOf cutoff — asOfDate (ISO YYYY-MM-DD) truncates the NAV series to data on or before that date and stamps the snapshot + report with the cutoff; invalid or future dates fail loudly.
  • Checkpoint resume — <reportRoot>/.run-state.json records each pipeline stage (snapshot/report) with timestamps and an input fingerprint; resume: true continues from the first incomplete stage, reusing sealed artifacts, and rejects a fingerprint mismatch.
  • Source discovery record — every acquisition seals a code-generated sources-discovery.json (endpoint roster, primary/fallback resolution, per-source coverage and gaps, degradation reasons) and folds it into the report appendix as 数据源与缺口声明.
  • Multi-fund fan-out — codes accepts an array of fund codes; each fund runs the pipeline independently with per-fund failure isolation (failures become summary gaps), and the result is a summary card (code / asOf / seal hash / verdicts / failure reason).
  • Tracking ledger — every successful seal appends a deterministic line to <reportRoot>/.tracking.jsonl; includeComparison: true renders a deterministic 与上次对比 section (NAV range / scale / top holdings) with a gap declaration when no prior record exists.
  • Read-only review — after sealing, a fund-review job reviews the sealed artifacts (gap-declaration completeness, traceability-table consistency, disclaimer) and writes review-note.md; it skips gracefully (recorded in run-state) when no jobs service is present.
  • Per-source quality signals — every source carries deterministic quality metadata (requested/succeeded/fieldsPresent/parseWarnings/degraded), rendered in the appendix and surfaced in tool values so downstream can downweight (never hard-filter) a low-quality source.
  • Walk-forward stability summary — includeWalkForward: true adds a 样本外稳定性摘要 section: deterministic rolling-window return/Sharpe sign persistence and mean/std, explicitly labelled as statistical description only, not a prediction.
  • Session audit events (host-dependent) — fund-research/snapshot and fund-research/report log-only events carry the code, version directory, manifest hash, and gap list (model-visible ⟺ logged) when the host admits out-of-repo event types; on 0.1.2-alpha.1–0.1.5-alpha.1 hosts the known-type catalog is build-generated in-repo, so the gate appends nothing and the tool results plus sealed artifacts are the audit trail.
  • Methodology skill — a bundled fund-research skill teaches the model the metric口径 (definitions), gap handling, and compliance wording. Computation stays in code.

Quick start

> 用 fund_research 出一份 161725 的研究报告

The agent calls fund_research({ code: "161725" }); a minute later the workspace holds:

fund-reports/161725/20260819-153012/
├── snapshot.json            # raw extracted data + computed metrics + per-source sha256
├── sources-discovery.json   # code-generated endpoint roster + coverage + gaps
├── report.md                # the research report with the traceability appendix
└── manifest.json            # snapshot/report hashes, parameters, verify engine, gaps

.run-state.json sits at the report root and records the pipeline stages for resume: true. Every number in report.md's appendix carries a verified / mismatch / not-found / unverifiable verdict against snapshot.json — recompute any of them from raw.* with the documented口径 to audit the plugin itself.

Install & uninstall

dsh plugin --profile web add dsh-fund-research     # install (npm or tarball)
dsh plugin --profile web remove dsh-fund-research  # uninstall

Restart the profile after installing (bundle activation is restart-based). The shipped profiles compose the storage stack through dsh-base (dsh-storage + dsh-storage-json + dsh-storage-domain); the bundle patch mounts only the plugin row.

Configuration

All keys are optional (defaults shown); invalid values fail loudly at load.

KeyDefaultDescription
enabledtrueMaster switch; false mounts nothing at all.
eastmoneyBaseUrlhttps://fund.eastmoney.comTiantian Fund pingzhongdata host.
f10BaseUrlhttps://fundf10.eastmoney.comTiantian Fund F10 host (holdings + manager pages).
quoteBaseUrlhttps://push2.eastmoney.comEastmoney quote host for per-stock valuation snapshots.
quoteFallbackBaseUrlhttps://push2delay.eastmoney.comFallback quote host tried per stock when the primary fails (Eastmoney's own delayed-quote host); '' disables it.
requestIntervalMs1000Minimum gap between outbound requests (polite collection).
timeoutMs15000Per-request timeout.
retries2Retries per request with exponential backoff.
cacheTtlHours12Storage-domain snapshot reuse window.
riskFreeRate0.02Annual risk-free rate for the Sharpe ratio.
offlinefalseNever send requests; read the snapshot layer only.
reportRootfund-reportsWorkspace-relative (or absolute) report tree root.
styleQuotestrueFetch per-stock valuation quotes for style attribution.

Tools & surfaces

fund_research

ArgumentTypeDescription
codestringSix-digit fund code, e.g. "161725" (single fund). Mutually exclusive with codes.
codesstring[]Multiple six-digit fund codes: a fan-out with per-fund failure isolation (returns a summary). Mutually exclusive with code.
sectionsstring[]Section ids to render (overview/performance/holdings/style/manager/benchmark/risk/disclaimer). Default: all.
offlinebooleanRead the snapshot layer only (no network). Default: plugin config.
asOfDatestringISO 8601 date (YYYY-MM-DD) cutoff: only data on or before it is used (NAV series truncated). Empty = no cutoff; future dates fail loudly.
resumebooleanResume the recorded .run-state.json run from the first incomplete stage (reuses sealed artifacts); rejects a fingerprint mismatch. Default: false.
includeComparisonbooleanRender a deterministic 与上次对比 section against the previous .tracking.jsonl record; missing evidence is declared as a gap. Default: false.
includeWalkForwardbooleanRender a deterministic 样本外稳定性摘要 (walk-forward) section: rolling-window return/Sharpe sign persistence and mean/std. Statistical description only, not a prediction. Default: false.
backgroundbooleanRun as a fund-report background job; returns { kind: "background", jobId }. Default: false.

fund_snapshot

ArgumentTypeDescription
code (required)stringSix-digit fund code.
offlinebooleanRead the snapshot layer only. Default: plugin config.
asOfDatestringISO 8601 date (YYYY-MM-DD) cutoff: only data on or before it is used. Empty = no cutoff; future dates fail loudly.

Report sections

概览 overview · 业绩拆解 performance decomposition · 持仓穿透 holdings penetration · 风格归因 style attribution (simplified) · 经理画像 manager profile · 同类/指数基准对比 benchmark & peer comparison · 风险与缺口声明 risk & gaps · 免责声明 disclaimer · 附录:数字回溯表 traceability appendix.

Permissions & data

  • Reads the public Tiantian Fund / Eastmoney endpoints (fund.eastmoney.com/pingzhongdata/*.js, fundf10.eastmoney.com F10 pages, push2.eastmoney.com quotes) with a browser User-Agent and configurable polite pacing. No key, no login, no paid API, no anti-crawler circumvention.
  • Writes only under the configured report root inside the session workspace, plus the dsh_fund_research storage domain (latest snapshot per fund).
  • Never evaluates remote JavaScript (the pingzhongdata block is scanned, never executed), never stores credentials, never trades.
  • Session events are log-only audit records that ride an adaptive gate in src/events.ts: they append only when the host admits an out-of-repo type — its known-type set covers the vocabulary, or its Session.append takes an ignorable envelope. From 0.1.2-alpha.1 on (including 0.1.5-alpha.1) neither holds: KNOWN_SESSION_EVENT_TYPES is a build-generated in-repo catalog that excludes out-of-repo events by construction, and Session.append has no ignorable option, so the gate appends nothing — the tool results and sealed artifacts remain the reconstructable audit trail, and a failed append never changes a tool outcome.
  • 0.1.5-alpha.1 (adapted 2026-09-09): re-verified the gate on the new baseline — the catalog still excludes out-of-repo events and Session.append still cannot stamp an ignorable envelope, so audit-gate behavior is unchanged.
  • 0.1.5-rc.1 (adapted 2026-09-10): dependency pins move to the published 0.1.5-rc.1 line; no seam change affects this plugin's behavior.
  • 0.1.5-rc.2 (adapted 2026-09-11): dependency pins move to the published 0.1.5-rc.2 line; no seam change affects this plugin's behavior.

Security boundaries

  • Fund codes are validated as exactly six digits before touching a path or a URL; the report root resolves inside the session workspace.
  • Source payloads are hashed (SHA-256) at acquisition; the sealed manifest lets you detect silent upstream edits between runs.
  • Verification never blocks a seal: a broken optional dsh-data-quality service degrades to the built-in checker, and the engine used is recorded in the manifest and the appendix.
  • See SECURITY.md for the reporting policy.

Known limitations

  • Upstream structure drift. The parsers are strict by design: if Tiantian Fund changes a var Data_* shape or an F10 table layout, the affected source throws a SourceParseError naming the field, and the section degrades to a declared gap (the core pingzhongdata block failing aborts the run loudly). This is deliberate — a silent misparse is worse than a declared gap.
  • Style attribution is估算口径. Fixed size bands (≥1000亿 / 300–1000亿 / <300亿) and PE bands, plus within-holdings quintiles — no full-market distribution is consulted. The report labels this.
  • Holdings are quarterly disclosure data (披露滞后); the F10 page carries the latest two quarters.
  • One fund per call; no portfolio analysis, no PDF annual reports, no real-time quotes (the fundgz.1234567.com.cn realtime endpoint is dead and deliberately unused).
  • The Web UI "deliverables" turn row keys off mutation-tool call cards; this plugin's produced files surface through the tool call card's follow-along location (the fund's report directory), not per-file rows.

Development

pnpm install
pnpm run typecheck && pnpm run typecheck:ci   # types, incl. CI-strict
pnpm test                                     # 176 tests over real harness seams
pnpm run test:e2e                              # opt-in LIVE-network E2E (LIVE_E2E=1)
pnpm run build && pnpm run verify:artifacts   # tsdown + tsc declarations
pnpm run verify:self-contained                # no out-of-repo dependency specs
node scripts/check-readme-sync.mjs            # five-language README gate
node scripts/check-endpoints.mjs              # M3 endpoint-liveness probe (4 eastmoney hosts)
pnpm pack                                     # tarball

Tests run the REAL Context/SessionStore/ToolRuntime/LocalJobRegistry/storage seam from the 0.1.5-rc.2 peers; the network is replaced only at the fetch boundary by saved real-response fixtures (fixtures/, fund 161725). Refresh fixtures with the collector scripts in .tmp/.

Topics

dsh · dsh-plugin · deepseek-harness · cordis · fund-research · mutual-fund · investment-research · finance · research-report

Contributors

  • PerryLink — maintainer: the collector/metrics/report-seal pipeline, the endpoint-liveness probe, CI and releases, and the five-language docs.
  • dsh-fund-research contributors — collective author of the foundational build (plugin contract, config schema, tools, tests, packaging).

No external contributors yet — 0 community PRs/issues merged. Open an issue via the forms in .github/ISSUE_TEMPLATE/ or a pull request against main to be listed here.

PerryLink DSH Plugin Family

This project is one of the 40 DeepSeek Harness plugins maintained by PerryLink. If this one helps you, the others likely will too:

| dsh-budget | Cost governance for DeepSeek Harness: budgets, carbon, and latency in one panel. | |

PluginOne-liner
dsh-auto-reviewSecond-model auto-review on the approval chain, fail-closed by default
dsh-autotierAutomatic strong/cheap model-tier routing with deterministic risk guards and a /tier command
dsh-background-agentsDurable background child agents with a Web UI sidebar, messaging and interrupt
dsh-catalogDSH Desktop Market standard catalog source for the PerryLink family
dsh-cert-mcpRead-only MCP server exposing the certification registry: grades, snapshots and five-dimension evidence
dsh-checkpoint-rewindUnified session + workspace + config checkpoints with one-shot /rewind
dsh-claude-moveMigrate Claude Code, Codex, OpenCode and Hermes sessions, memories and skills into DSH
dsh-clickCross-platform native desktop control for DeepSeek Harness — Windows first.
dsh-composer-historyTerminal-style input history for the web composer: arrows, Ctrl+R search
dsh-data-qualityDeterministic dataset profiling, cleaning and citation verification
dsh-defendPrompt-injection, jailbreak, and secret-leak defense for DeepSeek Harness.
dsh-doublecheckEngineering-discipline guard: requirements grill, test gates, adversary review
dsh-drawUnified static-image generation routing for DeepSeek Harness.
dsh-fastRead-only performance diagnostics: load, spill, compaction and cache hit rate
dsh-githubGitHub PR/issue/CI integration with every write approval-gated
dsh-industry-researchIndustry and company research pack: chain map, policy timeline, company cards
dsh-kitOne-command starter pack that installs the core family
dsh-libraryLocal document knowledge base with hybrid search and citation-aware injection
dsh-local-aiLocal Ollama model discovery and task-based routing with cloud fallback
dsh-lsp-actionsLSP diagnostics, formatting, completion, code actions, symbols and rename
dsh-maskPII masking at the model boundary with a host-side restore table
dsh-mcp-panelMCP management console: /mcp command, Settings tab and trial calls
dsh-mementoApproval-gated cross-session memory protocol (ctx.memory + SQLite)
dsh-observeOpenTelemetry and Langfuse telemetry export from the session event stream
dsh-output-stylesRuntime-switchable model output styles
dsh-permission-rulesDeclarative allow/deny/ask rules plus a process-level network policy
dsh-plugin-certificationCommunity certification registry with repro-checkable grades and badges
dsh-plugin-doctorZero-dependency static + sandbox smoke detector for DSH plugins
dsh-plugin-guidePlugin-dev knowledge base, agent skill and the dsh-plugin-dev CLI toolchain
dsh-plugin-kitShared zero-runtime-dependency toolkit for the PerryLink DSH plugins
dsh-plugin-portalZero-dependency static portal rendering the whole plugin family as one page
dsh-plugin-upgrade-015Merged 0.1.3-alpha.1 → 0.1.5-rc.1 upgrade corridor card plus a zero-dependency seam scanner
dsh-reachMulti-channel approval/question bridge: WeChat, Telegram, Feishu + a session console
dsh-research-reportVerifiable research reports: evidence ledger, manifest seal, per-claim verdicts
dsh-scoreMulti-dimensional plugin quality scoring with an evidence-backed leaderboard
dsh-session-pinPin sessions and workspaces in the Web sidebar with per-pin colors
dsh-session-syncGit-backed cross-device session synchronization with keep-both merges
dsh-skill-pack-securitySecurity-audit skill pack plus the plugin_vet supply-chain gate
dsh-talkVoice-first session loop: speech-to-text input and text-to-speech replies
dsh-team-roomsCross-session team rooms: shared message bus, task board and timeline
dsh-test-driveIsolated install-and-smoke test drives with a pass/fail matrix
dsh-ticktickTickTick/Dida365 task bridge: session-header panel plus eleven agent tools
dsh-translateVendor parameter translation and deterministic JSON repair
dsh-wechatWeChat ↔ DSH bridge (Tencent iLink bot) developed with pan17, who hosts the repo
dsh-personal-directivePersonal directive injector with a top-bar toggle (fork of liucai2026/dsh-personal-directive)