@zhushanwen/extension-protocol 0.20.0 → 0.22.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
|
@@ -9,12 +9,12 @@ pi extension 跨层契约包:类型 + helper 函数 + 共享行为原语,零
|
|
|
9
9
|
- `ask-user/` —— 富交互(select 通道 + marker)
|
|
10
10
|
- `plan/` —— plan 生命周期状态机 + 审阅回传值域契约 + 旧 entry legacy 读取(纯函数零 pi 依赖,扩展 / runtime / renderer 三层共用)
|
|
11
11
|
- `scheduler/` —— scheduler 任务条目契约 + entry 重放折叠(replayFoldEntries)+ 时间格式化(纯契约与纯函数,零 pi/node 依赖)
|
|
12
|
-
- `scheduler-create/` —— scheduler 创建确认共享资产(ScheduleDraft / ScheduleFormResult 类型 +
|
|
12
|
+
- `scheduler-create/` —— scheduler 创建确认共享资产(ScheduleDraft / ScheduleFormResult 类型 + 形状与时间折叠检查 + marker)
|
|
13
13
|
- `session-manager/` —— agent-managed session 嵌套 `{action, params}` 契约(select 通道 + marker)
|
|
14
14
|
- `subagent-engine/` —— 引擎可发现性(`engines.json` 状态文件 + 引擎配置视图)
|
|
15
15
|
- `subagent-inflight/` —— subagent 在途聚合上报(绝对计数报告 + marker,select 通道)
|
|
16
16
|
- `subagent-notify/` —— subagent-workflow 通知通道 customType 常量唯一来源(workflow 结果 / 后台通知 / subagent 指令三类)
|
|
17
|
-
- `ui-form/` —— 统一提问表单协议(ask-user / scheduler / plan 三方提问统一入口:类型 + marker + 交互 helper +
|
|
17
|
+
- `ui-form/` —— 统一提问表单协议(ask-user / scheduler / plan 三方提问统一入口:类型 + marker + 交互 helper + 检查)
|
|
18
18
|
- 完整子协议清单以 `src/index.ts` 导出为准
|
|
19
19
|
- `pending-entries` —— pending 事件流差集核心(register 去重 + unregister 抵消,纯算法)
|
|
20
20
|
- `background-task` —— base-tool-enhance 后台任务 `registry.json` 文件契约
|
|
@@ -10,20 +10,26 @@
|
|
|
10
10
|
* 字段注释),orphaned 终态由 runtime 写入(收殓下沉,设计
|
|
11
11
|
* docs/architecture/file-lock-unification-and-reaper-sink.md D2)。
|
|
12
12
|
*
|
|
13
|
-
* 目录布局(per-session
|
|
14
|
-
* <
|
|
15
|
-
* (
|
|
13
|
+
* 目录布局(per-session 隔离,session 存储树域 5):
|
|
14
|
+
* <dataDir>/ext-sessions/<sessionId>/background-tasks/registry.json
|
|
15
|
+
* (shared 推导单点 = getSessionBackgroundTasksDir;写侧 extension 不 import
|
|
16
|
+
* shared,以同公式镜像推导——SESSION_STORE_DIR_SEGMENT / BACKGROUND_TASKS_DIR_SEGMENT
|
|
17
|
+
* 段常量,字面量一致性由 scripts/check-artifact-dir-formula-sync.mjs 对拍守护)
|
|
16
18
|
*
|
|
17
19
|
* 字段名/语义/枚举值与写侧现状逐字段一致(基线:extensions/universal/
|
|
18
20
|
* base-tool-enhance/src/background/types.ts + registry.ts),禁止在此单侧改名。
|
|
19
21
|
*/
|
|
20
|
-
/** registry 文件名(<
|
|
22
|
+
/** registry 文件名(<dataDir>/ext-sessions/<sessionId>/background-tasks/ 下)。 */
|
|
21
23
|
declare const BACKGROUND_TASK_REGISTRY_FILENAME: "registry.json";
|
|
22
|
-
/**
|
|
24
|
+
/**
|
|
25
|
+
* [遗留] 旧布局(<agentDir>/base-tool-enhance/<sessionId>/registry.json)的根目录名
|
|
26
|
+
* 段——换根到 session 存储树后布局不再经过该目录(现行布局见文件头「目录布局」),
|
|
27
|
+
* 仓内生产代码零消费(仅测试保活断言 + npm 出口 re-export 保留);退役待出口面裁决。
|
|
28
|
+
*/
|
|
23
29
|
declare const BASE_TOOL_ENHANCE_DIRNAME: "base-tool-enhance";
|
|
24
30
|
/**
|
|
25
31
|
* 任务 id 前缀(taskId 契约注释已约定:bt- 前缀,对账差集只认该前缀——区别于
|
|
26
|
-
* subagent-workflow 的 bg-/run
|
|
32
|
+
* subagent-workflow 的 bg-/run-)。升级为导出常量:对账/检查的前缀过滤从此引用
|
|
27
33
|
* 同一常量,禁止各侧字面量重写。
|
|
28
34
|
*/
|
|
29
35
|
declare const BACKGROUND_TASK_ID_PREFIX: "bt-";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { B as BackgroundTaskState, a as BackgroundTaskRegistryEntry } from './background-task-
|
|
1
|
+
import { B as BackgroundTaskState, a as BackgroundTaskRegistryEntry } from './background-task-B53rQ-4Q.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* 后台任务进程原语(pid 判活 / 进程树处置 / start time 身份判据)——跨端单一实现。
|
|
@@ -9,8 +9,8 @@ import { B as BackgroundTaskState, a as BackgroundTaskRegistryEntry } from './ba
|
|
|
9
9
|
* - runtime 侧:taiji background-task-reaper(孤儿收殓三分支判定),原实现在
|
|
10
10
|
* background-task-reaper.ts 原语区
|
|
11
11
|
*
|
|
12
|
-
* 分支语义(与 pi 实装对齐,勿单侧擅改):Windows `taskkill /F /T`;POSIX
|
|
13
|
-
* `kill -- -<pgid>`(后台任务 detached spawn 自成进程组,pgid = pid
|
|
12
|
+
* 分支语义(与 pi 实装对齐,勿单侧擅改):Windows `taskkill /F /T`;POSIX 按进程组终止
|
|
13
|
+
* `kill -- -<pgid>`(后台任务 detached spawn 自成进程组,pgid = pid);按进程组终止不到时
|
|
14
14
|
* 回退单 pid + `pgrep -P` 递归杀残留子进程。
|
|
15
15
|
*
|
|
16
16
|
* 日志通道:本模块零日志依赖(protocol 零运行时依赖纪律)——回退路径的诊断经可选
|
|
@@ -31,7 +31,7 @@ type ProcessFallbackLogger = (step: string, err: unknown) => void;
|
|
|
31
31
|
declare function isPidAlive(pid: number): boolean;
|
|
32
32
|
/**
|
|
33
33
|
* 杀整棵进程树(同步;收殓路径在 process.on("exit") 里跑,必须同步)。
|
|
34
|
-
* POSIX
|
|
34
|
+
* POSIX 按进程组终止(pgid = pid)一次性覆盖全部子孙;按进程组终止不到(组长已死)回退
|
|
35
35
|
* 单 pid + pgrep -P 递归清理残留子进程(先杀孙辈再杀子辈,防孙辈在父死后被
|
|
36
36
|
* reparent 逃逸枚举)。Windows taskkill /F /T。幂等:目标已死时静默成功
|
|
37
37
|
* (回退路径的诊断经 onFallback 上报,无回调则静默)。
|
|
@@ -93,7 +93,7 @@ declare function parseRegistryContent(raw: string): BackgroundTaskRegistryEntry[
|
|
|
93
93
|
declare function corruptPathFor(registryPath: string): string;
|
|
94
94
|
/**
|
|
95
95
|
* 读取 registry 全量条目 + 损坏标记(runtime 现形态为超集;extension 侧 Map 形态
|
|
96
|
-
*
|
|
96
|
+
* 由各侧薄壳派生)。UI 读侧需要区分「真的空表」与「损坏被隔离的空表」。
|
|
97
97
|
*
|
|
98
98
|
* 文件不存在 / 读失败 → 空表 + corrupted:false(常态/降级,非损坏);解析失败 →
|
|
99
99
|
* 重命名 .corrupt 保留现场 + onLog warn + 空表 + corrupted:true(「空表重建」由
|