jaxxchen003/foliodrop-dsh-publish:把智能体产出的内容发布为 FolioDrop 分享链接

前言

做智能体开发时常见一个收尾问题:agent 在会话里写好了一份 HTML 页面、Markdown 文档或一段代码演示,你想发给别人看,却没有现成渠道——手动复制粘贴、自己起服务、或者丢给通用网盘,都要多一步,而且内容一经发出就脱离了确认流程。DSH 的理念是「一切皆插件」,这类外部发布能力正适合以插件形式挂载,而不是写死在核心里。下面介绍的 foliodrop-dsh-publish 就是做这件事的:在 DeepSeek Harness 里连接 FolioDrop 账号,把经过你确认的内容发布成一个可分享的 URL。

这是什么

jaxxchen003/foliodrop-dsh-publish 是由 jaxxchen003 维护的 DeepSeek Harness 插件,当前版本 v0.2.0,以 MIT License 分发。它注册 foliodrop_connectfoliodrop_publish 两个工具:前者把 FolioDrop 账号接入 Harness 的凭证层,后者把用户确认过的内容发布为稳定 URL。

范围上它是 HTML-first 的:不是通用二进制文件托管,也不读取任意本地路径。

核心功能

发布与格式转换

  • 完整 HTML 直接发布,不做改写;
  • Markdown、文本、JSON、代码、SVG 会被转换为便携的自包含 HTML 页面;
  • 不读取任意本地路径,也不定位为通用文件托管。

授权与凭证

插件通过 loopback 回调、公开 OAuth 客户端注册(DCR)、PKCE S256 完成 FolioDrop 授权,换取一个长期的 DeepSeek Harness connection key,并通过 ctx.credentials.set 写入 FOLIODROP_API_KEY。发布源固定为 https://foliodrop.app,凭证不会发送到操作者配置的主机。重连时会轮换旧的 connection key。

确认机制与搜索索引

因为发布会上传内容并创建外部可访问的 URL,每次发布前插件都会使用 Harness 的问题 UI 做最终确认,即使在 Full access 权限预设下也不会被跳过。搜索索引默认关闭,需要通过 search_indexing_consent 显式同意。

成功输出

一次成功发布会包含:FolioDrop 作品 id、slug、绝对分享 URL、可见性、转换格式、字节大小,以及固定来源标注 DeepSeek Harness

失败恢复

容量不足或付费能力失败时,插件会提供 FolioDrop 升级与作品管理的恢复路径,并在用户明确确认后重试一次相同载荷。

安装与启用

先安装插件,再验证配置:

dsh plugin --profile web add github:jaxxchen003/foliodrop-dsh-publish#v0.2.0
dsh --profile web --dump-config

第一条命令从 GitHub 安装 v0.2.0 标签对应的插件源码,第二条确认插件已正确编入配置。注意:rc.6 的 profile 安装器可能报 @deepseek-ai/dsh-tools 缺少 peer 的警告,判断安装是否成功应以 --dump-config 的组合结果和一次真实运行启动为准,而不是安装命令的退出码。

典型用法

连接 FolioDrop 账号

Connect my FolioDrop account.

插件会启动 loopback 回调、注册公开 OAuth 客户端、打开一次性的 FolioDrop 登录授权链接,完成 PKCE S256 校验后换取长期 connection key 并写入凭证层。如果浏览器没有自动打开,Harness 的问题 UI 会显示确切的一次性授权链接,可以手动打开或复制。

发布内容

Publish this Markdown release note to FolioDrop as a visible work. Do not allow search indexing. Return the share URL.

工具接受的参数:contentcontent_typetitledescription、可选代码 languagevisibility(默认 visible,可选 hidden)、search_indexing_consent、可选 source_model。发布前的确认环节允许你保留提议的设置、把可见作品改为隐藏、关闭搜索索引同意,或直接取消。

手动个人 key 作为高级后备

export FOLIODROP_API_KEY='fd_...'
dsh --profile web

环境变量提供的 key 为只读;使用自动重连前需移除或替换该环境值。

兼容性与注意事项

  • 本版本针对 DeepSeek Harness 0.1.0-rc.6 测试。Harness 处于 developer preview,升级后需重新验证全部五个集成接缝:defineTool 注册与输出校验、ctx.credentials.resolve/set('FOLIODROP_API_KEY')ctx.userQuestions.ask(...)(连接与发布确认)、loopback OAuth 回调 / DCR / PKCE / token 交换、无 question provider 时 fail closed。
  • Node 引擎要求 ^22.19.0 || >=24.0.0,依赖 @deepseek-ai/dsh-tools 0.1.0-rc.6
  • 包为纯 ESM JavaScript,安装不执行 prepare 或其他生命周期构建脚本。
  • 错误信息永不包含 API key 或内容正文。
  • 许可方面,插件包以 MIT License 分发;该包内许可不改变此目录外 FolioDrop 应用的许可证。

最后提醒一点:插件以当前 dsh 进程的权限运行,安装前应检查源码与许可证,确认范围符合你的预期。

适用场景

如果你已经在用 DSH,需要把 agent 生成的 HTML、Markdown、代码演示等产物变成一个可分享链接,并且希望保留发布前的人工确认、默认不进搜索索引、把发布源固定在单一站点而不是交给 agent 自由选主机,这个插件是合适的选择。反过来,如果你需要的是任意文件托管或本地路径上传,它明确不做这两件事。

结尾

经过上面的步骤,agent 的产出就能在一个受控流程内变成稳定 URL:连接一次账号,之后每次发布都经过确认、输出可追踪的分享链接。项目主页与目录页如下:

  • GitHub:https://github.com/jaxxchen003/foliodrop-dsh-publish
  • 目录页:https://www.skillhub.cn/plugins/jaxxchen003/foliodrop-dsh-publish

其中目录页是独立的社区站点,与 DeepSeek / 幻方无官方从属关系,插件信息请以 GitHub 仓库为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