@bolloon/bolloon-agent 0.5.5 → 0.6.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.
Files changed (109) hide show
  1. package/dist/agents/parse-tool-call.js +6 -1
  2. package/dist/agents/pi-sdk-session-factory.js +36 -3
  3. package/dist/agents/pi-sdk.js +349 -199
  4. package/dist/agents/run-context.js +20 -0
  5. package/dist/agents/runner-resolver.js +2 -1
  6. package/dist/electron-build/agents/parse-tool-call.js +6 -1
  7. package/dist/electron-build/agents/parse-tool-call.js.map +1 -1
  8. package/dist/electron-build/agents/pi-sdk-session-factory.js +36 -3
  9. package/dist/electron-build/agents/pi-sdk-session-factory.js.map +1 -1
  10. package/dist/electron-build/agents/pi-sdk-types.js.map +1 -1
  11. package/dist/electron-build/agents/pi-sdk.js +349 -199
  12. package/dist/electron-build/agents/pi-sdk.js.map +1 -1
  13. package/dist/electron-build/agents/run-context.js +24 -0
  14. package/dist/electron-build/agents/run-context.js.map +1 -0
  15. package/dist/electron-build/agents/runner-resolver.js +2 -1
  16. package/dist/electron-build/agents/runner-resolver.js.map +1 -1
  17. package/dist/electron-build/kernel/channel-actor.js +314 -0
  18. package/dist/electron-build/kernel/channel-actor.js.map +1 -0
  19. package/dist/index.js +24 -19
  20. package/dist/kernel/channel-actor.js +297 -0
  21. package/dist/kernel/control.js +95 -0
  22. package/dist/kernel/gate-scan.js +1036 -0
  23. package/dist/kernel/model-runtime.js +472 -0
  24. package/dist/kernel/plan-channel-actor.js +298 -0
  25. package/dist/kernel/plan-constraint.js +165 -0
  26. package/dist/kernel/plan-deletion.js +32 -0
  27. package/dist/kernel/plan-modelruntime.js +60 -0
  28. package/dist/kernel/plan-runcontext.js +163 -0
  29. package/dist/kernel/plan.js +153 -0
  30. package/dist/kernel/roster.js +242 -0
  31. package/dist/web/bolloon-web.json +3 -3
  32. package/dist/web/client.js +3 -2
  33. package/dist/web/routes-tasks.js +5 -1
  34. package/dist/web/server.js +58 -18
  35. package/dist/web/sw.js +1 -1
  36. package/dist/web/ui/message-renderer.js +473 -29
  37. package/dist/web/ui/step-timeline.js +13 -12
  38. package/package.json +1 -1
  39. package/scripts/build-web.ts +74 -1
  40. package/dist/constraint-runtime/_archive_helper.d.ts +0 -1
  41. package/dist/constraint-runtime/_archive_helper.js +0 -9
  42. package/dist/constraint-runtime/assistant/index.d.ts +0 -11
  43. package/dist/constraint-runtime/assistant/index.js +0 -12
  44. package/dist/constraint-runtime/bootstrap/index.d.ts +0 -11
  45. package/dist/constraint-runtime/bootstrap/index.js +0 -12
  46. package/dist/constraint-runtime/bridge/index.d.ts +0 -11
  47. package/dist/constraint-runtime/bridge/index.js +0 -12
  48. package/dist/constraint-runtime/buddy/index.d.ts +0 -11
  49. package/dist/constraint-runtime/buddy/index.js +0 -12
  50. package/dist/constraint-runtime/cli/index.d.ts +0 -11
  51. package/dist/constraint-runtime/cli/index.js +0 -12
  52. package/dist/constraint-runtime/components/index.d.ts +0 -11
  53. package/dist/constraint-runtime/components/index.js +0 -12
  54. package/dist/constraint-runtime/constants/index.d.ts +0 -11
  55. package/dist/constraint-runtime/constants/index.js +0 -12
  56. package/dist/constraint-runtime/coordinator/index.d.ts +0 -11
  57. package/dist/constraint-runtime/coordinator/index.js +0 -12
  58. package/dist/constraint-runtime/cost_hook.d.ts +0 -2
  59. package/dist/constraint-runtime/cost_hook.js +0 -4
  60. package/dist/constraint-runtime/entrypoints/index.d.ts +0 -11
  61. package/dist/constraint-runtime/entrypoints/index.js +0 -12
  62. package/dist/constraint-runtime/execution_registry.d.ts +0 -20
  63. package/dist/constraint-runtime/execution_registry.js +0 -44
  64. package/dist/constraint-runtime/hooks/index.d.ts +0 -11
  65. package/dist/constraint-runtime/hooks/index.js +0 -12
  66. package/dist/constraint-runtime/ink.d.ts +0 -1
  67. package/dist/constraint-runtime/ink.js +0 -4
  68. package/dist/constraint-runtime/keybindings/index.d.ts +0 -11
  69. package/dist/constraint-runtime/keybindings/index.js +0 -12
  70. package/dist/constraint-runtime/memdir/index.d.ts +0 -11
  71. package/dist/constraint-runtime/memdir/index.js +0 -12
  72. package/dist/constraint-runtime/migrations/index.d.ts +0 -11
  73. package/dist/constraint-runtime/migrations/index.js +0 -12
  74. package/dist/constraint-runtime/moreright/index.d.ts +0 -11
  75. package/dist/constraint-runtime/moreright/index.js +0 -12
  76. package/dist/constraint-runtime/native_ts/index.d.ts +0 -11
  77. package/dist/constraint-runtime/native_ts/index.js +0 -12
  78. package/dist/constraint-runtime/output_styles/index.d.ts +0 -11
  79. package/dist/constraint-runtime/output_styles/index.js +0 -12
  80. package/dist/constraint-runtime/plugins/index.d.ts +0 -11
  81. package/dist/constraint-runtime/plugins/index.js +0 -12
  82. package/dist/constraint-runtime/port_manifest.d.ts +0 -7
  83. package/dist/constraint-runtime/port_manifest.js +0 -11
  84. package/dist/constraint-runtime/query.d.ts +0 -6
  85. package/dist/constraint-runtime/query.js +0 -1
  86. package/dist/constraint-runtime/remote/index.d.ts +0 -11
  87. package/dist/constraint-runtime/remote/index.js +0 -12
  88. package/dist/constraint-runtime/schemas/index.d.ts +0 -11
  89. package/dist/constraint-runtime/schemas/index.js +0 -12
  90. package/dist/constraint-runtime/screens/index.d.ts +0 -11
  91. package/dist/constraint-runtime/screens/index.js +0 -12
  92. package/dist/constraint-runtime/server/index.d.ts +0 -11
  93. package/dist/constraint-runtime/server/index.js +0 -12
  94. package/dist/constraint-runtime/services/index.d.ts +0 -11
  95. package/dist/constraint-runtime/services/index.js +0 -12
  96. package/dist/constraint-runtime/state/index.d.ts +0 -11
  97. package/dist/constraint-runtime/state/index.js +0 -12
  98. package/dist/constraint-runtime/system_init.d.ts +0 -1
  99. package/dist/constraint-runtime/system_init.js +0 -20
  100. package/dist/constraint-runtime/types/index.d.ts +0 -11
  101. package/dist/constraint-runtime/types/index.js +0 -12
  102. package/dist/constraint-runtime/upstream_proxy/index.d.ts +0 -11
  103. package/dist/constraint-runtime/upstream_proxy/index.js +0 -12
  104. package/dist/constraint-runtime/utils/index.d.ts +0 -11
  105. package/dist/constraint-runtime/utils/index.js +0 -12
  106. package/dist/constraint-runtime/vim/index.d.ts +0 -11
  107. package/dist/constraint-runtime/vim/index.js +0 -12
  108. package/dist/constraint-runtime/voice/index.d.ts +0 -11
  109. package/dist/constraint-runtime/voice/index.js +0 -12
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createRunContext = createRunContext;
4
+ let seq = 0;
5
+ /** 建一个 RunContext; 未给的字段一律显式置空 (不继承上一个 Run 的残留) */
6
+ function createRunContext(partial = {}) {
7
+ seq += 1;
8
+ return {
9
+ requestId: partial.requestId ?? `rc-${Date.now().toString(36)}-${seq}`,
10
+ channelId: partial.channelId ?? '',
11
+ agentId: partial.agentId ?? '',
12
+ goalId: partial.goalId ?? '',
13
+ runId: partial.runId ?? '',
14
+ // 'chitchat' 是中性默认, 与旧实例字段初值一致 (不是继承上一个 Run 的残留)
15
+ intent: partial.intent ?? 'chitchat',
16
+ modelSnapshot: partial.modelSnapshot ?? null,
17
+ history: partial.history ?? null,
18
+ abortSignal: partial.abortSignal ?? null,
19
+ budget: partial.budget ?? null,
20
+ eventSink: partial.eventSink ?? null,
21
+ harnessContext: partial.harnessContext ?? null,
22
+ };
23
+ }
24
+ //# sourceMappingURL=run-context.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run-context.js","sourceRoot":"","sources":["../../../src/agents/run-context.ts"],"names":[],"mappings":";;;AA6CA,IAAI,GAAG,GAAG,CAAC,CAAC;AAEZ,mDAAmD;AACnD,0BAAiC,OAAO,GAAwB,EAAE;IAChE,GAAG,IAAI,CAAC,CAAC;IACT,OAAO;QACL,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,MAAM,IAAI,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,GAAG,EAAE;QACtE,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,EAAE;QAClC,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,EAAE;QAC9B,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,EAAE;QAC1B,iDAAiD;QACjD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,UAAU;QACpC,aAAa,EAAE,OAAO,CAAC,aAAa,IAAI,IAAI;QAC5C,OAAO,EAAE,OAAO,CAAC,OAAO,IAAI,IAAI;QAChC,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,IAAI;QACxC,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,IAAI;QAC9B,SAAS,EAAE,OAAO,CAAC,SAAS,IAAI,IAAI;QACpC,cAAc,EAAE,OAAO,CAAC,cAAc,IAAI,IAAI;KAC/C,CAAC;AACJ,CAAC"}
@@ -56,6 +56,7 @@ exports.resolveGoalRunner = resolveGoalRunner;
56
56
  exports.latestFailedStage = latestFailedStage;
