편집자 노트

omdsh-dev/ex-setting

Automatic Web settings and composition configuration bundle for DSH

이것은 DeepSeek Harness(DSH) 플러그인입니다. 이 사이트는 GitHub README, 설치 정보, 유지보수 상태, 공개 보안 시그널을 모아 보여줍니다.

@deepseek-ai/dsh-ex-setting

English | 中文

自动 DSH Web 设置组合包。它把宿主侧配置 crawler 和浏览器设置导航放在同一个外部包中:host 枚举已注册的 settings namespace 和带 schema 的 composition row,client 把它们投影为一级设置区段和编辑器。

仓库结构

package.json              # host/client 包以及 dsh.bundle/dsh.client 清单
cordis.patch.yml          # 挂载 crawler 的 profile 层
src/index.ts              # host crawler 插件(服务提供 + Fabric handler 绑定)
src/routes.ts             # crawler 自有的 webserver composition 路由
src/nav-scroll.ts         # 浏览器 bundle 重写契约(serveBrowserTransform)
src/invariant.ts          # crawler invariant companion
src/client/               # 浏览器设置页(store、section、crawler wire)
lib/                      # 生成的 host/client 产物
docs/                     # host 和 client 协议详细说明
tests/host/               # crawler、route、invariant、loader 与 Fabric composition 测试
tests/client/             # browser store 和 section 测试
patches/                  # host patch 契约(为空:包外零改动)
scripts/                  # verify:self-contained、host patch 提取/应用
.agents/skills/           # dsh-plugin-* 贡献工作流

两个 runtime face 共享一个 package identity,因此 release/profile 安装只有一个 root 产物。浏览器 face 通过 @deepseek-ai/dsh-ex-setting/client 导出,并由 package 的 dsh.client 清单选择。

通过官方插件通道安装现成的 release 产物:

dsh plugin --profile web add https://github.com/omdsh-dev/ex-setting/releases/latest/download/pkg.tgz

profile 必须已经提供 cordis-fabriccordis-fabric-api 0.1.0 runtime pair。它们是本插件的必需 peer dependency,不是 dependenciesbundledDependencies,因此 release tarball 不会携带第二份 Fabric。本仓库的 pnpm-workspace.yaml 已启用 strictPeerDependencies,本地安装和检查在任一 peer 缺失时会失败。请先在消费该插件的 profile 中安装 Fabric release bundle;包自身的 workspace 配置不会复制到该 profile 的 pnpm 配置中。profile 仍必须包含该 Fabric bundle,因为它的 fabric-dsh launcher 负责安装 load-time hooks 和 bootstrap row。

组合行为

安装组合包后加入 web-config-crawler 行,表示部署决定通过 Web 配置面暴露所有已注册 settings namespace 和带 schema 的 composition row。profile 可以关闭:

- id: web-config-crawler
  disabled: true

Crawler 会脱敏 secret,按路径应用并通过 schema resolve 编辑,持久化完整 row 到个人 overlay,并通过删除 row 恢复下层组合。浏览器页面保持 settings namespace 与 composition row 的来源区分,并提供 schema 字段、secret、reset、revision conflict、restart notice 和失效刷新。

外部零改动设计

本组合包零包外宿主改动,靠三个机制实现:

  • Fabric 暴露加宽 — crawler 是 Fabric 依赖行:其 cordis.patch.yml 行在自身 config 下携带静态 web-config-crawler/exposed-namespaces stub 且默认 disabled,fabric-dsh 启动器会在启动时启用 Fabric 依赖行。普通 dsh 启动因此完全跳过本 bundle(应用照常运行、crawler 不加载);fabric-dsh 启动则在 hooks 就位后加载它,gateway 私有的 exposedNamespaces() 决策在加载时被改写,crawler 挂载时绑定对应的 after handler,required stub 让"transform 未绑定"的 fabric-dsh 启动直接失败(见 docs/web-config-crawler.md)。
  • crawler 自有的 composition 路由 — 浏览器侧通过 crawler 自己的 webserver 路由(/dsh-config/crawler/compositionsrc/routes.ts)读写 composition row,而不是 gateway RPC 域,因此写路径不向 apiproxyconnection 添加任何东西。
  • served 浏览器重写 — crawler 通过 serveBrowserTransform 提供 ui-settings-general client bundle,把 SettingsRoot 重写为发布 web-config-crawler/nav-scroll;浏览器侧注册对应的 before handler 注入对话框导航滚动样式(见 docs/ui-settings-plugins.md)。

Settings/composition wire 协议、API proxy handler、slot host 和 browser shell 由 profile 使用的 DSH 版本提供。

开发

宿主包(@deepseek-ai/dsh-*@deepseek-ai/cordis)直接从 npm registry 安装:每个运行时 import 都以 ^0.1.0-rc.0 系列声明 peer + dev 双依赖,开发解析全部来自本仓库自己的 node_modules——不再需要 sibling checkout。必需的 Fabric peer 也在 devDependencies 中以固定 GitHub Release tarball 提供,用于本地类型检查和测试;它们不会进入 release package。devDependencies 同时列全了测试专用宿主树的 peer 闭包(apiproxy 组合测试会 import 真实网关)。

pnpm install
pnpm run typecheck
pnpm test
pnpm run build
pnpm run verify:self-contained

release 产物在打包前从 src/ 构建,因此 profile 安装消费现成的 lib/ 产物,不运行安装期 prepare hook。checkout 开发使用上面的命令,完成后再打包到插件通道。

CI

仓库自带两个 GitHub Actions 工作流:

  • .github/workflows/ci.yml — 每次推送到 main 与每个 pull request:冻结 lockfile 安装、verify:self-contained、typecheck、测试与构建。
  • .github/workflows/release.yml — 每次推送到 main:执行验证、类型检查、测试、构建,打包现成 tarball(pnpm pack),发布到以 package.json 版本号命名的 GitHub Release(v<version>)。提升 version 即发布新版本;同版本再次推送会刷新该 Release 的产物。

模型体验

本组合包不添加模型可见的提示文本或工具。它只通过 loopback Web 设置面暴露配置;DSH settings、composition、session 与 permission 服务保留日志、脱敏和授权语义。

已知限制

  • 原生 Zod composition Config 可以通过文件配置,但通用编辑器不会渲染;编辑器要求 schemastery toJSON()
  • Crawler 的范围有意较宽;不希望自动编辑 composition 的部署应禁用该行并保留 gateway allowlist 行为。
REPOSITORY SIGNALS

보안 및 설치 증거

이 점수는 공개 저장소 메타데이터와 이 사이트에 등록된 설치 증거에만 기반하며, 코드 보안 감사와 다릅니다.

출처 추적 가능

공개 플러그인 카탈로그에서 왔으며, 공개 GitHub 저장소로 연결됩니다.

라이선스

저장소가 BSD-3-Clause 라이선스를 선언했습니다.

유지보수 활동

최근 180일 내 코드 업데이트가 있습니다.

설치 증거

재현 가능한 정확한 설치 메타데이터가 아직 등록되지 않았습니다. 저장소 설명에 따라 직접 확인하세요.

설치 라이프사이클 스크립트

검사한 패키지 메타데이터에 설치 라이프사이클 스크립트가 선언되지 않았습니다.