deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
INSTALL REFERENCE
dsh plugin --profile web add github:yixiuzhemu/Skills-Manager
该命令指向仓库当前默认分支;尚无绑定当前 commit 的完整验证结果。
PROJECT README
Package:
@dsh-skills-manager/dsh-skills-managerA dual-face Skills management plugin for DeepSeek Harness (DSH).
Skills-Manager unifies Agent Skills discovered from many sources behind one management surface. It is a Cordis plugin split into two independently built and loaded halves:
ctx.skills provider so
every enabled skill becomes live for the harness.The two halves talk over webServer HTTP (/api/skills-manager): the client
calls typed routes with fetch and re-pulls a snapshot after every mutation.
Full architecture, data model, and design rationale live in DESIGN.md.
SKILL.md; or create a brand-new managed skill.api / git enterprise endpoints, sync, and
install advertised skills.~/.dsh/skills-manager/ with
revision tracking and file watching.Host half (Node.js) Client half (browser)
src/index.ts src/client/index.ts
SkillsManager service ◄── HTTP fetch ──► Settings panel (React)
JsonFileStore (~/.dsh/skills-manager/) re-pull snapshot after each change
tsc → lib/index.js tsdown → client/client.js
prefix route /api/skills-manager registered on
ctx.webServer; every response is a { ok, data } / { ok, code, error }
JSON envelope.same-origin / none sec-fetch-site); every mutating POST must carry the
x-dsh-skills-manager marker header and an application/json content type;
request bodies are capped at 4 MB.^22.19.0 || >=24.0.011.7.0 (declared as packageManager)pnpm install
pnpm build # clean → tsc (host) → tsdown (client) → normalize banner
pnpm build produces the host bundle under lib/ and the browser bundle at
client/client.js.
pnpm typecheck # host + client + test projects, --noEmit
pnpm test # node:test runner over test/**/*.test.ts
This package is a DSH bundle plugin. It declares:
dsh.bundle.patch → ./cordis.patch.yml (inserts the plugin into the profile
layer stack as id: skills-manager),dsh.client.inject → @deepseek-ai/dsh-client-ui-slots,
@deepseek-ai/dsh-client-locale,dsh.client.platform → web.Once the package is installed into a DSH host that consumes these fields, the
host half registers the /api/skills-manager route and the ctx.skills
provider on load, and the client half contributes the panel to the
settings.section slot. Open the harness Settings → Skills Manager to use
it.
pnpm watch # tsdown --watch for the client half
pnpm test:watch # re-run tests on change
The host plugin reads the following config (all optional; zero-config defaults resolve to a local setup):
| Key | Type | Default | Description |
|---|---|---|---|
projectRoot |
string |
'' |
Project root scanned as the project source. |
extraDirs |
string[] |
[] |
Extra directories scanned as the local source. |
agentRoots.codex |
string |
'' |
Override for the Codex skills directory. |
agentRoots.claude |
string |
'' |
Override for the Claude skills directory. |
agentRoots.copilot |
string |
'' |
Override for the Copilot skills directory. |
githubApiBase |
string |
https://api.github.com |
GitHub REST API base. |
githubRawBase |
string |
https://raw.githubusercontent.com |
GitHub raw content base. |
githubToken |
string |
'' |
Optional bearer token for authenticated requests. |
trashRetentionDays |
number |
30 |
Days a trashed skill is kept before auto-purge. |
scanOnStart |
boolean |
true |
Whether to run a discovery scan at startup. |
| Script | Purpose |
|---|---|
build |
clean → tsc -p tsconfig.json → tsdown → normalize-client-banner |
build:client |
Bundle the client half only |
typecheck |
--noEmit check across host, client, and test tsconfigs |
test |
node --test "test/**/*.test.ts" |
test:watch |
test in watch mode |
bundle / watch |
tsdown bundle / watch |
clean |
Run scripts/clean.mjs |
prepack |
build + scripts/preflight.mjs guard |
src/
index.ts Host plugin entry (config schema, inject, apply)
service.ts SkillsManager orchestration core
http.ts Host↔Client HTTP transport (/api/skills-manager)
file-store.ts JSON persistence (revision tracking + file watching)
scanner.ts Multi-source discovery
importer.ts zip / folder / file import + create
diff.ts LCS unified diff
github.ts GitHub repo & company source remotes
skill-file.ts SKILL.md parsing / serialization / id hashing
types.ts Shared wire vocabulary + Cordis event augmentation
client/ Browser half (panel, api client, wire types, locales, styles)
test/ node:test suites (http + api)
DESIGN.md Full design document
React.createElement, no JSX runtime), lightningcss
for CSS Modulesjszip, yamltsc (host) + tsdown (client)node:test with native TypeScript type strippingMIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: skill-management、skills。