peiyuwang54/deepseek-harness-cli--packages-client-ui-directory-picker-browse ↗★ 62

@deepseek-ai/dsh-client-ui-directory-picker-browse

在应用内浏览目录,渲染宿主目录列表与新建操作,填充工作区目录选择流程。 适合需要在应用内选择或新建工作区目录的用户,依赖配套宿主端插件提供目录能力。

包名
@deepseek-ai/dsh-client-ui-directory-picker-browse
兼容性
待验证
Harness 依赖范围
workspace:^
Cordis 依赖范围
workspace:^
版本
0.1.0-rc.14
许可证
MIT
最近更新
2026年9月13日

同名包的其他仓库

安装

此插件尚未提供可验证的 bundle,或兼容性检查未通过。请先阅读仓库说明。 阅读完整 README ↗

@deepseek-ai/dsh-client-ui-directory-picker-browse

English | 中文

In-app directory browsing surface: the browser half of the browse picking interaction. It fills ui-workspace's two directory-flow holes (conversation.hero.workspace.directoryFlow and sidebar.workspaces.directoryFlow) with the Select Workspace Directory dialog, driving the local Host's host.listDirectory and host.createDirectory primitives through ctx.workspaces. Its node counterpart is dsh-host-directory-picker-browse; mounting this package composes the surface with that backend from one cordis.yml row, so no client code branches on a capability kind. Unlike the -native surface, the dialog needs no local operating-system chooser, so it also serves in-process and remote-browser deployments.

The dialog is a 680×500 Miller-column view (clamped on short or narrow viewports): a header carrying the title, the selection-path breadcrumb, and a click-to-edit path zone, then one full-width level until a row is selected, after which the row splits evenly into level and children columns. Navigations land selection-anchored and quiet — the previous view keeps rendering while a crumb jump or a submitted path is scanned, and target and parent legs land as one frame — so stepping back keeps two panes away from the display root and no intermediate frame flashes. New folder opens a nested create dialog targeting the selected folder and selects what it creates; Open adopts the selected folder, falling back to the listed level. Host-flagged hidden entries stay hidden until the footer toggle reveals them, which is a client-side filter only.

Confirming a directory is the picked path and dismissing the dialog is the cancellation. Browse failures — an unreadable target, a create conflict — stay inside the dialog's own alert surfaces, so this occupant never drives the owner's onError arm; the owner keeps the workspace-creation error surface. Both registrations install through nested slots.inject() calls because either declaring entry may activate later or replace its declaration, and the dialog's copy is registered in this package's own locale namespace: the two dictionaries land as a unit, so a failed activation cannot squat one locale of the namespace.

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 browser 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 search, no multi-select, and no rename or delete — the dialog lists and creates directories; a target is reached by navigating, editing the path, or filtering the last pane by prefix.
  • Hidden-entry filtering is client-side — the Host always lists hidden entries and flags them, so the toggle changes only what the dialog renders.