DeepSHPlugins
dsh-foundry 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-foundry

生態與開發JavaScriptMIT

外掛編譯器:以執行時服務提供藍圖登錄檔(腳手架 校驗 部署),配三個模型工具和一個藍圖畫廊設定頁。

3 Starshellosky983 更新時間 2026-08-16
訪問 GitHub 倉庫
dsh-foundry 專案預覽

專案介紹

中文

外掛編譯器:以執行時服務提供藍圖登錄檔(腳手架 校驗 部署),配三個模型工具和一個藍圖畫廊設定頁。

English

Plugin compiler with a blueprint registry (scaffold validate deploy) exposed as a runtime service, three model tools, and a blueprint-gallery settings page.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
hellosky983
倉庫
hellosky983/dsh-foundry
GitHub Stars
3
Forks
0
開發語言
JavaScript
許可證
MIT
最近推送
2026-08-16
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

57/ 100
維護活躍
82
文件與實用資訊
85
生態關注度
17
安裝便捷訊號
100
專案宣告訊號
100

README 含完整安裝與使用說明;關注度尚低(3);標準命令一鍵安裝。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin --profile web add github:hellosky983/dsh-foundry

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

dsh-foundry · Plugin Foundry(插件铸造厂)

Awesome DSH Plugin

一个自举式「一切皆插件」编译器:它本身是一个 DSH 插件,用来研发插件,并能被其它插件扩展。

Overview

Plugin Foundry 解决什么问题? 在 DeepSeek Harness(DSH)里编写动态 Cordis 插件需要记住繁琐的运行时契约(harness.defineTool 的 output:{schema,render}、parameters 逐属性 DSL、inject 声明、可逆副作用……)。本插件把这些契约固化成蓝图(blueprint),把「写插件」变成「选配方 + 填参数」,一键编译出可直接 cordis_define 的宿主/浏览器代码,并在定义前做静态校验。

适合谁? DSH 插件作者、需要把能力快速下沉成运行时工具的智能体(本插件与子代理皆可调用)、以及想用「插件扩展插件」的元编程场景。

核心价值:

  • 一个 foundry 服务(ctx.get('foundry')),任何插件都能 registerBlueprint(...) 续写配方 → 生态自我生长;
  • 三个模型工具 foundry_blueprints / foundry_scaffold / foundry_validate;
  • 九种内置蓝图覆盖 Host/Client/RPC/事件/服务/定时器/系统提示/Skill/文件工具;
  • 一张 Settings 里的蓝图画廊页(只读)。

Compatibility

项目版本
DeepSeek Harness (DSH)0.1.0-rc.6
@deepseek-ai/dsh-tools(peerDependency)^0.1.0-rc.6
最后验证日期2026-08-15
依赖声明在 package.json 的 peerDependencies。若你的 DSH 版本与 0.1.0-rc.6 差异较大,请先以 README 的「Development」冒烟测试验证。

Install / Uninstall

安装(link 方式)

⚠️ 不要用 dsh plugin --profile web add ./dsh-foundry(会把本地目录当 git 源解析而失败)。请手动 link。
  1. 编辑 $DSH_HOME/profiles/web/package.json,在 dependencies 增加:
   "dsh-foundry": "link:/绝对路径/dsh-foundry"

并在 dsh.profile.bundles 数组加入 "dsh-foundry"。

  1. 在 profile 目录安装:
   cd $DSH_HOME/profiles/web && pnpm install
  1. 重启 DSH(或重载 web profile),验证:
   dsh --profile web --dump-config   # 应看到 "# == dsh-foundry" 层

升级

更新 link 指向的源码目录后,cd $DSH_HOME/profiles/web && pnpm install,重启即可(link 包无需重装版本号)。

禁用 / 彻底移除

# 彻底移除:从 package.json 的 dependencies 与 dsh.profile.bundles 删掉 "dsh-foundry"
cd $DSH_HOME/profiles/web && pnpm install

Quick start

最小可复现示例(安装并重启后,在任意 DSH 会话里):

1. foundry_blueprints
   → 返回 9 个蓝图(id / name / category / description / params)

