@feng0531/dsh-execution-bus 0.2.12 → 0.3.0

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/README.md CHANGED
@@ -4,9 +4,9 @@
4
4
 
5
5
  “萧何”是产品与模式显示名,执行总线是其技术功能;不新增人物 Agent,不进行角色扮演。仓库 dsh-execution-bus、npm 包名、execution_bus 工具名及 execution-bus-test 预设 ID 保持不变。历史版本发布说明保留当时名称。
6
6
 
7
- DSH 独立插件:`@feng0531/dsh-execution-bus` · 当前版本 **0.2.12**
7
+ DSH 独立插件:`@feng0531/dsh-execution-bus` · 当前版本 **0.3.0**
8
8
 
9
- > 当前是早期可运行版本,不是完整生产验收版。已验证真实 DSH 组件和脚本模型驱动的内存会话;真实模型、桌面界面和 PTC 完整链路尚未验收。**不支持重启后恢复任务。**
9
+ > 萧何模式从宿主已声明的 PTC 组合派生,保留日常工具,再叠加可选执行总线。已验证隔离的真实 Node PTC → 原 read + 总线调用,以及脚本模型内存会话;真实模型、桌面界面与实际沙箱仍未验收。**不支持重启后恢复任务。**
10
10
 
11
11
  ## 它解决什么问题?
12
12
 
@@ -92,7 +92,13 @@ flowchart TD
92
92
 
93
93
  包内提供标准 DSH bundle patch(预设组合补丁)。宿主正常加载后会收到“萧何 / Xiao He”预设定义,由既有设置 → Agent 预设 → **自定义**列表展示。建议选择它新建专门会话,不改默认选择或正在使用的普通会话。已有会话的切换受宿主空白会话检查约束。**实际桌面卡片展示尚未验收**,不能把注册表测试当作界面已通过。
94
94
 
95
- 该预设只在自己的作用域注册 execution_bus,使用原生工具调用,不改其他会话的 PTC 模式。它没有 shell 行;宿主文件工具套件会声明 read/write/edit 等工具,但该模式的执行门禁(guard)只允许总线、read 和 Job 控制,写入/编辑即使可见也会拒绝。它不是进程级沙箱,读取边界仍由宿主权限决定;同一预设的会话共享有界队列容量,但请求结果按会话隔离。
95
+ **0.3.0 起不再是只读验证模式。** 加载时读取宿主 `ptc` 预设的组合声明快照,保留原工具、平台表达式、禁用项和配置,只追加萧何总线与说明。不再强制 native 呈现或添加只读白名单;终端、写入、搜索、技能等能力是否可用,取决于原 PTC 配置和宿主服务。其他预设和默认模式不被修改,原 PTC 会话看不到新增总线。
96
+
97
+ 普通任务仍通过 `run_code` 调用原工具;**总线目前只支持 test 和 host.read,不接管任意命令、安装或全部工具**。例如更新插件应使用原终端能力并遵守宿主授权;专用插件管理工具若在源 PTC 中禁用,萧何不会擅自启用。命令受理、返回 Job ID 不等于执行完成。
98
+
99
+ 升级提示:预设 ID 保持兼容,但从旧版只读模式升级后能力范围扩大,使用者须审阅后加载;本次不自动升级日常配置。它不是进程沙箱,同一预设会话共享总线容量,结果按会话隔离。派生是加载时快照,不自动跟随源预设热编辑;源 PTC 更新后应按宿主正常流程重新加载派生行,旧会话遵循宿主版本保留规则。
100
+
101
+ 源组合中的相对模块名、include 子文件缺少公开基准地址信息,当前明确拒绝派生,不能称为兼容所有自定义 PTC。遇到该诊断应先将源组合整理成可解析的显式模块行,不能绕过或回退成只读工具集。缺失 ptc 声明时注册器最多等候约 5 秒后明确失败。
96
102
 
97
103
  **不要同时把包根入口作为全局工具插件加载**:那是手工集成入口,会使 execution_bus 全局可见,失去此预设的可见性隔离。仅安装 npm 包也不保证卡片立即出现,需要加载包声明的 bundle patch。项目发布不会自动安装到任何读者的宿主,卡片是否可用需要在目标实例实际检查。
98
104
 
@@ -109,7 +115,7 @@ flowchart TD
109
115
  2. 在你选定的隔离 DSH 配置依赖目录安装固定版本,不要在 DSH 程序安装目录执行:
