description: "当前 Cordis Loader 插件状态的只读投影,并附带每个 agent preset(智能体预设)的组合:面向 web GUI 宿主客户端的 pluginInventory 服务及其 pluginInventory/list Remote。"
English | 中文
客户端调用 pluginInventory/list,读取非 group Loader 条目的只读快照,包括来源、有效启用状态、运行阶段和当前失败。包含 agent-preset 目录的部署还报告各预设的元信息与组合。快照不提供持久历史或变化订阅。
当客户端或设置页需要展示宿主当前组合了什么——哪些插件已加载、已启用、是否存活,以及每个 agent preset 会给会话什么——时调用 pluginInventory/list。Remote 是唯一入口:该服务仅供 Remote 使用,刻意不声明同进程 Cordis Context 合并。
每一行是一个非组 Loader 条目:其条目 id、精确模块标识、有效启用状态(含被禁用的祖先组)与当前根 Fiber 阶段。pending 表示条目等待加载,loading 表示正在读取,active 表示正在运行,failed 表示其 fiber 被拒绝,unloading 表示正在拆除;null 表示完全不存在存活的根 Fiber。结构性的 group 行会被跳过。
trust 标识提供该行的组合包,package 给出包名与版本,disabledBy 区分用户覆盖与组合条件。显式行 id 保持不变。失败条目留在 Loader 树中;failure 报告导入、激活、更新、disabled 表达式或缺失服务问题。active fiber 也可能更新失败,并继续运行先前的有效配置。加载前因冲突被排除的行从 ProfileRuntime.conflicts 投影。没有 profile 来源时,行不携带 package。
组合了 roster 时,agentPresets 按 roster 顺序携带每个预设一组:其 id、随部署内置还是用户自建(trust,客户端据此本地化内置预设名)、发布的显示名、未指名预设的会话是否组合它,以及压平后的插件行——条目 id(文件行未声明时为 null)、模块标识、有效启用状态、行自带的 !!js disabled 表达式(如有)、组合存活时的根 Fiber 阶段、该行来自预设的组合文件还是其用户补丁层(source),以及被关掉的行是组合还是补丁层关掉的(disabledBy)。已有会话组合过的预设由其最新仍存续的世代作答——即使其文件事后损坏也是如此,因为挂载才是这些会话实际运行的组合;开机以来从未被组合的预设由其组合文件作答,disabled 门用 Loader 上下文求值,且读取从不挂载预设。conditional 表示宿主无法求值的门;无人组合的坏预设保留在列表中,携带原因且没有行。没有 roster 时该字段缺席。
该清单是供展示与诊断的快照:客户端可以渲染名单、标出失败条目,并通过比较快照检测变化。它不能启用、停用、添加或移除插件,也不携带历史——已经失败并被移除的 fiber 缺席。由于服务每次调用都读取 Loader,答案总是反映当前组合,而不是缓存视图。
当清单约定不够用时阅读以下内容:先看 Remote 如何到达客户端,再看它所投影的 Loader 与渲染它的界面。
pluginInventory/list。无。这个仅限 Host 的只读 Loader 投影不注册任何面向模型的内容。
无;该包既不组装也不发送提供方请求。
这些限制说明即时清单无法向客户端提供哪些信息。它们是当前包约束,不是任务积压。
--patch overlay 插入的行不带 package。dsh-agent-presets 的部署只提供 Loader 条目;agentPresets 字段缺席而非为空。