@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.
- package/dist/agents/parse-tool-call.js +6 -1
- package/dist/agents/pi-sdk-session-factory.js +36 -3
- package/dist/agents/pi-sdk.js +349 -199
- package/dist/agents/run-context.js +20 -0
- package/dist/agents/runner-resolver.js +2 -1
- package/dist/electron-build/agents/parse-tool-call.js +6 -1
- package/dist/electron-build/agents/parse-tool-call.js.map +1 -1
- package/dist/electron-build/agents/pi-sdk-session-factory.js +36 -3
- package/dist/electron-build/agents/pi-sdk-session-factory.js.map +1 -1
- package/dist/electron-build/agents/pi-sdk-types.js.map +1 -1
- package/dist/electron-build/agents/pi-sdk.js +349 -199
- package/dist/electron-build/agents/pi-sdk.js.map +1 -1
- package/dist/electron-build/agents/run-context.js +24 -0
- package/dist/electron-build/agents/run-context.js.map +1 -0
- package/dist/electron-build/agents/runner-resolver.js +2 -1
- package/dist/electron-build/agents/runner-resolver.js.map +1 -1
- package/dist/electron-build/kernel/channel-actor.js +314 -0
- package/dist/electron-build/kernel/channel-actor.js.map +1 -0
- package/dist/index.js +24 -19
- package/dist/kernel/channel-actor.js +297 -0
- package/dist/kernel/control.js +95 -0
- package/dist/kernel/gate-scan.js +1036 -0
- package/dist/kernel/model-runtime.js +472 -0
- package/dist/kernel/plan-channel-actor.js +298 -0
- package/dist/kernel/plan-constraint.js +165 -0
- package/dist/kernel/plan-deletion.js +32 -0
- package/dist/kernel/plan-modelruntime.js +60 -0
- package/dist/kernel/plan-runcontext.js +163 -0
- package/dist/kernel/plan.js +153 -0
- package/dist/kernel/roster.js +242 -0
- package/dist/web/bolloon-web.json +3 -3
- package/dist/web/client.js +3 -2
- package/dist/web/routes-tasks.js +5 -1
- package/dist/web/server.js +58 -18
- package/dist/web/sw.js +1 -1
- package/dist/web/ui/message-renderer.js +473 -29
- package/dist/web/ui/step-timeline.js +13 -12
- package/package.json +1 -1
- package/scripts/build-web.ts +74 -1
- package/dist/constraint-runtime/_archive_helper.d.ts +0 -1
- package/dist/constraint-runtime/_archive_helper.js +0 -9
- package/dist/constraint-runtime/assistant/index.d.ts +0 -11
- package/dist/constraint-runtime/assistant/index.js +0 -12
- package/dist/constraint-runtime/bootstrap/index.d.ts +0 -11
- package/dist/constraint-runtime/bootstrap/index.js +0 -12
- package/dist/constraint-runtime/bridge/index.d.ts +0 -11
- package/dist/constraint-runtime/bridge/index.js +0 -12
- package/dist/constraint-runtime/buddy/index.d.ts +0 -11
- package/dist/constraint-runtime/buddy/index.js +0 -12
- package/dist/constraint-runtime/cli/index.d.ts +0 -11
- package/dist/constraint-runtime/cli/index.js +0 -12
- package/dist/constraint-runtime/components/index.d.ts +0 -11
- package/dist/constraint-runtime/components/index.js +0 -12
- package/dist/constraint-runtime/constants/index.d.ts +0 -11
- package/dist/constraint-runtime/constants/index.js +0 -12
- package/dist/constraint-runtime/coordinator/index.d.ts +0 -11
- package/dist/constraint-runtime/coordinator/index.js +0 -12
- package/dist/constraint-runtime/cost_hook.d.ts +0 -2
- package/dist/constraint-runtime/cost_hook.js +0 -4
- package/dist/constraint-runtime/entrypoints/index.d.ts +0 -11
- package/dist/constraint-runtime/entrypoints/index.js +0 -12
- package/dist/constraint-runtime/execution_registry.d.ts +0 -20
- package/dist/constraint-runtime/execution_registry.js +0 -44
- package/dist/constraint-runtime/hooks/index.d.ts +0 -11
- package/dist/constraint-runtime/hooks/index.js +0 -12
- package/dist/constraint-runtime/ink.d.ts +0 -1
- package/dist/constraint-runtime/ink.js +0 -4
- package/dist/constraint-runtime/keybindings/index.d.ts +0 -11
- package/dist/constraint-runtime/keybindings/index.js +0 -12
- package/dist/constraint-runtime/memdir/index.d.ts +0 -11
- package/dist/constraint-runtime/memdir/index.js +0 -12
- package/dist/constraint-runtime/migrations/index.d.ts +0 -11
- package/dist/constraint-runtime/migrations/index.js +0 -12
- package/dist/constraint-runtime/moreright/index.d.ts +0 -11
- package/dist/constraint-runtime/moreright/index.js +0 -12
- package/dist/constraint-runtime/native_ts/index.d.ts +0 -11
- package/dist/constraint-runtime/native_ts/index.js +0 -12
- package/dist/constraint-runtime/output_styles/index.d.ts +0 -11
- package/dist/constraint-runtime/output_styles/index.js +0 -12
- package/dist/constraint-runtime/plugins/index.d.ts +0 -11
- package/dist/constraint-runtime/plugins/index.js +0 -12
- package/dist/constraint-runtime/port_manifest.d.ts +0 -7
- package/dist/constraint-runtime/port_manifest.js +0 -11
- package/dist/constraint-runtime/query.d.ts +0 -6
- package/dist/constraint-runtime/query.js +0 -1
- package/dist/constraint-runtime/remote/index.d.ts +0 -11
- package/dist/constraint-runtime/remote/index.js +0 -12
- package/dist/constraint-runtime/schemas/index.d.ts +0 -11
- package/dist/constraint-runtime/schemas/index.js +0 -12
- package/dist/constraint-runtime/screens/index.d.ts +0 -11
- package/dist/constraint-runtime/screens/index.js +0 -12
- package/dist/constraint-runtime/server/index.d.ts +0 -11
- package/dist/constraint-runtime/server/index.js +0 -12
- package/dist/constraint-runtime/services/index.d.ts +0 -11
- package/dist/constraint-runtime/services/index.js +0 -12
- package/dist/constraint-runtime/state/index.d.ts +0 -11
- package/dist/constraint-runtime/state/index.js +0 -12
- package/dist/constraint-runtime/system_init.d.ts +0 -1
- package/dist/constraint-runtime/system_init.js +0 -20
- package/dist/constraint-runtime/types/index.d.ts +0 -11
- package/dist/constraint-runtime/types/index.js +0 -12
- package/dist/constraint-runtime/upstream_proxy/index.d.ts +0 -11
- package/dist/constraint-runtime/upstream_proxy/index.js +0 -12
- package/dist/constraint-runtime/utils/index.d.ts +0 -11
- package/dist/constraint-runtime/utils/index.js +0 -12
- package/dist/constraint-runtime/vim/index.d.ts +0 -11
- package/dist/constraint-runtime/vim/index.js +0 -12
- package/dist/constraint-runtime/voice/index.d.ts +0 -11
- package/dist/constraint-runtime/voice/index.js +0 -12
|
@@ -285,7 +285,12 @@ function resolve(ctx, name) {
|
|
|
285
285
|
return defaultResolveAlias(name, ctx.tools);
|
|
286
286
|
}
|
|
287
287
|
/** 诊断开关 (2026-10-01): 默认关 —— 这条 diag 在热路径上且上屏, 默认开会刷屏 */
|
|
288
|
-
|
|
288
|
+
// 2026-10-02: 必须守卫 process —— 本文件被浏览器侧模块链引用
|
|
289
|
+
// (/ui/message-renderer.js → /agents/chat-segmenter.js → 这里);
|
|
290
|
+
// 顶层裸读 process.env 会让该模块在浏览器抛 ReferenceError, 静默废掉整条渲染链。
|
|
291
|
+
const _parseEnv = typeof process !== 'undefined' ? process.env : undefined;
|
|
292
|
+
const PARSE_DIAG_ON = !!_parseEnv
|
|
293
|
+
&& (_parseEnv.BOLLOON_PARSE_DIAG === '1' || _parseEnv.BOLLOON_VERBOSE === '1');
|
|
289
294
|
export function parseToolCall(content, ctx) {
|
|
290
295
|
if (!content)
|
|
291
296
|
return null;
|
|
@@ -16,6 +16,39 @@ import { getBranchPrefix, getCooldownMs } from './shell-guard.js';
|
|
|
16
16
|
* - lastSelfImproveAt: 自改冷却期
|
|
17
17
|
*/
|
|
18
18
|
import { PiAgentSession } from './pi-sdk.js';
|
|
19
|
+
import { getOrCreateActor } from '../kernel/channel-actor.js';
|
|
20
|
+
/**
|
|
21
|
+
* **K5 第 3 步**: 会话创建时绑定它所属 channel 的 Actor —— 只做**归属**。
|
|
22
|
+
* · **注册键取会话身份** (`loadSessionKey` 优先, 否则整条 `peerId`); `channelId` 另取 `peerId` 的 `:` 前段;
|
|
23
|
+
* · 没有身份 ⇒ **不绑定** (不许有 default 兜底桶);
|
|
24
|
+
* · 状态 (messageHistory / channelId / agentId / goalId) **仍在 Pi 实例字段上**, 逐项迁入见 8 步台账;
|
|
25
|
+
* · 绑定是**幂等**的: 同一 channelId 永远拿到同一个 actor (`getOrCreateActor`)。
|
|
26
|
+
*/
|
|
27
|
+
function attachActor(session, config) {
|
|
28
|
+
// **注册键 = 会话身份** (SessionStore key 优先, 否则整条 peerId)。
|
|
29
|
+
// 不许取 `:` 前段: 同一 channel 下不同会话会落进同一个桶 ⇒ history 串台
|
|
30
|
+
// (2026-10-02 全量回归实证: 5 红)。
|
|
31
|
+
const identity = String(config.loadSessionKey || config.peerId || '');
|
|
32
|
+
// **没有身份就不归属** —— 没有 'default' 兜底桶, 宁可不共享也不许串台。
|
|
33
|
+
if (!identity)
|
|
34
|
+
return session;
|
|
35
|
+
// 只预置 agentId (它是构造入参, 本来就属于会话); **channelId 不预置** —— 等 prompt/入口设置
|
|
36
|
+
const actor = getOrCreateActor(identity, { agentId: config.agentId || '' });
|
|
37
|
+
if (typeof session.attachActor === 'function')
|
|
38
|
+
session.attachActor(actor);
|
|
39
|
+
else
|
|
40
|
+
session.actor = actor;
|
|
41
|
+
return session;
|
|
42
|
+
}
|
|
43
|
+
function withActor(config) {
|
|
44
|
+
// **K5 步骤⑧**: 先把会话身份算出来、把 actor 取好, 再构造 session ——
|
|
45
|
+
// 这样构造期的异步回灌 (`loadSessionKey`) 直接落在身份 actor 上, 不会先落进私有 actor 再换家。
|
|
46
|
+
// 没身份 ⇒ 不注入 (session 自己用私有 actor)。
|
|
47
|
+
const identity = String(config.loadSessionKey || config.peerId || '');
|
|
48
|
+
if (!identity)
|
|
49
|
+
return config;
|
|
50
|
+
return { ...config, actor: getOrCreateActor(identity, { agentId: config.agentId || '' }) };
|
|
51
|
+
}
|
|
19
52
|
let sessionInstance = null;
|
|
20
53
|
let lastIdentityDid = null;
|
|
21
54
|
const independentSessions = new Map();
|
|
@@ -29,7 +62,7 @@ export async function createAgentSession(config, forceNew) {
|
|
|
29
62
|
await existing.whenReady();
|
|
30
63
|
return existing;
|
|
31
64
|
}
|
|
32
|
-
const session = new PiAgentSession(config);
|
|
65
|
+
const session = attachActor(new PiAgentSession(withActor(config)), config);
|
|
33
66
|
independentSessions.set(key, session);
|
|
34
67
|
console.log(`[createAgentSession] 创建独立 session, key=${key}, DID=${incomingDid}`);
|
|
35
68
|
await session.whenReady();
|
|
@@ -37,7 +70,7 @@ export async function createAgentSession(config, forceNew) {
|
|
|
37
70
|
}
|
|
38
71
|
if (forceNew) {
|
|
39
72
|
const key = `force:${Date.now()}`;
|
|
40
|
-
const session = new PiAgentSession(config);
|
|
73
|
+
const session = attachActor(new PiAgentSession(withActor(config)), config);
|
|
41
74
|
independentSessions.set(key, session);
|
|
42
75
|
console.log(`[createAgentSession] 创建强制新 session, key=${key}`);
|
|
43
76
|
await session.whenReady();
|
|
@@ -61,7 +94,7 @@ export async function createAgentSession(config, forceNew) {
|
|
|
61
94
|
await sessionInstance.whenReady();
|
|
62
95
|
return sessionInstance;
|
|
63
96
|
}
|
|
64
|
-
const newSession = new PiAgentSession(config);
|
|
97
|
+
const newSession = attachActor(new PiAgentSession(withActor(config)), config);
|
|
65
98
|
sessionInstance = newSession;
|
|
66
99
|
lastIdentityDid = config.identityDoc?.did || null;
|
|
67
100
|
console.log(`[createAgentSession] 新建 session, DID=${lastIdentityDid}`);
|