omdsh-dev/web-components
web-components支持
已收录
2
Ui
Bundle 已验证
预览
功能介绍
Web Components 支持。
适合
- 需要将已注册 Slot 树挂载为原生 Custom Elements,并使用类型化属性和事件绑定的 DSH Web 插件作者。
- 需要通过 Web Component 适配层隔离 Slot 所有权与实例生命周期的浏览器集成。
不适合
- 尚未提供 DSH Slot 宿主、浏览器运行时和 React 渲染接口的 Profile。
- 需要在页面生命周期内注销 Custom Element 定义或替换其构造函数的工作流;平台注册表不支持这些操作。
README
@deepseek-ai/dsh-client-web-component
| English | 中文 |
The DSH Web Component adapter as an installable profile bundle. It exposes a browser-side webComponent service that mounts registered slot trees as native Custom Elements, while keeping slot ownership, typed descriptors, property/event bindings, DOM outlets, and incarnation lifetimes behind the adapter boundary.
Repository shape
package.json # plugin package and dsh.bundle/dshClient manifests
cordis.patch.yml # browser opt-in profile layer
src/index.ts # host loader entry
src/client/ # browser implementation
src/invariant.ts # package invariant companion
lib/ # generated host/client artifacts
legacy/ # source-compatible host integration patch for older DSH snapshots
docs/ # detailed protocol reference
tests/ # unit, composition, and terminal-free browser tests
Bundle behavior
Installing the bundle adds a disabled web-component row. A Web profile enables it explicitly after the slot host and browser runtime are present:
- id: web-component
disabled: false
name: '@deepseek-ai/dsh-client-web-component'
The bundle layer only composes the plugin row. Slot host APIs, descriptor types, browser runtime, and the React renderer seam must come from the DSH version selected by the profile. The previous host-source integration patch is retained under legacy/ for migration of older DSH snapshots and is not part of the bundle package contract.
The client module never exposes a live React tree or raw DOM context to feature plugins. It accepts plain descriptors, resolves declared values from the incarnation context, assigns JavaScript properties rather than serialized attributes, and reports CustomEvent details through declared handlers.
Development
A full typecheck expects a sibling DSH checkout:
~/git/deepseek-harness
~/git/web-components
pnpm install
pnpm run typecheck
pnpm test
pnpm run build
The prepare script builds the host and browser entries directly from src/, so a Git install does not require sibling project references. pnpm 10 may ask the profile to allow the package’s prepare script; only approve a pinned, trusted checkout.
Model Experience
This package contributes no model-visible text, tools, or prompt sections. It only projects browser slot state and Custom Element events; model-visible behavior remains owned by the DSH services rendered through the slots.
Known Limitations and Deferred Work
-
CustomElementRegistrydefinitions are page-lifetime resources and cannot be unregistered; the adapter rejects constructor replacement. - The bundle does not provide a DOM or React renderer; the profile must already mount the DSH slot host and browser runtime.
- Older DSH snapshots require the compatibility patch in
legacy/because a bundle cannot add missing host source APIs; the currentmasteralso predates the Slots election/incarnation APIs, so full typecheck requires the compatible Slots change (for exampled97d6a1e).
常见问题常见问题
在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:omdsh-dev/web-components。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。
兼容性以页面上展示的 bundle 与 profile 状态为准。如果某个 profile 尚未检测到,请先保持禁用,并在生产启用前阅读仓库文档。
GitHub 链接和 activity 元数据是 release 与维护状态的来源。新版本发布后重新查看本页,确认目录已经观察到最新版本。