@zhushanwen/pi-subagent-workflow 8.1.0 → 8.1.1

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zhushanwen/pi-subagent-workflow",
3
- "version": "8.1.0",
3
+ "version": "8.1.1",
4
4
  "type": "module",
5
5
  "main": "index.ts",
6
6
  "description": "Unified subagent execution and multi-agent workflow orchestration for Pi — spawned-process agent runtime with sync/background modes, stateful workflow management with persistence, state machine, and execution tracing.",
@@ -30,6 +30,9 @@
30
30
  "src/interface/",
31
31
  "src/shared/"
32
32
  ],
33
+ "xyz-agent": {
34
+ "role": "universal"
35
+ },
33
36
  "pi": {
34
37
  "extensions": [
35
38
  "./index.ts"
@@ -44,17 +47,17 @@
44
47
  "dependencies": {
45
48
  "ajv": "^8.20.0",
46
49
  "yaml": "^2.9.0",
47
- "@xyz-agent/extension-protocol": "0.5.0",
48
- "@zhushanwen/pi-extension-logger": "0.2.1",
50
+ "@xyz-agent/extension-protocol": "0.5.1",
51
+ "@zhushanwen/pi-extension-logger": "0.2.2",
49
52
  "@zhushanwen/pi-file-lock": "0.1.1"
50
53
  },
51
54
  "peerDependencies": {
52
- "@earendil-works/pi-ai": "*",
53
- "@earendil-works/pi-coding-agent": "*",
54
- "@earendil-works/pi-tui": "*",
55
+ "@earendil-works/pi-ai": "^0.84.1",
56
+ "@earendil-works/pi-coding-agent": "^0.84.1",
57
+ "@earendil-works/pi-tui": "^0.84.1",
55
58
  "typebox": "*",
56
- "@zhushanwen/pi-pending-notifications": "0.3.3",
57
- "@zhushanwen/pi-structured-output": "5.0.1"
59
+ "@zhushanwen/pi-pending-notifications": "0.3.4",
60
+ "@zhushanwen/pi-structured-output": "5.0.2"
58
61
  },
59
62
  "peerDependenciesMeta": {
60
63
  "@earendil-works/pi-coding-agent": {
@@ -201,7 +201,7 @@ const results = await parallel(
201
201
  );
202
202
  ```
203
203
 
204
- > 内置通用编排 workflow(chain / parallel / scatter-gather / map-reduce,可直接 `workflow run`,用 `agent()` 自包含实现)见 `extensions/subagent-workflow/workflows/`。本段教 `workflow()` 嵌套 API,workflows 目录是开箱即用的通用编排工具(用 `agent()` 而非 `workflow()` 嵌套)。
204
+ > 内置通用编排 workflow(chain / parallel / scatter-gather / map-reduce,可直接 `workflow run`,用 `agent()` 自包含实现)见 `extensions/universal/subagent-workflow/workflows/`。本段教 `workflow()` 嵌套 API,workflows 目录是开箱即用的通用编排工具(用 `agent()` 而非 `workflow()` 嵌套)。
205
205
 
206
206
  ### Other globals
207
207
 
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // 决策 D(修复 M4):channel handshake 协议升级测试。
4
4
  //
5
- // 测试对象:extensions/subagent-workflow/src/execution/channel-registry-access.ts
5
+ // 测试对象:extensions/universal/subagent-workflow/src/execution/channel-registry-access.ts
6
6
  //
7
7
  // 协议契约(与 ask-user 侧严格对齐):
8
8
  // key 字面量: "@zhushanwen/pi-subagents.channelHandshake"
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // W2 红灯测试:dialog-queue.ts — L2 跨子进程全局 dialog 串行队列。
4
4
  //
5
- // 测试对象:extensions/subagent-workflow/src/execution/dialog-queue.ts(新建)
5
+ // 测试对象:extensions/universal/subagent-workflow/src/execution/dialog-queue.ts(新建)
6
6
  // 契约来源:.fix-plans/00-master-summary.md §一 冲突 3(L2 DialogGlobalQueue 设计)
7
7
  //
8
8
  // DialogGlobalQueue 设计要点:
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // W1 红灯测试:host-mode.ts 主进程运行模式分类工具。
4
4
  //
5
- // 测试对象:extensions/subagent-workflow/src/execution/host-mode.ts(新建)
5
+ // 测试对象:extensions/universal/subagent-workflow/src/execution/host-mode.ts(新建)
6
6
  // 契约来源:.fix-plans/00-master-summary.md §一 冲突 4 + §2.5(W4 守卫消费点)
7
7
  //
8
8
  // 三个导出:
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // W1 红灯测试:spawn-event-adapter.ts 协议层重写 — Pi 原生格式 + method 平铺。
4
4
  //
5
- // 测试对象:extensions/subagent-workflow/src/execution/spawn-event-adapter.ts(改造)
5
+ // 测试对象:extensions/universal/subagent-workflow/src/execution/spawn-event-adapter.ts(改造)
6
6
  // 契约来源:.fix-plans/00-master-summary.md §二(统一接口契约)+ §一冲突 2/判定顺序
7
7
  //
8
8
  // 核心改动:
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // W1 红灯测试:ui-channels.ts — channel 提取(marker 解析)+ channel 注册表。
4
4
  //
5
- // 测试对象:extensions/subagent-workflow/src/execution/ui-channels.ts(新建)
5
+ // 测试对象:extensions/universal/subagent-workflow/src/execution/ui-channels.ts(新建)
6
6
  // 契约来源:.fix-plans/00-master-summary.md §一 冲突 2「维度 2:channel 注册表」
7
7
  //
8
8
  // parseChannel(req): ExtensionUiRequest → { channel?, channelPayload? }
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // W1 红灯测试:ui-interaction-model.ts — method 交互模型分类。
4
4
  //
5
- // 测试对象:extensions/subagent-workflow/src/execution/ui-interaction-model.ts(新建)
5
+ // 测试对象:extensions/universal/subagent-workflow/src/execution/ui-interaction-model.ts(新建)
6
6
  // 契约来源:.fix-plans/00-master-summary.md §一 冲突 2「维度 1:透传判定规则」
7
7
  //
8
8
  // isDialogMethod(method):
@@ -2,7 +2,7 @@
2
2
  //
3
3
  // M4 测试:ui-request-observability.ts — UiRequestObservability 纯逻辑类。
4
4
  //
5
- // 测试对象:extensions/subagent-workflow/src/execution/ui-request-observability.ts
5
+ // 测试对象:extensions/universal/subagent-workflow/src/execution/ui-request-observability.ts
6
6
  // 契约来源:类注释(per-session 去重 + resetMissingHandlerWarnings 清洗 + setMode/getMode 往返)
7
7
  //
8
8
  // UiRequestObservability 职责:
@@ -181,7 +181,7 @@ const STDERR_MAX_CHARS = 65_536;
181
181
  *
182
182
  * [跨包契约 SSOT] 此字面量是两个独立 npm 包(@zhushanwen/pi-subagent-workflow 与
183
183
  * @zhushanwen/pi-structured-output)之间的隐式 env 契约。structured-output 包内同名常量为
184
- * `ENV_SCHEMA = "PI_WORKFLOW_SCHEMA"`(见 extensions/structured-output/src/index.ts)。
184
+ * `ENV_SCHEMA = "PI_WORKFLOW_SCHEMA"`(见 extensions/universal/structured-output/src/index.ts)。
185
185
  * 两包是独立 npm 包不能直接 import,故各自保留常量但显式标注此契约关系——
186
186
  * 任一端改名必须同步另一端,否则权威 schema 注入会静默断桥(子进程不注册 tool/hook)。
187
187
  */
@@ -20,7 +20,7 @@
20
20
  *
21
21
  * registry 绕过说明(见末尾 notes):
22
22
  * WorkflowScriptRegistryImpl(config) 的扫描源是固定约定目录(.pi/workflows 等),
23
- * 无法指向 extensions/subagent-workflow/workflows/。为不改源码,这里直接读 .js 文件
23
+ * 无法指向 extensions/universal/subagent-workflow/workflows/。为不改源码,这里直接读 .js 文件
24
24
  * 内容 + 手动构造 WorkflowScript 对象,包装为一个满足 WorkflowScriptRegistry 接口
25
25
  * 的自定义 registry(loadWorkflowsFromDir)。
26
26
  */
@@ -48,7 +48,7 @@ import type { WorkflowScriptRegistry } from "../models/workflow-script-registry.
48
48
  import { WorkerHostImpl } from "../worker-host.ts";
49
49
 
50
50
  // ── 路径:定位真实 workflows 目录 ─────────────────────────────────────────
51
- // 本测试文件在 src/orchestration/__tests__/,workflows 目录在 extensions/subagent-workflow/workflows/
51
+ // 本测试文件在 src/orchestration/__tests__/,workflows 目录在 extensions/universal/subagent-workflow/workflows/
52
52
  // 即 __dirname → .. (orchestration) → .. (src) → .. (subagent-workflow) → workflows
53
53
  const __dirname = dirname(fileURLToPath(import.meta.url));
54
54
  const WORKFLOWS_DIR = join(__dirname, "..", "..", "..", "workflows");
@@ -1,7 +1,7 @@
1
1
  // review-fix-loop-utils.cjs — review-fix-loop.js 的可测纯函数模块
2
2
  //
3
3
  // workflow 编排逻辑的纯函数抽到独立 .cjs,
4
- // 供 vitest 单测直接 require(extensions/subagent-workflow/src/__tests__/review-fix-loop-utils.test.ts)
4
+ // 供 vitest 单测直接 require(extensions/universal/subagent-workflow/src/__tests__/review-fix-loop-utils.test.ts)
5
5
  // 与 worker 运行时共用(review-fix-loop.js 经 workerData.scriptPath 定位本文件)。
6
6
  //
7
7
  // 本文件不依赖 workflow 全局($ARGS/agent/parallel/phase/log),所有需要报错的函数