110
116
 
111
117
  ```powershell
112
- npm install --ignore-scripts @feng0531/dsh-execution-bus@0.2.12
118
+ npm install --ignore-scripts @feng0531/dsh-execution-bus@0.3.0
113
119
  ```
114
120
 
115
121
  这是 npm 目录示例。若目标配置使用 pnpm,应沿用其包管理器,不混用锁文件。遇到宿主 peer 版本冲突就停止,不用强制安装绕过。
@@ -178,7 +184,7 @@ flowchart TD
178
184
 
179
185
  ### 如果宿主使用 PTC 模式
180
186
 
181
- PTC 是 DSH 的程序化工具调用入口。在 `run_code` 内使用 `await tools.execution_bus(请求对象)`,而不是直接调用折叠后的工具名。执行总线不会解除 `run_code` 自身的时间预算;PTC 完整进程链路尚未验收。
187
+ PTC 是 DSH 的程序化工具调用入口。在 `run_code` 内使用 `await tools.execution_bus(请求对象)`,而不是直接调用折叠后的工具名。执行总线不会解除 `run_code` 自身的时间预算。已有真实 Node PTC 隔离进程读文件和调用总线的验证,但尚未进行实际模型/桌面沙箱全链路验收。
182
188
 
183
189
  ## 如何理解任务状态?
184
190
 
@@ -238,7 +244,7 @@ npm run test:install # 临时目录安装,不操作日常 DSH
238
244
 
239
245
  - [协议和投递语义](<docs/protocol.md>):字段、状态、重复处理与取消规则。
240
246
  - [宿主兼容性与源码调用链](<docs/host-compatibility.md>):为什么可以等待,为什么不能跨重启恢复。
241
- - [验证记录](<docs/validation.md>)、[0.2.12 发布说明](<docs/releases/0.2.12.md>):已验证与未验证范围。
247
+ - [验证记录](<docs/validation.md>)、[0.3.0 发布说明](<docs/releases/0.3.0.md>):已验证与未验证范围。
242
248
  - [维护者发布流程](<docs/RELEASING.md>):标签 CI、安装包校验与正式发布门禁。
243
249
 
244
250
  ## 许可
@@ -1,5 +1,5 @@
1
1
  # 第三方说明
2
2
 
3
- 本包没有捆绑 DSH、Cordis、TypeScript、测试依赖或宿主源码快照。DSH 与 Cordis 作为宿主 peer 使用,其独立包分别受原许可证约束,本项目非商业许可证不限制第三方已授予的权利。开发依赖不进入本项目 tgz。
3
+ 本包没有捆绑 DSH、Cordis、TypeScript、测试依赖或宿主源码快照。DSH 与 Cordis 作为宿主 peer 使用,其独立包分别受原许可证约束,本项目非商业许可证不限制第三方已授予的权利。开发依赖不进入本项目 tgz。js-yaml 为 MIT 许可的独立运行依赖,由包管理器按声明安装,不捆绑进 tgz;其源码和许可见 https://github.com/nodeca/js-yaml ,本项目许可不限制其原有权利。
4
4
 
5
5
  CI 与发布组织方式参考 dsh-vcs,并按本项目执行能力重新实现;本包不含 Monaco、React 或 SVN 实现。
package/cordis.patch.yml CHANGED
@@ -1,25 +1,6 @@
1
- # Registers a selectable custom preset, not a global execution_bus tool.
1
+ # Add a separate selectable preset, deriving the host's configured PTC declaration.
2
+ # Does not patch preset-ptc, selectedDefault or global tools.
2
3
  - insert:
3
4
  - id: preset-execution-bus-test
