ayuanwong/dsh-ux--packages-client-web-react ↗★ 14

@deepseek-ai/dsh-client-web-react

Shell-side React glue: createSlotRenderer, SessionProvider, bindSnapshotSelector (uSES bridge), useInvoke 适合开发外壳界面与插槽扩展的工程师,用于接入 React 渲染与状态订阅。

Package
@deepseek-ai/dsh-client-web-react
Compatibility
Unverified
Harness peer range
workspace:^
Cordis peer range
workspace:^
Version
0.0.1-rc.2
License
BSD-3-Clause
Last updated
Aug 16, 2026

Other repositories with this package name

Install

This plugin has no verified bundle, or compatibility checks failed. Read the repository notes first. Read the full README ↗

@deepseek-ai/dsh-client-web-react

English | 中文

Shell-side React glue for the slot terminal design: createSlotRenderer (the SlotRenderer implementation the shell installs into the runtime SlotRegistry), SessionProvider (framework-wired render prop, also injected as a standard seat to entries declaring session-scope children), bindSnapshotSelector (the one hook constructor — hosts and engines traffic in bare observable sources; every hook binds here, cached per source), useInvoke. Chain-slot outlets run the registered selectors in chain order at render time and mount only the elected entry, its select return joining the props as matched; the renderSlotChain binding is per-entry cached like renderSlot. The snapshot-store engine and defineStore live in runtime; business plugins depend on ui-slots types only, never on this package.

Model Experience

None, as the ctx↔React machinery runs entirely in the browser; nothing here reaches a model request.

KV Cache effect

None; this package neither assembles nor sends a provider request.

Known Limitations and Deferred Work

  • The persist middleware corrupts primitive-state stores — it object-spreads state on save, so a SnapshotStore round-trips as a character map; the engine hand-rolls persistence instead (see attachPersistence).
  • UseSession is deliberately wide (object snapshot) — the dependency direction (runtime → web-react, never the reverse) keeps the real ConversationSnapshot type out of reach; session-slot consumers narrow once at their boundary.
  • renderSlot is the only rendering form — there is no Suspense integration or per-entry lazy loading.