@bolloon/bolloon-agent 0.6.0 → 0.6.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/dist/agents/execution-entry.js +10 -0
- package/dist/agents/goal-flywheel/wiring/seams.js +5 -1
- package/dist/agents/pi-sdk-tools.js +18 -8
- package/dist/agents/pi-sdk.js +472 -1263
- package/dist/agents/runner-resolver.js +2 -1
- package/dist/agents/tool-capability/index.js +51 -0
- package/dist/agents/workflow-pivot-loop.js +31 -10
- package/dist/agents/write-verify.js +60 -0
- package/dist/bollharness-integration/integration.js +8 -0
- package/dist/bollharness-integration/skill-adapter.js +32 -3
- package/dist/electron-build/agents/goal-flywheel/wiring/seams.js +5 -1
- package/dist/electron-build/agents/goal-flywheel/wiring/seams.js.map +1 -1
- package/dist/electron-build/agents/pi-sdk-tools.js +21 -11
- package/dist/electron-build/agents/pi-sdk-tools.js.map +1 -1
- package/dist/electron-build/agents/pi-sdk.js +473 -1262
- package/dist/electron-build/agents/pi-sdk.js.map +1 -1
- 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/agents/tool-capability/index.js +90 -0
- package/dist/electron-build/agents/tool-capability/index.js.map +1 -0
- package/dist/electron-build/agents/workflow-pivot-loop.js +31 -10
- package/dist/electron-build/agents/workflow-pivot-loop.js.map +1 -1
- package/dist/electron-build/agents/write-verify.js +99 -0
- package/dist/electron-build/agents/write-verify.js.map +1 -0
- package/dist/electron-build/bollharness-integration/integration.js +8 -0
- package/dist/electron-build/bollharness-integration/integration.js.map +1 -1
- package/dist/electron-build/bollharness-integration/skill-adapter.js +32 -3
- package/dist/electron-build/bollharness-integration/skill-adapter.js.map +1 -1
- package/dist/electron-build/kernel/channel-actor.js +25 -0
- package/dist/electron-build/kernel/channel-actor.js.map +1 -1
- package/dist/electron-build/kernel/control.js +102 -0
- package/dist/electron-build/kernel/control.js.map +1 -0
- package/dist/electron-build/kernel/model-runtime.js +508 -0
- package/dist/electron-build/kernel/model-runtime.js.map +1 -0
- package/dist/electron-build/kernel/run-lifecycle.js +146 -0
- package/dist/electron-build/kernel/run-lifecycle.js.map +1 -0
- package/dist/electron-build/kernel/transport.js +119 -0
- package/dist/electron-build/kernel/transport.js.map +1 -0
- package/dist/electron-build/llm/native-adapter.js +122 -0
- package/dist/electron-build/llm/native-adapter.js.map +1 -0
- package/dist/index.js +19 -0
- package/dist/ios/bolloon-web.json +3 -3
- package/dist/ios/client.js +13 -7
- package/dist/ios/mobile-core.js +7762 -6289
- package/dist/ios/mobile.js +64 -0
- package/dist/ios/routes-mobile-tasks.js +2 -1
- package/dist/ios/routes-tasks.js +16 -1
- package/dist/ios/routes-x402-info.js +28 -1
- package/dist/ios/server-storage.js +26 -5
- package/dist/ios/server.js +840 -862
- package/dist/ios/sw.js +1 -1
- package/dist/ios/ui/message-renderer.js +473 -29
- package/dist/ios/ui/step-timeline.js +13 -12
- package/dist/kernel/channel-actor.js +24 -0
- package/dist/kernel/gate-scan.js +318 -4
- package/dist/kernel/model-runtime.js +22 -0
- package/dist/kernel/plan-channel-actor.js +12 -5
- package/dist/kernel/plan-communication.js +163 -0
- package/dist/kernel/plan-constraint.js +2 -15
- package/dist/kernel/plan-deletion.js +1 -1
- package/dist/kernel/plan-harness.js +78 -0
- package/dist/kernel/plan.js +1 -5
- package/dist/kernel/roster.js +13 -11
- package/dist/kernel/run-lifecycle.js +138 -0
- package/dist/kernel/transport.js +111 -0
- package/dist/llm/native-adapter.js +117 -0
- package/dist/web/bolloon-web.json +3 -3
- package/dist/web/client.js +9 -5
- package/dist/web/routes-tasks.js +12 -1
- package/dist/web/server.js +802 -866
- package/dist/web/sw.js +1 -1
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"schema": "bolloon-mobile-web/1",
|
|
3
|
-
"version": "0.6.
|
|
3
|
+
"version": "0.6.1",
|
|
4
4
|
"channel": "stable",
|
|
5
5
|
"build": "stable",
|
|
6
|
-
"commit": "
|
|
7
|
-
"builtAt": "2026-10-
|
|
6
|
+
"commit": "18c1afa87b36043e6df5dc9ccef0417cdcf323da",
|
|
7
|
+
"builtAt": "2026-10-04T08:01:30.567Z",
|
|
8
8
|
"layer": "web",
|
|
9
9
|
"note": "web 资源层构建戳 (手机端 OTA 的身份第 ③ 级回退; 装机后以 OTA state.json 为准)"
|
|
10
10
|
}
|
package/dist/web/client.js
CHANGED
|
@@ -2887,6 +2887,11 @@ ${data.error || "channel not found"}`, "error");
|
|
|
2887
2887
|
}
|
|
2888
2888
|
var lastUsedJudgmentIds = [];
|
|
2889
2889
|
var currentPreviewBubble = null;
|
|
2890
|
+
function retirePreviewBubbles(container) {
|
|
2891
|
+
if (!container) return;
|
|
2892
|
+
container.querySelectorAll(".message-ai.preview").forEach((el) => el.remove());
|
|
2893
|
+
currentPreviewBubble = null;
|
|
2894
|
+
}
|
|
2890
2895
|
var selfImproveCardSeq = 0;
|
|
2891
2896
|
function getMessagesContainerForCurrent2() {
|
|
2892
2897
|
if (currentChannelId && messagesContainers.get(currentChannelId)) {
|
|
@@ -3146,9 +3151,7 @@ ${data.error || "channel not found"}`, "error");
|
|
|
3146
3151
|
addMessage2(data.content, "user", true, container);
|
|
3147
3152
|
}
|
|
3148
3153
|
} else if (data.type === "ai") {
|
|
3149
|
-
|
|
3150
|
-
allPreviews.forEach((el) => el.remove());
|
|
3151
|
-
currentPreviewBubble = null;
|
|
3154
|
+
retirePreviewBubbles(container);
|
|
3152
3155
|
if (!MR_hasStreamingText()) {
|
|
3153
3156
|
addMessage2(data.content || "", "ai", true, container, lastUsedJudgmentIds || []);
|
|
3154
3157
|
} else {
|
|
@@ -3158,8 +3161,7 @@ ${data.error || "channel not found"}`, "error");
|
|
|
3158
3161
|
sendRokidText(data.content || "", { source: "ai" });
|
|
3159
3162
|
} else if (data.type === "reply-preview") {
|
|
3160
3163
|
const previewContent = data.content || "";
|
|
3161
|
-
|
|
3162
|
-
oldPreviews.forEach((el) => el.remove());
|
|
3164
|
+
retirePreviewBubbles(container);
|
|
3163
3165
|
addMessage2(previewContent, "ai", false, container, []);
|
|
3164
3166
|
const newPreview = container.querySelector(".message-ai:not(.preview):last-of-type") || container.lastElementChild;
|
|
3165
3167
|
if (newPreview) {
|
|
@@ -3181,6 +3183,7 @@ ${data.error || "channel not found"}`, "error");
|
|
|
3181
3183
|
handleStepEvent2(data);
|
|
3182
3184
|
} else if (data.type === "done") {
|
|
3183
3185
|
finalizeTimelineAsMessage2();
|
|
3186
|
+
retirePreviewBubbles(container);
|
|
3184
3187
|
hideLoopStatusBar2();
|
|
3185
3188
|
setSendMode("idle");
|
|
3186
3189
|
} else if (data.type === "renamed") {
|
|
@@ -3194,6 +3197,7 @@ ${data.error || "channel not found"}`, "error");
|
|
|
3194
3197
|
}
|
|
3195
3198
|
} else if (data.type === "error") {
|
|
3196
3199
|
const errContent = String(data.content || "\u672A\u77E5\u9519\u8BEF");
|
|
3200
|
+
retirePreviewBubbles(container);
|
|
3197
3201
|
addMessage2(`\u26A0\uFE0F ${errContent}`, "ai", false, container);
|
|
3198
3202
|
if (typeof showSimpleToast === "function") {
|
|
3199
3203
|
showSimpleToast("\u26A0\uFE0F " + errContent.slice(0, 200));
|
package/dist/web/routes-tasks.js
CHANGED
|
@@ -313,7 +313,18 @@ async function executeTask(task, channelId, getAgentForChannel, broadcast) {
|
|
|
313
313
|
// 闭包里 TS 不保留收窄 ⇒ 先收成局部 const
|
|
314
314
|
const desc = task.description;
|
|
315
315
|
const agentForRun = agent;
|
|
316
|
-
|
|
316
|
+
// 2026-10-02 (K8): 走 Pi 的**唯一执行入口** `runExecution` (K5 步骤⑦ 已建), 不再由通道自己直呼 prompt
|
|
317
|
+
if (typeof agentForRun.runExecution !== 'function') {
|
|
318
|
+
// K8 纪律: 拿不到唯一执行入口 ⇒ **响亮失败**, 不静默回落直呼 prompt (否则收口变成纸面的)
|
|
319
|
+
throw new Error('K8: 该 session 未提供 runExecution (唯一执行入口) ⇒ 拒绝直呼 prompt');
|
|
320
|
+
}
|
|
321
|
+
// 注意: 这里**显式传 channelId** —— ExecutionRequest 要求它, 且语义上本就该绑定 task 的通道。
|
|
322
|
+
// 与旧写法 (prompt(desc), 隐式走 actor 绑定) 相比这是一处**行为差量**: 绑定从隐式变显式。
|
|
323
|
+
// 按纪律记过"待真跑核验", **2026-10-02 已核验通过** (`src/test/k8-routes-tasks-execution.test.ts`,
|
|
324
|
+
// 真 express + 真 HTTP + 真任务队列): ① agent 只给 runExecution (无 prompt) 也能跑通 ⇒ 活路径唯一;
|
|
325
|
+
// ② **两半 id 一致** (解析 agent 用的 id == 绑 run 用的 id) 是自检不变量; ③ 无门时响亮失败且 prompt 调用 0 次。
|
|
326
|
+
// 真变异: 绑成 `channelId + '-mut'` ⇒ 判红; 回落直呼 `prompt` ⇒ 判红; 还原 ⇒ 回绿无残差。
|
|
327
|
+
result = await deliverThroughActor(agentForRun, () => agentForRun.runExecution({ input: desc, channelId }));
|
|
317
328
|
}
|
|
318
329
|
break;
|
|
319
330
|
case 'read':
|