4
- name: '@deepseek-ai/dsh-agent-preset'
5
- config:
6
- id: execution-bus-test
7
- name: 萧何 / Xiao He
8
- description: 独立执行模式:请求排队、异步等待、进度和取消;当前支持受控验证与只读文件。不修改默认模式,禁止命令和写入执行;不支持重启恢复。
9
- order: 20
10
- plugins:
11
- - id: execution-bus-persona
12
- name: '@deepseek-ai/dsh-persona'
13
- config:
14
- prefix: >-
15
- 你正在萧何模式中;这是执行请求协调模式,不是人物角色扮演。只使用 execution_bus、只读文件和任务控制工具。
16
- 请求只提交一次并等待结果,不循环查询进度;同一逻辑操作重发沿用 requestId。
17
- 默认先用 test Handler 做延迟成功、失败和取消测试,读取真实文件须有用户要求。
18
- cancelRequested 不代表已取消,unknown 不代表执行失败。禁止声称跨重启恢复或完整模型性能提升。
19
- suffix: 'Your working directory is {{cwd}}.'
20
- - id: execution-bus-file-tools
21
- name: '@deepseek-ai/dsh-tool-fs'
22
- - id: execution-bus-job-tools
23
- name: '@deepseek-ai/dsh-tool-jobs'
24
- - id: execution-bus-scoped-runtime
25
- name: '@feng0531/dsh-execution-bus/test-mode'
5
+ name: '@feng0531/dsh-execution-bus/preset'
6
+ config: {}
@@ -0,0 +1,12 @@
1
+ import { Context, Service } from "@deepseek-ai/cordis";
2
+ import type { PresetDefinition } from "@deepseek-ai/dsh-agent-preset-registry";
3
+ export declare const PRESET_ID = "execution-bus-test";
4
+ /** Capture the host-declared composition without evaluating !!js or changing disabled rows. */
5
+ export declare function derivePreset(content: string): PresetDefinition;
6
+ /** Host-plane registrar. readDocument is a public serialized declaration, not a private registry read. */
7
+ export default class XiaoHePreset {
8
+ private ctx;
9
+ static inject: string[];
10
+ constructor(ctx: Context);
11
+ [Service.init](): AsyncGenerator<() => Promise<void>, void, unknown>;
12
+ }
package/dist/preset.js ADDED
@@ -0,0 +1,73 @@
1
+ import { Service } from "@deepseek-ai/cordis";
2
+ import { entryListProblem } from "@deepseek-ai/dsh-agent-preset-registry";
3
+ import { entryListSchema } from "@deepseek-ai/cordis-plugin-include";
4
+ import { load } from "js-yaml";
5
+ import { setTimeout as pause } from "node:timers/promises";
6
+ export const PRESET_ID = "execution-bus-test";
7
+ /** Capture the host-declared composition without evaluating !!js or changing disabled rows. */
8
+ export function derivePreset(content) {
9
+ if (Buffer.byteLength(content) > 1048576)
10
+ throw Error("PTC_PRESET_TOO_LARGE");
11
+ const plugins = load(content, { schema: entryListSchema });
12
+ const problem = entryListProblem(plugins);
13
+ if (problem)
14
+ throw Error("Invalid PTC preset: " + problem);
15
+ const rows = plugins;
16
+ const inspect = (entries) => {
17
+ for (const row of entries) {
18
+ if (row.id === "xiao-he-execution-bus" ||
19
+ row.name?.startsWith("@feng0531/dsh-execution-bus"))
20
+ throw Error("PTC_PRESET_ALREADY_CONTAINS_BUS");
21
+ // readDocument does not publish the declaring baseUrl. Do not silently
22
+ // rebase relative modules/includes into the registrar's different context.
23
+ if (row.name?.startsWith(".") ||
24
+ row.name === "@deepseek-ai/cordis-plugin-include")
25
+ throw Error("PTC_PRESET_RELATIVE_BASE_UNSUPPORTED");
26
+ if (row.group && Array.isArray(row.config))
27
+ inspect(row.config);
28
+ }
29
+ };
30
+ inspect(rows);
31
+ return {
32
+ id: PRESET_ID,
33
+ name: "萧何 / Xiao He",
34
+ order: 20,
35
+ description: "继承宿主 PTC 工具组合,叠加执行请求排队、等待与结果回传。普通任务使用原工具,授权和沙箱由宿主管理;不支持重启恢复。",
36
+ plugins: [
37
+ ...rows,
38
+ {
39
+ id: "xiao-he-execution-bus",
40
+ name: "@feng0531/dsh-execution-bus/test-mode",
41
+ },
42
+ ],
43
+ };
44
+ }
45
+ /** Host-plane registrar. readDocument is a public serialized declaration, not a private registry read. */
46
+ export default class XiaoHePreset {
47
+ ctx;
48
+ static inject = ["agentPresets"];
49
+ constructor(ctx) {
50
+ this.ctx = ctx;
51
+ }
52
+ async *[Service.init]() {
53
+ let document;
54
+ for (let attempt = 0; attempt < 50; attempt++) {
55
+ try {
56
+ document = await this.ctx.agentPresets.readDocument("ptc");
57
+ break;
58
+ }
59
+ catch (error) {
60
+ if (!(error instanceof Error) ||
61
+ !("code" in error) ||
62
+ error.code !== "agent-preset/not-found")
63
+ throw error;
64
+ if (attempt === 49)
65
+ throw Error("Xiao He requires a declared ptc preset. Load the host PTC preset before this bundle.");
66
+ await pause(100);
67
+ }
68
+ }
69
+ if (!document)
70
+ throw Error("PTC_PRESET_UNAVAILABLE");
71
+ yield await this.ctx.agentPresets.register(derivePreset(document.content));
72
+ }
73
+ }
@@ -1,5 +1,5 @@
1
1
  import type { Context } from "@deepseek-ai/cordis";
