description: "Web GUI 的输入触发流水线:光标处的 / 与 @ 检测、分组候选菜单,以及把 pick 路由到已注册 source;供斜杠命令与引用的用户与维护者阅读。"
English | 中文
当用户在 Web GUI 的光标处键入 / 或 @ 时,本包会为斜杠命令、文件引用和会话引用打开分组菜单。它支持键盘和指针选择,包括下钻候选项,以及在当前选区上打开单个候选分组的 launcher。pick 会触发命令流程或插入引用,具体结果由消费它的输入表面处理。本包只影响浏览器呈现;它既不组装也不发送模型请求。
与 ui-conversation 一起挂载本插件;用户在光标处键入触发器时,菜单随即出现在输入浮层中。分组候选项渲染在标题行之下;pick 路由到 source,消费方表面应用其结果——斜杠命令打开其弹窗或执行,引用插入其行内 token。
菜单打开期间 composer 表面保持焦点:行在 mousedown 时完成 pick,高亮由 aria-activedescendant 承载,指针落在菜单与所在 composer 卡片之外即关闭菜单。空格与回车裁决按注册序轮询可选的 matchSpace/matchEnter 钩子;第一个非 undefined 的应答胜出,source 也可以拒绝它无法整体消费的提交。Tab 会作用于高亮补全项:声明 drill: true 的候选项以 action: 'drill' 进入 onPick,普通候选项则以 action: 'pick' 完成选定;没有高亮项时 Tab 原样放行,原生焦点遍历不受影响。可下钻行尾的 chevron 向指针用户提供同一个动词。实现可选 header 钩子的 source 还会在其分组上方发布面包屑:管线在每次命中时用实时查询、以及该查询由下钻还是由键入产生这一事实重新询问它,点击面包屑经 onPick 以 action: 'drill' 回到该 source。
当触发流水线不够用时阅读以下页面。它们从流水线进入注册进它的 source,以及拥有输入的会话外壳。
/ 命令 source 注册进本流水线并拥有命令弹窗外壳。@ 文件与会话引用 source。无。触发流水线只是浏览器呈现——pick 产出命令声明与引用插入,其模型可见后果由消费它们的宿主与输入状态机包负责。
无;该包既不组装也不发送提供方请求。
这些限制界定了当前触发流水线。它们是当前包约束,不是通用菜单对比或任务积压。
InputTriggerCandidate.icon 以文本渲染——MenuView 把该字符串原样放进图标位;与设计系统图标枚举的接入将在该枚举交付后完成。conversation.input.overlay 合并放在本包,而 ui-conversation 拥有其锚点、children 声明与生命周期,因为依赖方向是 ui-conversation → ui-input-trigger。运行时不变式: 不发布伴生入口。trigger pipeline 是浏览器侧纯逻辑加一个 registry,HMR 测试覆盖释放;它不发出 Cordis 事件,也不持有跨插件可变状态。