2. foundry_scaffold { blueprint: "host-tool",
                      params: { toolName: "hello", toolDescription: "say hi" } }
   → 返回可粘贴的 code.host(已内置 output:{schema,render} 契约)

3. 把返回的 code.host 交给 cordis_define + cordis_run
   → 一个名为 hello 的模型工具立即上线,可被你和子代理调用

扩展新配方(任意插件内):

const foundry = ctx.get('foundry')
if (foundry) foundry.registerBlueprint({
  id: 'my-recipe', name: 'My Recipe', category: 'host',
  description: '...', whenToUse: '...',
  params: [{ name: 'x', label: 'X', type: 'string', required: true, default: '' }],
  render: (p) => ({ host: 'return { apply(ctx) { ... } }', client: null, notes: [] }),
})

Configuration

本插件无配置项、无环境变量、无敏感信息。蓝图参数有内置默认值(如 host-tool.toolName 默认 my_tool),调用 foundry_scaffold 时按需覆盖即可。

项默认说明
蓝图参数见各蓝图的 paramsfoundry_blueprints 会列出每个参数的 default
/foundry/state 路由只读 GET仅向本地浏览器暴露蓝图元数据(无敏感数据)

Permissions & data

  • 文件系统:dsh-foundry 本体不读写任何文件。注意:其 fs-file-tool 蓝图会生成一个宿主文件读写工具——那是你之后自行部署的插件,非本插件行为;该蓝图已在参数说明与源码注释中明确提示(需先 fs.resolve(path)、listDir 结果需映射为标量)。
  • 网络:仅在 DSH 的本地 web 服务上注册一个 GET /foundry/state 路由(回环地址),返回蓝图目录元数据。
  • 凭据 / 用户数据:不访问、不读取、不上传任何凭据或用户数据。
  • 敏感项:无。

Troubleshooting

现象原因与解决
curl /foundry/state 返回 HTML 而非 JSON路由未注册。确认 bundle 用了 inject:['webServer'] 而非 ctx.get('webServer')(服务激活时序会导致后者在 apply 时为 undefined)
检查服务时报 no catalogued Service named "foundry"正常现象:ctx.provide('foundry') 是运行时服务,不出现在静态 Service 目录里,ctx.get('foundry') 仍可用
安装后工具未出现确认已重启、--dump-config 里有 # == dsh-foundry 层、@deepseek-ai/dsh-tools@^0.1.0-rc.6 已装
parameters.type must be a value schema object正式 bundle 的 defineTool 参数必须是逐属性 DSL({ prop: { type, required? } }),不能用 {type:'object',properties} 包装式

日志:插件无独立日志;宿主日志在 DSH 启动/运行输出中。回滚:按「Uninstall」移除,或把 profile 里 dsh-foundry 从 bundles 移除后 pnpm install。


Development

export PATH="/path/to/node/bin:$PATH"
# 语法检查(ESM)
node --check index.js && node --check client.js

# 冒烟测试(mock ctx,验证 3 工具 + foundry 服务 + /foundry/state 路由注册)
mkdir -p /tmp/t/node_modules/@deepseek-ai && ln -s <dsh-tools 路径> /tmp/t/node_modules/@deepseek-ai/dsh-tools
node --input-type=module -e 'import { name, inject, apply } from "dsh-foundry"; ...'
  • 蓝图统一在 index.js 的 BUILTIN_BLUEPRINTS,用 makeBlueprint(...) 追加即可。
  • 客户端画廊页在 client.js,通过 window.__ModuleLoader__.load 注册到 settings.section。
  • 贡献:欢迎 PR。请确保新蓝图满足「纯 JS 函数体、可逆副作用、正确的 inject 声明」,并附 node --check 与冒烟测试结果。

License & security

  • 许可证:MIT(见 LICENSE)。
  • 安全报告:请勿公开披露漏洞。发现安全问题请通过私有渠道(如仓库的 Private vulnerability reporting / 直接联系维护者)报告,我们会尽快响应。
  • 本仓库不含密钥、个人信息或私有内容。

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案