Files
deepseek-harness/packages/host/directory-picker/README.zh.md
T
creatixchu c565022c8a fix(host): derive the picker capability union from a merge-extensible map
ds-review-bot round 1: the seam documented a merge-extensible union but
shipped a closed alias, and the gateway schema rejected any kind beyond
dialog/browse — a third backend could neither implement the seam nor be
advertised. The union now derives from an augmentable DirectoryPickerCapabilities
map, host.describe.directoryPicker preserves unknown wire kinds, and the
browse fixture applies listDirectory's root special case so creating under
'/' no longer mints a '//name' identity.
2026-07-28 17:09:43 +08:00

2.1 KiB
Raw Blame History

@deepseek-ai/dsh-host-directory-picker

English | 中文

web GUI 宿主的工作区目录选择 seam:抽象服务 DirectoryPicker(ctx.directoryPicker),唯一契约方法 capability() 返回一个可辨识能力对象,描述操作者以何种方式选择目录。后端之间的差异在交互形态而不只是机制,因此 seam 显式建模形态而非统一方法集:{ kind: 'dialog', pick(signal) } 在宿主屏幕上打开一个原生 OS 选择器(-dialog);{ kind: 'browse', list(path?), createDirectory(path, name) } 提供应用内浏览器驱动的列举/创建原语,可服务任何 OS 对话框都触及不到的远程客户端(-browse)。消费方按 capability().kind 分支;联合类型由可合并扩展的 DirectoryPickerCapabilities 映射派生(新后端在其中声明合并自己的形态),未知 kind 的文档化默认行为是隐藏选择入口而非失败。能力对象在服务生命周期内必须保持稳定。

浏览原语以带类型的 DirectoryPickerError 失败(directory-unreadable/directory-exists/directory-create-failed,各自携带主体 path),消费网关将其 1:1 映射为协议错误码。DirectoryEntry 行携带宿主判定的 hidden 标志(POSIX 点前缀约定),展示策略留在客户端;DirectoryListing.crumbs 是从文件系统根开始的祖先链,每个 crumb 都是跳转目标。设计依据、与 ctx.fs 的切分、策略裁决见目录选择能力 seam Agent Note。

模型体验

无。该 seam 服务于 GUI 宿主的目录选择;这里没有任何内容进入模型请求。

KV 缓存影响

无;该包既不组装也不发送提供方请求。

已知限制与延期工作

  • 没有多根词汇——浏览契约每次列举只暴露一条祖先链;按部署限定可浏览根(以及 Windows 盘符之上的根枚举)等到出现需要它的消费方再做,见 seam Agent Note。