description: "Web 宿主的 plugins Remote:pluginManager 作为 Typert 服务,把每次调用转接给已启动 profile 上的共享插件管理器,并把它的失败映射为 Remote 错误码。"
English | 中文
dsh-host-plugin-manager 把 pluginManager 挂载为 Typert 服务并暴露 plugins Remote——list、add、uninstall、enable、disable、retry、addRow、removeRow、setRowDisabled、dependents——每个方法都转给建立在本上下文之上的 dsh-plugin-manager PluginManager,每个 plugins/* 失败以同码的 RemoteError 过线。操作做什么、以及随之而来的 plugins/changed 与 plugins/install-log 事件属于那个包;本包只是从上下文读取 profile runtime、预设名册与 agent 注册表并交给它。客户端经 api-remotes 装配消费该 Remote。
把这一行挂在宿主组合里插件清单旁边;web 组合包已经这么做了。该行只注入 Loader,并在每次调用时解析 profile runtime,因此不经 profile launcher 启动的组合仍能启动,只是每次调用都回答 plugins/unavailable。
plugins/list、plugins/add、plugins/uninstall、plugins/enable、plugins/disable、plugins/retry、plugins/addRow、plugins/removeRow、plugins/setRowDisabled 与 plugins/dependents 携带管理器同名方法定义的参数与答复;管理器 README 逐一说明。./types 导出原样 re-export 管理器的载荷类型,客户端只需导入一套词汇。
管理器的失败以同样的 code 与 details 作为 RemoteError 到达客户端:plugins/unavailable、plugins/not-installed、plugins/not-enableable、plugins/enable-failed、plugins/install-failed、plugins/row-conflict、plugins/busy 与 plugins/agents-running,各自以管理器的 details 类型声明在 Remote 失败表里。管理器的通用拒绝 plugins/bad-request 以 Gateway 的 gateway/bad-request 过线。管理器抛出的其他错误原样传播,由 Gateway 报为 gateway/internal。
| 字段 | 默认值 | 含义 |
|---|---|---|
pnpmCommand |
pnpm |
可执行文件,与 dsh plugin 命令一样经 PATH 解析。 |
installTimeoutMs |
600000 |
单次安装或移除运行的上限。 |
probeTimeoutMs |
20000 |
单次包探测的上限。 |
installLogTailBytes |
16384 |
安装失败时报告多少尾部输出。 |
当转接层的契约还不够时读这些:它背后的管理器,以及渲染它的界面。
无,该 Remote 不注册任何面向模型的东西;管理器组合出的行各自拥有自己做出的注册。
无;本包既不组装也不发送 provider 请求。
这些限制界定该 Remote 不会为客户端做什么。它们是当前包的约束,不是任务清单。
engines.dsh 只报告不强制。