DeepSeek Harness 插件

Olina1Ye/internal-skill-workshop-plugin

Star 数 ★ 0 下载量(近 30 天) 784 分类 技能包 收录于 2026-08-28 npm internal-skill-workshop

在 DSH Web 中浏览、登录并安全安装来自团队 Skill Base 的公开或私有 Skill。

安装

# npm 包(预构建)

dsh plugin --profile web add internal-skill-workshop

# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)

dsh plugin --profile web add github:Olina1Ye/internal-skill-workshop-plugin

装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。

README

该插件的 README 只有英文版本。

internal-skill-workshop is a DeepSeek Harness Web plugin for finding and installing team Skills from a configured Skill Base server.

It provides:

  • a DSH Settings section for the team Skill Base address;
  • an administrator-provided default server address;
  • public catalog browsing without an account;
  • verification-code sign-in for private team Skills;
  • one-click installation into the DSH user Skill directory;
  • metadata for the author, version, visibility, type, compatible tools, and tags.

Publishing and Skill administration remain in Skill Base Web, skb, or Companion.

Install

You need a running Skill Base server that DSH Web can reach. The plugin is a team catalog client; it does not include or deploy the server.

dsh plugin --profile web add internal-skill-workshop

Restart DSH Web, then open Settings -> Internal Skill Workshop.

Team setup

An administrator can preset one shared server address in the profile's cordis.patch.yml:

- id: internal-skill-workshop
  config:
    baseUrl: https://skills.company.example

Every team member using that profile starts with the same address. A member may save a personal address from the plugin; the personal value takes precedence. Remote servers must use HTTPS. Loopback HTTP is accepted for local development.

Member workflow

  1. Open Settings -> Internal Skill Workshop.
  2. Confirm or enter the Skill Base root address without an /api suffix.
  3. Search immediately to browse public Skills.
  4. To see private Skills, choose Get code. Sign in on the Skill Base page and copy the generated verification code back into the plugin.
  5. Select a Skill and choose Install.

The plugin installs to:

$DSH_HOME/skills/<skill-id>

$DSH_HOME defaults to ~/.dsh. The plugin does not accept a path from the browser and refuses to overwrite an existing Skill directory. Updating and replacing locally modified Skills are intentionally out of scope for this release.

Credentials

The plugin never asks for a Skill Base password. It exchanges a five-minute, single-use verification code for a Skill Base personal access token (PAT). The DSH host stores the PAT in:

$DSH_HOME/internal-skill-workshop/credentials.json

The file is written with owner-only permissions where the platform supports them. The PAT is attached to Skill Base requests only by the DSH host and is never returned to the browser, placed in a URL, or stored in browser localStorage. Sign out removes the local PAT.

Skill Base currently issues long-lived PATs through this flow. Signing out of the plugin removes the local copy but does not revoke the server-side token; server administrators should remove an exposed or retired PAT from Skill Base.

API keys and translation

The DSH plugin does not require an API key. Do not paste a Cloudflare or Skill Base credential into its server-address setting.

If a Skill Base deployment provides a Translate to Chinese action on its publishing page, that is a separate server-side feature. The Skill Base server operator enables it by supplying these environment variables to the server process or container:

CLOUDFLARE_ACCOUNT_ID=<Cloudflare account ID>
CLOUDFLARE_API_TOKEN=<token with Workers AI access>
SKILL_BASE_TRANSLATION_TIMEOUT_MS=20000

SKILL_BASE_TRANSLATION_TIMEOUT_MS is optional and defaults to 20 seconds. The account ID and token must remain on the server. For Docker deployments, ensure the deployment explicitly passes them into the application container; adding them to a host .env file alone may not do that.

Security boundaries

  • The browser can call the plugin host only through a loopback-only DSH RPC channel.
  • The host validates the Skill Base URL and rejects remote HTTP, credentials, query strings, fragments, and redirects.
  • Downloaded archives are limited to 50 MB compressed, 100 MB unpacked, and 2,000 entries.
  • Skill Base JSON responses are limited to 5 MB, and untrusted Skill IDs are validated before any local path check.
  • ZIP traversal, absolute paths, symbolic links, duplicate paths, files outside the Skill root, and invalid SKILL.md frontmatter are rejected.
  • The host sends the browser only the catalog fields rendered by the UI.
  • Installation is staged and then atomically renamed into $DSH_HOME/skills/<skill-id>.

Development

npm test
npm audit
npm pack --dry-run

内容来自项目 README(GitHub)↗

链接

同类插件

查看整个分类 →

社区评论

评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。