dsh-artifact-linker 0.4.5 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.4.6 — 2026-11-07
4
+
5
+ ### 修复:常驻注入第 2 条铁律要求「正文只写文件名」,导致正文产物路径被省略
6
+
7
+ **现象**:用户反馈「还是有正文不输出完整绝对路径的情况」。交付清单里多个产物共用同一长前缀时,正文被写成「三个点 + 一段路径」的省略形式——既不是完整绝对路径、也不是纯文件名,无法直接复制。
8
+
9
+ **根因**:`RULES_TEXT` 第 2 条原文「正文叙述给用户看时只写文件名,不要贴绝对路径……正文出现长串绝对路径属于违规」,与「正文要看到完整绝对路径」的需求相反;模型为兼顾该约束,把共用前缀省略成三点形式。另第 4 条「present 交付的产物正文不重复罗列路径」也会让正文看不到路径。**这与注入频率无关**——`ctx.systemPrompt.section` 注册一次即每轮自动生效(每个模型步之前组装),无需逐段注入。
10
+
11
+ **修复**:
12
+ - 第 2 条改为「正文/清单/表格列产物时,每个文件都必须给完整绝对路径;严禁用省略号(三个点 / …)或共用前缀省略任何一段路径——每行都要能直接复制粘贴使用」,并注明文件名仍会被渲染成可点芯片、写完整路径不影响点击预览。
13
+ - 第 4 条改为「用 present 交付的产物,正文清单里仍要列出其完整绝对路径(卡片供预览,正文路径供复制)」。
14
+
15
+ **验证**:`node --check lib/index.js` 通过、无 BOM;重启后实测交付清单每行为完整绝对路径。
16
+
17
+ **生效方式**:改的是宿主端 `lib/index.js` → **彻底退出 DSH 客户端再启动**(Ctrl+R / Ctrl+Shift+R 均无效,宿主是 Node 进程无热重载)。
18
+
3
19
  ## 0.4.5 — 2026-11-07
4
20
 
5
21
  ### 修复:宿主渲染的「文件芯片 / 交付卡片」右键只出官方菜单
package/lib/index.js CHANGED
@@ -51,9 +51,9 @@ var RULES_SECTION_ORDER = 200;
51
51
  var RULES_TEXT = [
52
52
  "【产物路径铁律 · 由 dsh-artifact-linker 插件常驻注入,无需加载任何技能】",
53
53
  "1. 凡本轮**新建/写入/下载/生成/导出**的文件与目录,工具参数与内部记录一律使用**完整绝对路径**(Windows 形如 E:\\proj\\out\\a.xlsx)。",
54
- "2. **正文叙述给用户看时只写文件名**(如 `a.xlsx`),不要贴绝对路径——插件会自动把它渲染成可点芯片。**正文出现长串绝对路径属于违规**(这一条与第 1 条并不矛盾:1 管工具与内部记录,2 管正文措辞)。",
54
+ "2. **正文、清单、表格里向用户列产物时,每个文件都必须给出完整绝对路径**(如 `D:\\proj\\out\\a.xlsx`);**严禁用 `...\\`、`…/`、省略号或“共用前缀”省略任何一段路径**——每行都要能直接复制粘贴使用。文件名照旧会被渲染成可点芯片,写完整路径不影响点击预览。",
55
55
  "3. 不重复罗列非产物:读入的输入文件、依赖包、缓存、临时文件、系统路径一律不报。",
56
- "4. 已用 `present` 工具交付的产物,正文不重复罗列其路径。",
56
+ "4. 用 `present` 交付的产物,正文清单里**仍要列出其完整绝对路径**(卡片供预览,正文路径供复制)。",
57
57
  "5. 🔴 无法确定绝对路径时,先实际核实(`pwd`、列目录、读工具返回值)再写,**绝不编造路径**——编造的路径点开就是死链,比不给路径更糟。",
58
58
  "6. 路径含空格或中文时,用反引号包裹成行内代码(如 `E:\\工作 目录\\结果.xlsx`),避免被正文断词截断。"
59
59
  ].join("\n");
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "dsh-artifact-linker",
3
- "version": "0.4.5",
3
+ "version": "0.4.6",
4
4
  "description": "DSH 产物路径联动器:常驻注入「产物路径铁律」让模型输出完整绝对路径,同时把聊天正文里的文件名/路径渲染成一键可点的产物芯片——左键在右侧边栏预览(对齐官方交付卡片,绝对路径 0 次解析直通,侧栏认领不了自动退回系统默认程序),Ctrl/Shift/Cmd+左键用系统默认程序打开,Alt+左键复制绝对路径,右键 8 项菜单(在侧栏打开 / 在浮窗中打开 / 在文件夹中显示 / 用默认程序打开 / 另存为… / 复制文件 / 复制文件路径 / 添加到对话框)。宿主端提供回环只读路由与 /saveas /copyfile 两个文件搬运动作(Shell COM 揭示、WinForms 保存对话框、CF_HDROP 剪贴板),客户端零侵入、不改 React 节点、不接管 markdown 图片语法。解决「产物要打开得先复制路径再粘到文件管理器」的反复割裂。/ Turn declared artifact paths into one-click chips: resident system-prompt rules force absolute paths, the client half renders file names as clickable chips, left click previews in DSH's built-in sidebar (absolute paths resolve in 0 round-trips; unclaimed types fall back to the default app), Ctrl/Shift/Cmd+click opens with the system default app, Alt+click copies the absolute path, and the right-click menu offers eight actions (open in sidebar / open in floating window / reveal in Explorer / open with default app / save-as / copy-file / copy-path / insert-into-composer). Host routes are loopback-only; zero telemetry.",
5
5
  "type": "module",
6
6
  "main": "lib/index.js",