description: "目录选择 seam 的原生 OS 选择器后端:为坐在 web GUI 宿主屏幕前的操作者每次打开一个平台选择器。"
English | 中文
坐在宿主屏幕前的操作者通过原生 OS 选择器选择工作区目录:dsh-host-directory-picker-native 每次选择打开一个平台目录选择器,并解析出所选绝对路径(取消时为 null)。macOS 驱动 osascript,Linux 使用 Zenity 并以 KDialog 回退,Windows 在 spawn 的子进程中打开现代 IFileOpenDialog。只有操作者坐在宿主屏幕前时才可用——远程部署应组合浏览后端。一行组合配置还会在工作区流程中注册匹配的浏览器侧交互,因此同时选择两侧。
当操作者工作在宿主屏幕前,且原生选择器是合适的交互时,组合此后端。打开目录选择器的工作区流程每个打开请求调用一次 pick(signal);返回的 Promise 解析为所选绝对路径,操作者取消时解析为 null。
为 macOS、Windows 或桌面 Linux 上的工作站本地操作者选择此后端。当客户端无法触达 OS 选择器时——远程浏览器、SSH 转发会话或无人值守宿主——请选择浏览后端。具体情况不固定时,自适应选择器会在启动时判定。
每次调用在宿主屏幕上打开一个原生选择器并等待操作者;中止调用方的信号会终止选择器进程,而不是让它留在屏幕上。Linux 上选择器需要安装 Zenity 或 KDialog 之一;两者都没有时,pick 以包含解决建议的错误拒绝,而不会回退为手输路径提示。本包的浏览器端向工作区流程注册一个无渲染的流程占用者——每次 open 请求驱动 directoryPicker/pick,并上报唯一结果(所选路径、取消或失败)。
取消返回 null,不是错误。平台工具缺失、选择器启动失败或选择操作中止都会导致 Promise 拒绝,界面可呈现相应错误;浏览后端仍是原生目录选择不可靠时的组合层回退方案。
当后端约定不够用时阅读以下内容:先看 seam 定义,再看替代后端与在两者之间选择的那个选择器。
native 能力约定与类型化错误词汇。无。GUI 宿主的目录选择后端不注册任何面向模型的内容。
无;该包既不组装也不发送提供方请求。
这些限制说明原生交互何时不可用或不稳定。它们是当前包约束,不是任务积压。
pick 以包含解决建议的错误拒绝;它不会回退为手输路径提示(组合层面的回退是浏览后端)。Show 之前合成一次 Alt 按键,对话框才能从后台宿主取得前台;在合成输入被抑制的环境(安全桌面、受限远程会话、提权前台窗口)中,对话框仍可能在其他窗口后面打开。该技术仅在 Windows 11 上验证过。运行时不变式: 不发布伴生入口。每次选择都是一次无状态的子进程往返;选择器的结果仅为返回的路径。