57
57
  exports.describeResolution = describeResolution;
58
58
  const os = __importStar(require("os"));
59
+ const channel_actor_js_1 = require("../kernel/channel-actor.js");
59
60
  const path = __importStar(require("path"));
60
61
  const fsp = __importStar(require("fs/promises"));
61
62
  const goal_store_js_1 = require("./goal-store.js");
@@ -238,7 +239,7 @@ async function resolveGoalRunner(req, opts = {}) {
238
239
  }
239
240
  agent.setGoalId?.(goal.goalId);
240
241
  agent.setContinuationGuards?.(r.guards || []);
241
- const reply = await agent.prompt(r.instruction);
242
+ const reply = await (0, channel_actor_js_1.deliverThroughActor)(agent, () => agent.prompt(r.instruction));
242
243
  const runId = agent.getLastRunId?.() || agent.getRunId?.() || '';
243
244
  // 没有 Run = 这次执行没有事实记录: 如实报告, 不让上层把"没跑"当"跑完"
244
245
  if (!runId) {
@@ -1 +1 @@
1
- {"version":3,"file":"runner-resolver.js","sourceRoot":"","sources":["../../../src/agents/runner-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner-resolver.js","sourceRoot":"","sources":["../../../src/agents/runner-resolver.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,314 @@
1
+ "use strict";
2
+ /**
3
+ * **Channel Actor** (K5 第 2 步: 容器)
4
+ *
5
+ * 为什么需要它: `messageHistory` / `currentChannelId` / `currentAgentId` / `currentGoalId` 四个字段
6
+ * 在 Pi 实例上被**所有入口共享** —— 这正是"多通道串台 / 同 Channel 并发改 history"的根。
7
+ * K2 已按 leo 口径判定它们**不是 Run 状态**, 该由 Channel Actor 承载 (见 `plan-channel-actor.ts`)。
8
+ *
9
+ * 本文件是**纯新增的容器**: 不改任何现有行为 (Pi 仍按原样跑)。它提供三件事:
10
+ * ① `ActorState` —— Actor 状态容器 (9 项, 与台账逐条对应);
11
+ * ② `SerialMailbox` —— 同 Channel **串行**执行队列 (1 个 channel 同时只有 1 个任务在跑);
12
+ * ③ `ChannelActor` —— 把两者绑起来: `submit()` 入队并串行执行 · `abort()` 取消当前任务。
13
+ *
14
+ * 纪律: 串行语义**真跑验证** (`src/test/kernel-channel-actor.test.ts` 的串行用例), 不靠"看起来对"。
15
+ */
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ exports.ChannelActor = exports.SerialMailbox = void 0;
18
+ exports.currentActorContext = currentActorContext;
19
+ exports.createActorState = createActorState;
20
+ exports.getOrCreateActor = getOrCreateActor;
21
+ exports.peekActor = peekActor;
22
+ exports.actorCount = actorCount;
23
+ exports.resetActors = resetActors;
24
+ exports.deliverThroughActor = deliverThroughActor;
25
+ exports.getChannelQueue = getChannelQueue;
26
+ exports.channelQueueCount = channelQueueCount;
27
+ exports.createPrivateActor = createPrivateActor;
28
+ exports.privateActorCount = privateActorCount;
29
+ /** Actor 状态容器 —— 与 `ACTOR_STATE_ITEMS` 的 9 项一一对应 */
30
+ const node_async_hooks_1 = require("node:async_hooks");
31
+ /**
32
+ * **当前正在哪个 Actor 的 mailbox 任务里跑** (K5 第 5 步的前置安全网)。
33
+ *
34
+ * 为什么必须有: `SerialMailbox` 是**无重入**的 —— 一个已在 mailbox 里跑的任务若再往同一个 mailbox
35
+ * 投递并 await, 就是**自锁** (新任务排在"自己"后面)。入口投递 (步骤④) 一旦覆盖到"运行中会被调用"
36
+ * 的执行点 (LLM 回调 / judge / 工具内再问一次), 就会踩到这条。
37
+ * ⇒ 用 ALS 记住"我在谁的上下文里", 同 actor 重入时**直跑**, 不同 actor 照常排队。
38
+ */
39
+ const actorCtx = new node_async_hooks_1.AsyncLocalStorage();
40
+ /** 当前是否正跑在某个 Actor 的 mailbox 任务内 (诊断用) */
41
+ function currentActorContext() {
42
+ return actorCtx.getStore();
43
+ }
44
+ function createActorState(init = {}) {
45
+ return {
46
+ channelId: init.channelId ?? '',
47
+ agentId: init.agentId ?? '',
48
+ goalBinding: init.goalBinding ?? '',
49
+ messageHistory: init.messageHistory ?? [],
50
+ mailbox: init.mailbox ?? { pending: 0, processed: 0 },
51
+ activeRun: init.activeRun ?? '',
52
+ cancellation: init.cancellation ?? null,
53
+ outboundStream: init.outboundStream ?? null,
54
+ };
55
+ }
56
+ /**
57
+ * 同 Channel **串行**邮箱。
58
+ *
59
+ * 契约 (K5 验收标准 ①):
60
+ * · `submit()` 立即返回 promise, 任务**排队**执行;
61
+ * · 同一个 mailbox 内**永不并发** —— 后一个任务在前一个 settle 之后才开始;
62
+ * · 一个任务抛错**不阻塞**队列 (错误交给该任务自己的 promise, 队列继续);
63
+ * · `pending` 是"已入队未完成"的数量, 用于观测 (不是背压实现)。
64
+ */
65
+ class SerialMailbox {
66
+ tail = Promise.resolve();
67
+ pendingCount = 0;
68
+ processedCount = 0;
69
+ get pending() { return this.pendingCount; }
70
+ get processed() { return this.processedCount; }
71
+ submit(task) {
72
+ this.pendingCount += 1;
73
+ const run = this.tail.then(async () => {
74
+ try {
75
+ return await task();
76
+ }
77
+ finally {
78
+ this.pendingCount -= 1;
79
+ this.processedCount += 1;
80
+ }
81
+ });
82
+ // 队列尾巴吞掉错误, 避免一个失败任务毒化后续任务 (错误仍由返回的 promise 抛给调用方)
83
+ this.tail = run.then(() => undefined, () => undefined);
84
+ return run;
85
+ }
86
+ /** 等队列跑空 (测试与收尾用) */
87
+ async drain() {
88
+ await this.tail;
89
+ }
90
+ }
91
+ exports.SerialMailbox = SerialMailbox;
92
+ /**
93
+ * 把一个 Channel 的状态与串行队列绑在一起。
94
+ *
95
+ * 现在**只是容器**: 还没有任何入口往里投递 (K5 第 4 步才接)。
96
+ * 因此它不改变现有行为 —— 现有链路仍走 Pi 实例字段。
97
+ */
98
+ class ChannelActor {
99
+ state;
100
+ mailbox = new SerialMailbox();
101
+ constructor(init = {}) {
102
+ this.state = createActorState(init);
103
+ }
104
+ /** 投递一次执行 (串行执行)。执行期间 `state.activeRun` 由调用方/后续步骤写入 */
105
+ submit(fn) {
106
+ // 任务体内建立 ALS 上下文 ⇒ 任务内部的异步续体也能认出"自己在谁的上下文里"
107
+ return this.mailbox.submit(() => actorCtx.run(this, () => fn(this.state)));
108
+ }
109
+ /**
110
+ * **K5 第 4 步 — hydrate**: 实现体 (load → filter → 截断 → 替换) 住在 Actor, 业务侧只给纯变换。
111
+ * 走邮箱 ⇒ 与 append / persist 串行, 不会再出现"读-改-写"三拍被并发踩掉。
112
+ * 返回灌入条数 (0 = 没历史 / 空 / 加载失败由调用方处理)。
113
+ */
114
+ hydrateHistory(spec) {
115
+ return this.mailbox.submit(async () => {
116
+ const loaded = await spec.load();
117
+ if (!loaded)
118
+ return 0;
119
+ const next = spec.filter(loaded).slice(-spec.maxMessages);
120
+ if (next.length === 0)
121
+ return 0;
122
+ const arr = this.state.messageHistory;
123
+ arr.length = 0;
124
+ arr.push(...next);
125
+ return next.length;
126
+ });
127
+ }
128
+ /**
129
+ * **K5 第 4 步 — persist 的取数拍**: 取一份快照 (浅拷贝)。
130
+ * 走邮箱 ⇒ 拿到的是一致的 history, 不会与正在进行的 append 交错 (原来的 `this.messageHistory.map(...)`
131
+ * 是"边写边读", 压缩/工具回灌并发时可能落盘到半截状态)。
132
+ */
133
+ historySnapshot() {
134
+ return this.mailbox.submit(() => [...this.state.messageHistory]);
135
+ }
136
+ /** **K5 第 4 步 — append (排队版)**: 串行追加 (同 Channel 内排队) */
137
+ appendMessage(msg) {
138
+ return this.mailbox.submit(() => { this.state.messageHistory.push(msg); });
139
+ }
140
+ /**
141
+ * **K5 第 4 步 — append (同步漏斗版)**: 给"写完立刻要读到"的调用面用 (Pi 的 ReAct 循环里大量
142
+ * `push` 后马上读 `length`/索引) —— 不能改成 await, 否则会改变同拍可见性。
143
+ *
144
+ * 它提供的是**归属与可数性** (所有 history 写入收敛到唯一漏斗, 门可以断言"零处直写"),
145
+ * **不是并发安全** —— 并发安全由"入口投递进 mailbox"负责 (K5 第 5 步 / entriesWired)。
146
+ */
147
+ appendMessageSync(msg) {
148
+ this.state.messageHistory.push(msg);
149
+ }
150
+ /** **K5 第 4 步 — pop 漏斗** (与 appendMessageSync 同性质: 归属可数, 不负责并发) */
151
+ popMessageSync() {
152
+ return this.state.messageHistory.pop();
153
+ }
154
+ /**
155
+ * **K5 第 4 步 — compact 的落地拍 (rebase)**: 用压缩结果替换 history, 但**保住**变换期间新追加的尾部。
156
+ *
157
+ * 为什么必须有这一拍: 压缩流水线是 **async** —— 从"取快照"(`snapshotLen`) 到"落地"之间是 await 窗口,
158
+ * 期间 append 进来的消息会被整块替换**丢掉** (lost update)。这里把尾部原样接回去。
159
+ * (同步压缩路径不受影响: 取快照与替换在同一拍相邻两行, 没有窗口 —— 见 pi-sdk 的注释。)
160
+ */
161
+ rebaseHistory(compacted, snapshotLen) {
162
+ return this.mailbox.submit(() => {
163
+ const arr = this.state.messageHistory;
164
+ const at = Math.max(0, Math.min(snapshotLen, arr.length));
165
+ const tail = arr.slice(at);
166
+ arr.length = 0;
167
+ arr.push(...compacted, ...tail);
168
+ return { keptTail: tail.length };
169
+ });
170
+ }
171
+ /** **K5 第 4 步 — 整体替换漏斗** (hydrate 回灌 / 压缩后的整体赋值都走这里) */
172
+ replaceHistory(next) {
173
+ const arr = this.state.messageHistory;
174
+ arr.length = 0;
175
+ arr.push(...next);
176
+ }
177
+ /** 取消当前任务: 中断 signal, 队列继续 (后续任务看到的是新的 controller) */
178
+ abort(reason = 'aborted') {
179
+ this.state.cancellation?.abort(reason);
180
+ this.state.cancellation = null;
181
+ }
182
+ /** 开一个新的取消位 (进入一次执行时用) */
183
+ beginCancellation() {
184
+ const ac = new AbortController();
185
+ this.state.cancellation = ac;
186
+ return ac.signal;
187
+ }
188
+ }
189
+ exports.ChannelActor = ChannelActor;
190
+ // ─────────────────────────────────────────────────────────────────────────────
191
+ // Actor 注册表 (K5 第 3 步): 一个 channel 一个 actor
192
+ // ─────────────────────────────────────────────────────────────────────────────
193
+ /**
194
+ * 进程内注册表: **会话身份 → ChannelActor**。
195
+ *
196
+ * ⚠️ 键是**会话身份** (SessionStore key / 整条 peerId), **不是** channel 前缀 —— 这条是被全量回归打出来的:
197
+ * 第一版取 `peerId` 的 `:` 前段当键 ⇒ 同一 channel 下不同会话落进同一个桶 ⇒ 新 session 一构造
198
+ * 就看到别人的 history (4742 测试里 5 红, 症状统一 `expected 2/5/6 to be 0`)。
199
+ * 隔离粒度必须与被迁移状态原有的粒度一致: history 属于**会话**, 不属于 channel 前缀。
200
+ *
201
+ * ⚠️ **没有身份就不归属** (没有 'default' 兜底桶) —— 宁可不共享, 不许串台。这里先把"落点"建起来。
202
+ *
203
+ * ⚠️ 现在的定位 (不许夸大):
204
+ * · 只做**归属**: 同一 channelId 永远拿到同一个 actor 实例, 不同 channelId 互不相干;
205
+ * · **还没有任何入口把执行投递进来** (`submit()` 尚未被业务调用) ⇒ K5 进度里
206
+ * `entriesWired` 仍是 **0/4**, 行为与迁移前一致;
207
+ * · 进程内 (非持久): 重启后 actor 表为空 —— 持久化是后续步骤 (history/Goal/Run 的恢复)。
208
+ */
209
+ const actors = new Map();
210
+ /**
211
+ * 取(或建)某 channel 的 actor。
212
+ * `init` **只在新建时生效** (既有 actor 不会被 init 覆盖 —— 避免"后到的调用把先建的会话状态冲掉")。
213
+ */
214
+ function getOrCreateActor(actorKey, init = {}) {
215
+ const key = actorKey;
216
+ const existing = actors.get(key);
217
+ if (existing)
218
+ return existing;
219
+ // ⚠️ **不拿身份键当 channel 绑定**: `state.channelId` 的语义 = 会话当前绑定的 channel
220
+ // (与 Pi 的 currentChannelId 一致, 由 prompt/入口设置)。工厂若预置成 peerId 前缀,
221
+ // 会让会话在入口设置之前就读到非空值 (snapshot / compaction cacheScope 都会跟着变) —— 静默行为变化。
222
+ const created = new ChannelActor({ ...init });
223
+ actors.set(key, created);
224
+ return created;
225
+ }
226
+ /** 只读探查 (不建) —— 测试与诊断用 */
227
+ function peekActor(actorKey) {
228
+ return actors.get(actorKey);
229
+ }
230
+ /** 当前 actor 数 (诊断用) */
231
+ function actorCount() {
232
+ return actors.size;
233
+ }
234
+ /** 清空注册表 —— **仅测试用** (避免测试之间互相污染) */
235
+ function resetActors() {
236
+ actors.clear();
237
+ channelQueues.clear();
238
+ privateActorsCreated = 0;
239
+ }
240
+ async function deliverThroughActor(
241
+ // 形参故意放宽成 `unknown`: 调用点的 receiver 类型五花八门 (AgentSession / 结构子集 / any),
242
+ // 写成 `{ actor?: ChannelActor }` 会触发 TS 的弱类型检查 ("no properties in common") 而误报。
243
+ // 实际用法由下面这行运行时取值保证 (取不到 actor 就直跑)。
244
+ holder, run, opts = {}) {
245
+ const actor = holder?.actor;
246
+ if (!actor || typeof actor.submit !== 'function')
247
+ return run();
248
+ // **重入保护**: 已经跑在同一个 actor 的 mailbox 任务里 ⇒ 直跑。
249
+ // 否则"运行中被调用的执行点"(LLM 回调 / judge / 工具内再问) 会往自己的队列尾投递 ⇒ **自锁**。
250
+ if (actorCtx.getStore() === actor)
251
+ return run();
252
+ // channel 级串行 (opt-in): 走 channel 队列; 同样要防重入 (已在同一 channel 队列任务里 ⇒ 直跑)
253
+ if (opts.serializeByChannel) {
254
+ const ch = actor.state.channelId;
255
+ if (ch) {
256
+ const q = getChannelQueue(ch);
257
+ if (channelCtx.getStore() === q)
258
+ return run();
259
+ return q.submit(() => channelCtx.run(q, () => actor.submit(() => actorCtx.run(actor, () => run()))));
260
+ }
261
+ }
262
+ return actor.submit(run);
263
+ }
264
+ // ─────────────────────────────────────────────────────────────────────────────
265
+ // channel 级串行锁 (K5 步骤⑤) —— **能力先落地, 默认不启用**
266
+ // ─────────────────────────────────────────────────────────────────────────────
267
+ /**
268
+ * channel 级队列注册表: `channelId → 串行队列`。
269
+ *
270
+ * 为什么要它 / 为什么默认不启用 (证据在 `plan-channel-actor.ts` 的 `K5_CHANNEL_LOCK`):
271
+ * · **证据**: web 的 channel 只有一个 `currentSessionId` ⇒ 用户消息都投到**同一个会话身份**
272
+ * ⇒ 身份级串行 (mailbox) **已经把该 channel 的输入串起来了** —— 验收①在活跃会话上已成立。
273
+ * · **能力**: 会话切换 (`[新会话] 已切换`) 后旧会话仍在内存, 此时两个身份可能并行 —— 若要"跨会话切换也串行",
274
+ * 需要 channel 级锁。
275
+ * · **代价**: 同 channel 的**多个 agent** (P2P 多智能体) 也会被串起来 ⇒ 吞吐下降。
276
+ * ⇒ 是否全局启用是**意图层**的决定 (leo), 这里只把能力与证据备好, 由台账的 `enabled` 开关控制。
277
+ */
278
+ const channelQueues = new Map();
279
+ /** 取(或建)某 channel 的串行队列 */
280
+ function getChannelQueue(channelId) {
281
+ const key = channelId || 'default';
282
+ let q = channelQueues.get(key);
283
+ if (!q) {
284
+ q = new SerialMailbox();
285
+ channelQueues.set(key, q);
286
+ }
287
+ return q;
288
+ }
289
+ /** 当前 channel 队列数 (诊断用) */
290
+ function channelQueueCount() {
291
+ return channelQueues.size;
292
+ }
293
+ /** channel 队列上下文 (重入判定用; 与 actorCtx 同理 —— 不许自锁) */
294
+ const channelCtx = new node_async_hooks_1.AsyncLocalStorage();
295
+ // ─────────────────────────────────────────────────────────────────────────────
296
+ // 私有 actor (K5 步骤⑧): 给"没有会话身份"的 session 用
297
+ // ─────────────────────────────────────────────────────────────────────────────
298
+ let privateActorsCreated = 0;
299
+ /**
300
+ * 造一个**私有** actor: **不注册**进 `actors`, 所以别人拿不到它 ⇒ 不可能串台。
301
+ *
302
+ * 为什么需要它 (K5 步骤⑧ 的前提): 要删掉 Pi 实例侧的"绑定前暂存"字段, 就必须保证**任何 session 都有 actor**。
303
+ * 没有身份时不许猜键 (猜就会共享) —— 那就给它一个**谁也拿不到**的私有 actor:
304
+ * 隔离性比"共享"更保守, 语义与"暂存字段"完全等价 (每个 session 自己一份)。
305
+ */
306
+ function createPrivateActor() {
307
+ privateActorsCreated += 1;
308
+ return new ChannelActor();
309
+ }
310
+ /** 已创建的私有 actor 数 (诊断/测试用: 证明"每个无身份 session 各拿一份") */
311
+ function privateActorCount() {
312
+ return privateActorsCreated;
313
+ }
314
+ //# sourceMappingURL=channel-actor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"channel-actor.js","sourceRoot":"","sources":["../../../src/kernel/channel-actor.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { deliverThroughActor } from './kernel/channel-actor.js';
1
2
  import { createHyperswarmCommunicator, createTopic, KeyManager, AgentAuthManager, createVerificationManager, } from '@diap/sdk';
2
3
  import { irohTransport } from './network/iroh-transport.js';
3
4
  import { getLastAiTiming, getLastAiUsage } from './llm/pi-ai.js';
@@ -781,7 +782,8 @@ async function handleSummarize(task) {
781
782
  if (!task.documentPath)
782
783
  return `ERR|${JSON.stringify({ code: 'no_path' })}`;
783
784
  const a = await getAgent();
784
- const { summary, qualityScore } = await a.summarizeDocument(task.documentPath);
785
+ const docPath = task.documentPath; // 闭包里 TS 不保留收窄 ⇒ 先收成局部 const
786
+ const { summary, qualityScore } = await deliverThroughActor(a, () => a.summarizeDocument(docPath));
785
787
  writeOut(` ✅ 质量=${(qualityScore * 10).toFixed(1)}/10`);
786
788
  return `OK|${JSON.stringify({ id: task.id, type: 'summarize', qualityScore, summary })}`;
787
789
  }
@@ -790,11 +792,14 @@ async function handleImprove(task) {
790
792
  return `ERR|${JSON.stringify({ code: 'no_path_or_req' })}`;
791
793
  }
792
794
  const a = await getAgent();
793
- const res = await a.improveDocument({
794
- originalPath: task.documentPath,
795
- requirements: task.requirements,
795
+ // 闭包里 TS 不保留收窄 ⇒ 先把两个字段收成局部 const
796
+ const docPath = task.documentPath;
797
+ const reqs = task.requirements;
798
+ const res = await deliverThroughActor(a, () => a.improveDocument({
799
+ originalPath: docPath,
800
+ requirements: reqs,
796
801
  context: `来自节点: ${task.from}`,
797
- });
802
+ }));
798
803
  const ok = res.improved ?? false;
799
804
  writeOut(` ✅ 改进${ok ? '成功' : '失败'} 质量=${(res.qualityScore * 10).toFixed(1)}/10 自动发送=${res.shouldAutoSend}`);
800
805
  return `OK|${JSON.stringify({
@@ -1421,7 +1426,7 @@ async function startCLI(commReady) {
1421
1426
  new Promise((res) => setTimeout(() => res(null), 8000)),
1422
1427
  ]);
1423
1428
  if (a && typeof a.promptStream === 'function') {
1424
- llm = (p) => a.promptStream(p, () => { }, undefined, cliActiveChannelId || undefined);
1429
+ llm = (p) => deliverThroughActor(a, () => a.promptStream(p, () => { }, undefined, cliActiveChannelId || undefined));
1425
1430
  }
1426
1431
  }
1427
1432
  catch { /* 无 agent → 仅扫描 */ }
@@ -2001,7 +2006,7 @@ async function processInputInner(input, comm) {
2001
2006
  return;
2002
2007
  }
2003
2008
  const agent = await getAgent();
2004
- const active = String(agent?.currentChannelId || '');
2009
+ const active = String(agent?.actor?.state?.channelId || ''); // K5 步骤⑧: 本体在 actor (删访问器后这里曾静默变空 ⇒ 安全检查失效)
2005
2010
  if (rec.channelId && active && rec.channelId !== active) {
2006
2011
  appendLine(`${C_ERROR}该运行属于 channel ${rec.channelId} (当前 ${active}) — 先 /channel 切过去再 /resume${RESET}`);
2007
2012
  return;
@@ -2310,7 +2315,7 @@ async function processInputInner(input, comm) {
2310
2315
  }
2311
2316
  agent.setGoalId?.(req.goal.goalId);
2312
2317
  agent.setContinuationGuards?.(req.guards || []);
2313
- await agent.prompt(req.instruction);
2318
+ await deliverThroughActor(agent, () => agent.prompt(req.instruction));
2314
2319
  return { runId: agent.getLastRunId?.() || agent.getRunId?.(), status: 'done' };
2315
2320
  }
2316
2321
  : undefined;
@@ -2869,7 +2874,7 @@ async function processInputInner(input, comm) {
2869
2874
  const a = await getAgent();
2870
2875
  const h = a.messageHistory ?? [];
2871
2876
  appendLine(`${C_ACCENT}当前会话:${RESET} ${C_DIM}${cliSessionKey || '—'}${RESET}`);
2872
- appendLine(` ${C_DIM}channel:${RESET} ${a.currentChannelId || cliActiveChannelId || '—'} ${C_DIM}agent:${RESET} ${a.currentAgentId || cliAgentId || '—'}`);
2877
+ appendLine(` ${C_DIM}channel:${RESET} ${a.actor?.state?.channelId || cliActiveChannelId || '—'} ${C_DIM}agent:${RESET} ${a.currentAgentId || cliAgentId || '—'}`);
2873
2878
  appendLine(` ${C_DIM}消息:${RESET} ${h.length} 条 ${h.length > 15 ? `${C_DIM}(${h.length - 15} 条已压缩)${RESET}` : ''}`);
2874
2879
  }
2875
2880
  catch (e) {
@@ -3398,7 +3403,7 @@ async function processInputInner(input, comm) {
3398
3403
  const a = await getAgent();
3399
3404
  appendLine(`${C_ACCENT}智能体:${RESET}`);
3400
3405
  appendLine(` ${C_DIM}名称:${RESET} ${cliAgentName}`);
3401
- appendLine(` ${C_DIM}agentId:${RESET} ${a.currentAgentId || '—'}`);
3406
+ appendLine(` ${C_DIM}agentId:${RESET} ${a.actor?.state?.agentId || '—'}`); // K5 步骤⑧: 本体在 actor
3402
3407
  appendLine(` ${C_DIM}channel:${RESET} ${cliActiveChannelId || '—'}`);
3403
3408
  }
3404
3409
  catch { /* 静默 */ }
@@ -4111,7 +4116,7 @@ async function processInputInner(input, comm) {
4111
4116
  cliTurnStartedAt = Date.now();
4112
4117
  cliTurnReplyBytes = 0;
4113
4118
  cliTurnToolCount = 0;
4114
- const response = await a.prompt(trimmed, {
4119
+ const response = await deliverThroughActor(a, () => a.prompt(trimmed, {
4115
4120
  onStream: (e) => {
4116
4121
  // 2026-08-07: 中间思考/状态显示 — 之前只显示工具步骤, LLM 的思考过程
4117
4122
  // (thinking / status / phase / Reflection) 全被丢弃 → 用户只能看到输入和最终输出
@@ -4219,7 +4224,7 @@ async function processInputInner(input, comm) {
4219
4224
  }
4220
4225
  }
4221
4226
  }
4222
- });
4227
+ }));
4223
4228
  // 智能体回复框
4224
4229
  appendLine(renderAgentMessage(response));
4225
4230
  try {
@@ -4489,7 +4494,7 @@ goalFlag) {
4489
4494
  error = response;
4490
4495
  break;
4491
4496
  }
4492
- const result = await a.summarizeDocument(filePath, ctx.join(' '));
4497
+ const result = await deliverThroughActor(a, () => a.summarizeDocument(filePath, ctx.join(' ')));
4493
4498
  response = `📝 摘要:\n${result.summary}\n\n质量评分: ${(result.qualityScore * 10).toFixed(1)}/10`;
4494
4499
  metadata.qualityScore = result.qualityScore;
4495
4500
  break;
@@ -4501,10 +4506,10 @@ goalFlag) {
4501
4506
  error = response;
4502
4507
  break;
4503
4508
  }
4504
- const result = await a.improveDocument({
4509
+ const result = await deliverThroughActor(a, () => a.improveDocument({
4505
4510
  originalPath: filePath,
4506
4511
  requirements: req.join(' ')
4507
- });
4512
+ }));
4508
4513
  response = result.newContent || '';
4509
4514
  if (!result.improved) {
4510
4515
  response = '错误: 改进失败';
@@ -4685,7 +4690,7 @@ goalFlag) {
4685
4690
  error = response;
4686
4691
  break;
4687
4692
  }
4688
- response = await a.prompt(text);
4693
+ response = await deliverThroughActor(a, () => a.prompt(text));
4689
4694
  break;
4690
4695
  }
4691
4696
  case 'tools': {
@@ -5340,7 +5345,7 @@ async function runNonInteractive(args, comm) {
5340
5345
  }
5341
5346
  else if (prompt) {
5342
5347
  const a = await getAgent();
5343
- writeOut(await a.prompt(prompt));
5348
+ writeOut(await deliverThroughActor(a, () => a.prompt(prompt)));
5344
5349
  }
5345
5350
  console.log = originalLog;
5346
5351
  await fs.writeFile(output, outputBuffer.trim(), 'utf-8');
@@ -5353,7 +5358,7 @@ async function runNonInteractive(args, comm) {
5353
5358
  const startTime = Date.now();
5354
5359
  const a = await getAgent();
5355
5360
  try {
5356
- const response = await a.prompt(prompt);
5361
+ const response = await deliverThroughActor(a, () => a.prompt(prompt));
5357
5362
  const elapsed = Date.now() - startTime;
5358
5363
  if (json) {
5359
5364
  writeOut(JSON.stringify({ success: true, response, elapsedMs: elapsed }, null, 2));
@@ -5383,7 +5388,7 @@ async function runNonInteractive(args, comm) {
5383
5388
  const a = await getAgent();
5384
5389
  let response;
5385
5390
  try {
5386
- response = await a.prompt(prompt);
5391
+ response = await deliverThroughActor(a, () => a.prompt(prompt));
5387
5392
  }
5388
5393
  catch (e) {
5389
5394
  response = `错误: ${e.message}`;