fufankeji/deepseek-harness-studio--packages-client-ui-directory-picker-native ↗★ 641
@deepseek-ai/dsh-client-ui-directory-picker-native
原生目录选择器,驱动宿主操作系统选择器。 适合需要原生目录选择交互的工作区流程,依赖Electron或宿主回退。
同名包的其他仓库
- deepseek-ai/deepseek-harness--packages-client-ui-directory-picker-native
- whitelonng/dshcode--packages-client-ui-directory-picker-native
- op7418/pilot-harness--packages-client-ui-directory-picker-native
- See-Sol-Lab/DeepSeekGUI--packages-client-ui-directory-picker-native
- peiyuwang54/deepseek-harness-cli--packages-client-ui-directory-picker-native
- SuperJJ007/papermachine--packages-client-ui-directory-picker-native
安装
此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗
说明文档
阅读完整 README ↗@deepseek-ai/dsh-client-ui-directory-picker-native
English | 中文
Native directory-picker surface: the browser half of the native picking interaction. It fills ui-workspace's two directory-flow holes (conversation.hero.workspace.directoryFlow and sidebar.workspaces.directoryFlow) with a renderless occupant that answers each open request through Electron's fixed preload picker when present, otherwise through the local Host's ctx.workspaces.pickDirectory(), then reports exactly one outcome — a picked path, a cancellation, or a failure — back through the owner conversation. The Host fallback belongs to dsh-host-directory-picker-native; mounting this package composes both halves from one cordis.yml row, while packaged Electron keeps its operating-system dialog in the main process and no client code branches on a capability kind.
Both registrations install as one transactional effect through nested slots.inject() calls, because either declaring entry may activate later or replace its declaration. The occupant arms once per rising open edge, so re-renders — including an adoption that keeps open true while busy — never launch a second chooser, and the owner withdrawing open re-arms the next request. Settlements ride a ref so the answer reaches the owner's latest handlers rather than the ones captured when the chooser opened. An unmount (HMR replacing the occupant) discards the settlement wholesale: the wire carries no per-request abort, so the host-side chooser survives until answered, its answer lands nowhere, and the replacement instance re-arms under the owner's still-open request.
The node half is an empty apply: it exists so the plugin appears in the host cordis.yml and Loader, while the browser half ships through exports["./client"] and is discovered through the dsh.client manifest declaration.
Model Experience
None, as the directory chooser is browser chrome; nothing here reaches a model request.
KV Cache effect
None; this package neither assembles nor sends a provider request.
Known Limitations and Deferred Work
- No cancellation of an open Host chooser — the Host wire has no per-request abort, so a chooser already on the host display cannot be closed from the browser; a discarded settlement is simply ignored. Electron owns its dialog lifetime in the main process.
- Local Host carriers only — an OS dialog opens on the machine running the Host, so in-process and remote-browser deployments need the
-browsecomposition instead. Platform failures surface through the owner's retryable folder dialog.