2
2
  export declare const name = "execution-bus-test-mode";
3
3
  export declare const inject: string[];
4
- /** Must be mounted inside the host's preset scope, never in the global composition. */
4
+ /** An additive preset row: presentation, tool inventory and authority belong to the host PTC composition. */
5
5
  export declare function apply(ctx: Context): void;
package/dist/test-mode.js CHANGED
@@ -1,24 +1,15 @@
1
1
  import { scopeOf } from "@deepseek-ai/dsh-scope";
2
2
  import { apply as applyBus } from "./plugin.js";
3
- export const name = "execution-bus-test-mode";
4
- export const inject = ["tools", "jobs"];
5
- /** Must be mounted inside the host's preset scope, never in the global composition. */
3
+ export const name = "execution-bus-test-mode"; // legacy export identity, intentionally stable
4
+ export const inject = ["tools", "jobs", "systemPrompt"];
5
+ /** An additive preset row: presentation, tool inventory and authority belong to the host PTC composition. */
6
6
  export function apply(ctx) {
7
7
  if (scopeOf(ctx) === undefined)
8
8
  throw Error("Xiao He mode requires an Agent preset scope");
9
- ctx.tools.presentAs("native");
10
- const allowed = new Set([
11
- "execution_bus",
12
- "read",
13
- "job_list",
14
- "job_output",
15
- "job_kill",
16
- ]);
17
- // Scope-local file suite also declares write/edit; the execution guard denies them.
18
- // restrict() only accepts known GLOBAL tool names, so it cannot filter sibling preset rows.
19
- // Restriction filters inherited tools; a guard also fences tools registered by sibling preset rows.
20
- ctx.tools.guard((exec) => allowed.has(exec.name)
21
- ? undefined
22
- : "Xiao He mode allows only bus, read and job controls");
9
+ ctx.effect(() => ctx.systemPrompt.section({
10
+ name: "XIAO_HE_EXECUTION_BUS",
11
+ order: 1700,
12
+ text: "你正在萧何模式中。这不是角色扮演。保留宿主 PTC 的日常工具能力与权限规则。普通编辑、搜索、命令、安装和其他工作使用原工具,不要声称此模式只读。execution_bus 是可选协调入口,目前只支持 test 与 host.read,不支持任意命令,不要强制所有任务走总线。通过 run_code 调用 await tools.execution_bus(...),受原有时间预算约束。总线请求只提交一次并等待结果,不循环查询;同一逻辑操作重发沿用 requestId。cancelRequested 不等于已取消,unknown 不代表执行失败,不承诺跨重启恢复。后台命令仅返回 Job ID 不代表命令已经完成。",
13
+ }));
23
14
  applyBus(ctx);
24
15
  }
package/docs/FLOW-TEST.md CHANGED
@@ -35,7 +35,8 @@ npm run test:install
35
35
  - 已受理 Handler 与替换注册并存,旧注销函数不破坏新注册。
36
36
  - 宿主 read 真正经过工具管线;前置拒绝仍生效。
37
37
  - Job 先行移除、等待/清理异常与卸载交错。
38
- - 可选预设成功激活、普通 Agent 不可见总线、写入被 guard 拒绝。
38
+ - 派生预设成功激活、原 ptc 声明不变、普通 Agent 不可见总线、write/edit 保留且宿主策略可拒绝。
39
+ - 真实 Node PTC 进程调用原 read 与总线;测试使用显式非约束策略,不代表桌面沙箱通过。
39
40
 
