description: "Web @file 与 @session 引用 source:候选项、排序,以及原子行内引用(统一的文件/会话选取)。"
English | 中文
Web 用户需要从同一个 @ 补全菜单提及文件、文件夹或会话时,可以使用 dsh-client-ui-reference。菜单先列出文件,再列出会话;其中一组无法加载时,另一组仍然可用。选择文件、文件夹或会话会插入带稳定剪贴板形式的原子引用;文件夹行还允许用户在不关闭补全的情况下继续下钻。文件行省略多余的根目录位置,会话行仅在工作区与当前工作区不同时显示该工作区。会话 mention 会在捕获模型上下文前接受校验,而浏览候选项不会影响模型。
只要组合挂载了本包且存在宿主 ctx.fileReferences 提供方,该 source 即处于活动状态。输入 @ 后跟一个未加引号的 token,会先看到文件、再看到会话;打开 @"… 则只搜索文件。候选列表是补全菜单,不是搜索结果页:选一次、继续输入即可。
选择文件会关闭补全,并显示为带文件图标与业务色文件名的原子行内引用。目录行携带两个动词:选定 pick(点击行主体或 Enter)把文件夹本身解析为同类原子引用——文件夹图标、带尾斜杠的标签、以规范 @dir/ mention 为序列化形式;钻取动作(Tab 或行尾 chevron)则保持带文件夹图标的可编辑路径纯文本,并让菜单在尾部斜杠处保持活跃,用户可以继续进入下一层。包含空白的路径使用 @"path with spaces",用户显式打开的引号会继续保留。
选择会话会插入一个原子的行内引用,其隐藏 ref 与剪贴板表示均为宿主返回的规范 @[label](dsh-session:…) mention;可见形式为聊天气泡图标加会话标题。发送会经 session.prompt 携带该 mention,session-reference 服务会在 agent/pre-step 校验它并捕获模型上下文。
某个候选领域不可用或失败时,该领域不产生任何行,另一领域仍正常列出。会话引用准备失败发生在提示词接受后,并会终止该 agent 轮次。
以下页面覆盖建议机制、引用 seam 与输入流水线。
@file seam 及其提供方约定。@session seam 与准备后快照的语义。间接影响模型体验:通过宿主拥有的提供方实现,本包的引用选择把文件指引与会话快照准备委托给它们。
浏览候选项不会影响模型。选择文件或会话只会改变新用户消息的后缀,以及紧随该消息、由宿主准备的会话引用上下文;目标会话更早的历史保持不变。
这些限制说明引用 source 何时帮不上忙;它们是当前包约束。
ctx.fileReferences 提供方;浏览器无法回退到自身文件系统。ctx.sessionReferenceResolver 筛选 session id、cwd 与以日志为依据的最新标题;不搜索消息主体或完整 transcript。运行时不变式: 不发布伴生入口。插件只注册一个 slash source,HMR 测试覆盖释放;它不发出 Cordis 事件,也不持有跨插件可变状态。