40
41
  以上是场景摘要,不表示真实模型/宿主 GUI 已通过。
41
42
 
@@ -23,7 +23,7 @@ AgentLoop 发起工具调用
23
23
 
24
24
  ### 与 PTC 的关系
25
25
 
26
- PTC 是可选入口:外层 `run_code` 可以调用同一个工具。它不是总线本身,也不会因使用本插件取消自身时间预算。可选“萧何”预设选择 native 工具呈现;其他预设原有 PTC 呈现不变。完整 PTC 进程尚未端到端验收。
26
+ PTC 是可选入口:外层 `run_code` 可以调用同一个工具。它不是总线本身,也不会因使用本插件取消自身时间预算。0.3.0 起,“萧何”从目标宿主 ptc 的公开声明派生,保留呈现与全部声明行,不再强制 native 或施加只读 guard。派生组合加入可选总线,其他预设不变。真实 Node PTC 隔离进程已验证原 read 与总线共存;不是桌面/真实模型/实际沙箱的全链路验收。
27
27
 
28
28
  ## 源码证据定位
29
29
 
@@ -50,10 +50,12 @@ PTC 是可选入口:外层 `run_code` 可以调用同一个工具。它不是
50
50
 
51
51
  - 标准 Cordis 工具注册、异步等待及生命周期清理。
52
52
  - 复用宿主工具管线和 Job 服务,不自行启动进程或实现独立 HTTP 执行服务。
53
- - bundle patch 注册可选预设,由宿主既有 Agent 预设界面消费元数据,不需要自定义前端。
53
+ - bundle patch 加载派生注册器,从已声明 ptc 读取组合快照并注册可选预设,由宿主既有 Agent 预设界面消费元数据,不需要自定义前端。readDocument 在宿主注释中用于查看声明,本插件只读取其序列化数据再注册独立预设,并不认领源预设的运行实例或私有基准地址。
54
54
  - 同预设范围内共享有界总线,但查询/取消按宿主 Agent 的会话身份分隔。
55
55
 
56
- 测试预设使用作用域 guard 拒绝非白名单执行,不是隐藏全部其他工具:文件工具套件的 write/edit 仍可能可见。它不是进程或权限沙箱,也不隔离进程资源消耗。宿主 cwd 只是路径解析基准,不是文件访问围栏。
56
+ 旧版只读 guard 在 0.3.0 移除,预设保留源 ptc 的工具与权限,不再削减普通写入/命令能力,也不自动启用源组合禁用行。它不是进程或权限沙箱,不隔离进程资源消耗。宿主 cwd 只是路径解析基准,不是文件访问围栏。
57
+
58
+ 派生使用 readDocument 序列化声明及宿主 YAML 方言,不访问注册表私有字段,不求值 !!js。它是加载时快照;没有公开的源声明 baseUrl,因此拒绝相对模块或 include 文件,避免错误重定位。完整自定义预设等价性不可仅由模块行保留推断,外部依赖和宿主注入仍需原实例验证。
57
59
 
58
60
  ### 当前不提供
59
61
 
@@ -0,0 +1,21 @@
1
+ # 萧何 / Xiao He 0.3.0
2
+
3
+ ## 能力补全
4
+
5
+ 本版将萧何从只读验证模式改为“宿主 PTC 工具组合 + 可选执行总线”。加载时读取目标宿主已声明的 ptc 组合快照,保留原配置、平台表达式和禁用项,再追加总线和使用说明。移除萧何的 native 强制呈现与只读白名单。原预设、默认选择及技术 ID 不变。
6
+
7
+ 普通终端、编辑、搜索、技能、委派等任务仍调用原工具,经过宿主原有授权、沙箱与工作目录规则,不强制走总线。总线仍仅支持 test / host.read;不能把命令启动或 Job ID 当成完成。源 PTC 中禁用的专用插件管理工具不会自动启用。
8
+
9
+ ## 升级注意
10
+
11
+ **旧只读模式升级后工具能力扩大。** 请先审阅目标 PTC 配置再加载,新建专门会话验证;不自动安装或重启日常 DSH。需要宿主先提供 ptc 声明,缺失时最多等待约 5 秒后报错,不静默回退。源预设编辑不会自动热同步;按宿主正常方式重载派生行后,新会话使用新快照,已有会话遵循宿主版本保留规则。
12
+
13
+ 公开 readDocument 不提供原声明 baseUrl,因此本版拒绝含相对模块/include 文件的组合,避免错误重定位;不声称兼容全部自定义 PTC。源预设的组件缺失、策略禁止或禁用项会继续影响能力。
14
+
15
+ ## 验证
16
+
17
+ 声明保真测试覆盖分组、禁用管理工具、!!js 平台表达式;真实 Cordis 生命周期和 AgentPresetRegistry 验证派生注册、write/edit 保留、宿主拒绝策略继续生效、原 PTC 未被修改、原 Agent 不可见总线。真实 Node PTC 子进程验证 run_code 同时调用原 read 和执行总线。
18
+
19
+ PTC 测试采用显式 danger-full-access 策略与测试 Agent,不能视为桌面沙箱、真实模型或所有日常工具的全链路验收。不提供真实模型性能提升比例。无持久化或跨重启恢复能力。
20
+
21
+ 非商业源码公开许可,宿主兼容目标仍为 DSH 0.2.0-rc.2。
@@ -1,6 +1,6 @@
1
1
  # 验证范围与使用限制
2
2
 
3
- 本文说明当前版本的证据边界,不是生产环境认证。最近一次功能代码基线为 **v0.2.11**;0.2.12 只整理文档,不改变执行逻辑。验证环境为 Windows、Node.js 24.21.0,宿主组件锁定 DSH 0.2.0-rc.2、Cordis 4.0.4。
3
+ 本文说明当前版本的证据边界,不是生产环境认证。当前预设能力基线为 **v0.3.0**;总线执行核心沿用此前验证,新增的是宿主 PTC 声明派生与叠加模式。验证环境为 Windows、Node.js 24.21.0,宿主组件锁定 DSH 0.2.0-rc.2、Cordis 4.0.4。
4
4
 
5
5
  ## 已验证什么?
6
6
 
@@ -9,11 +9,11 @@
9
9
  | 总线核心 | 参数、队列、并发、重复请求、冲突、取消竞争、结果保存、TTL、监听与注销 | 程序内部约束及已覆盖异常路径可重复检查 |
10
10
  | 真实宿主组件 | Cordis、ToolRuntime、LocalJobs、LocalFS、文件工具 | 请求经过真实工具管线;权限拒绝、Job 进度、共享任务与清理逻辑有效;Agent 身份为夹具 |
11
11
  | 真实会话循环 | AgentLoop、AgentRegistry、SessionStore;脚本模型适配器 | 内存会话中原工具结果只提交一次,完成后再进入下一次适配器调用 |
12
- | 预设隔离 | AgentPresetRegistry 与 Loader | 预设可激活;普通 Agent 不可见总线;测试预设 native 呈现不改变普通 Agent 的 PTC 呈现;写入调用被 guard 拒绝 |
12
+ | 预设隔离 | AgentPresetRegistry 与 Loader | 派生预设可激活;源 ptc 声明不变、普通 Agent 不可见总线;原 write/edit/Job 工具保留,宿主前置策略拒绝仍有效 |
13
13
  | 故障注入 | 克隆失败、观察者拒绝、Job 等待/清理异常、先行移除与卸载交错 | 指定故障下的回归约束;不证明所有故障组合都已覆盖 |
14
14
  | 候选包 | 严格文件白名单、临时目录生产依赖安装、入口注册 | 包可安装和加载;安装验证使用简化宿主夹具,不是桌面插件管理器验收 |
15
15
 
16
- 截至 v0.2.11,本地回归为 **48/48 通过,0 失败、0 跳过**。测试项数量是用例数量,不是全部产品验收条数。当前结果请重新运行下述命令;文档测试数不应代替实际输出。
16
+ v0.2.11 本地回归基线为 **48/48 通过**;本版新增声明保真、真实注册生命周期及真实 Node PTC 桥接测试,最新数量以命令输出为准。测试项数量是用例数量,不是全部产品验收条数。当前结果请重新运行下述命令;文档测试数不应代替实际输出。
17
17
 
18
18
  ```powershell
19
19
  npm ci --include=dev --ignore-scripts
@@ -40,7 +40,7 @@ eb95b4e51675f5f1821275e0812ef4dd4984b1aba45a52fbc6bab3518bbf6f38
40
40
  |---|---|
41
41
  | 当前桌面真实模型发起请求并继续推理 | 未验收;脚本适配器不是实际模型 |
42
42
  | 当前桌面预设卡片、进度界面、授权提示和实际沙箱 | 未验收;组件事件和 LocalFS 测试不等于桌面 UI/沙箱 |
43
- | PTC 完整进程与实际时间预算行为 | 只核对接口和源码,未完成端到端验收 |
43
+ | 实际模型/桌面 PTC 与时间预算、沙箱行为 | 真实 Node PTC 隔离子进程已调用原 read 和总线;使用显式 danger-full-access 测试策略与测试 Agent,不是桌面沙箱/真实模型验收 |
44
44
  | 从真实 tgz 经宿主插件管理器加载预设、卸载与回滚 | 未完成完整桌面流程;源码工作区的 Loader 测试不能替代 |
45
45
  | 磁盘会话结果提交及重启恢复原调用 | 未验收磁盘提交;本插件不支持跨重启恢复 |
46
46
  | 减少真实模型轮次、状态查询或总耗时的对照 | 未验证,不给提升比例 |
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@feng0531/dsh-execution-bus",
3
- "version": "0.2.12",
3
+ "version": "0.3.0",
4
4
  "type": "module",
5
5
  "private": false,
6
6
  "license": "SEE LICENSE IN LICENSE",
@@ -17,7 +17,8 @@
17
17
  "exports": {
18
18
  ".": "./dist/plugin.js",
19
19
  "./core": "./dist/bus.js",
20
- "./test-mode": "./dist/test-mode.js"
20
+ "./test-mode": "./dist/test-mode.js",
21
+ "./preset": "./dist/preset.js"
21
22
  },
22
23
  "files": [
23
24
  "dist",
@@ -27,7 +28,11 @@
27
28
  "README.md",
28
29
  "docs"
29
30
  ],
30
- "dsh": { "bundle": { "patch": "./cordis.patch.yml" } },
31
+ "dsh": {
32
+ "bundle": {
33
+ "patch": "./cordis.patch.yml"
34
+ }
35
+ },
31
36
  "engines": {
32
37
  "node": ">=22"
33
38
  },
@@ -45,23 +50,33 @@
45
50
  },
46
51
  "peerDependencies": {
47
52
  "@deepseek-ai/cordis": "~4.0.4",
48
- "@deepseek-ai/dsh-scope": "0.2.0-rc.2",
53
+ "@deepseek-ai/cordis-plugin-include": "~1.0.9",
54
+ "@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.2",
49
55
  "@deepseek-ai/dsh-jobs": "0.2.0-rc.2",
56
+ "@deepseek-ai/dsh-scope": "0.2.0-rc.2",
57
+ "@deepseek-ai/dsh-system-prompt": "0.2.0-rc.2",
50
58
  "@deepseek-ai/dsh-tools": "0.2.0-rc.2"
51
59
  },
52
60
  "devDependencies": {
53
61
  "@deepseek-ai/dsh-agent-loop": "0.2.0-rc.2",
54
62
  "@deepseek-ai/dsh-agent-preset": "0.2.0-rc.2",
55
63
  "@deepseek-ai/dsh-agent-preset-registry": "0.2.0-rc.2",
64
+ "@deepseek-ai/dsh-agent-tool-presentation": "0.2.0-rc.2",
56
65
  "@deepseek-ai/dsh-fs-local": "0.2.0-rc.2",
57
66
  "@deepseek-ai/dsh-jobs": "0.2.0-rc.2",
58
67
  "@deepseek-ai/dsh-jobs-local": "0.2.0-rc.2",
59
68
  "@deepseek-ai/dsh-persona": "0.2.0-rc.2",
69
+ "@deepseek-ai/dsh-ptc-runtime-node": "0.2.0-rc.2",
70
+ "@deepseek-ai/dsh-subprocess-local": "0.2.0-rc.2",
60
71
  "@deepseek-ai/dsh-tool-fs": "0.2.0-rc.2",
61
72
  "@deepseek-ai/dsh-tool-jobs": "0.2.0-rc.2",
73
+ "@types/js-yaml": "4.0.9",
62
74
  "@types/node": "^22",
63
75
  "prettier": "3.6.2",
64
76
  "typescript": "~5.9.3",
65
77
  "yaml": "2.9.1"
78
+ },
79
+ "dependencies": {
80
+ "js-yaml": "4.3.2"
66
81
  }
67
82
  }