@bolloon/bolloon-agent 0.6.4 → 0.6.6
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/chain/chain-settlement.js +0 -1
- package/dist/agents/chat-segmenter.js +4 -16
- package/dist/agents/contacts/human-directory.js +155 -0
- package/dist/agents/contacts/tools.js +79 -0
- package/dist/agents/experience-review.js +0 -3
- package/dist/agents/goal-flywheel/goal-change.js +3 -4
- package/dist/agents/goal-resume.js +0 -4
- package/dist/agents/intent-classifier.js +1 -1
- package/dist/agents/iteration-budget.js +12 -0
- package/dist/agents/knowledge-organizer.js +0 -2
- package/dist/agents/lesson-to-skill.js +0 -1
- package/dist/agents/loop-review.js +2 -2
- package/dist/agents/memory-store.js +359 -0
- package/dist/agents/opportunity-inbox.js +147 -0
- package/dist/agents/opportunity-match.js +48 -7
- package/dist/agents/opportunity-web-search.js +222 -0
- package/dist/agents/p2p-chat-tools.js +1 -2
- package/dist/agents/parse-tool-call.js +9 -22
- package/dist/agents/pi-harness.js +1 -2
- package/dist/agents/pi-sdk-tools.js +180 -5
- package/dist/agents/pi-sdk.js +143 -9
- package/dist/agents/process-runner.js +28 -9
- package/dist/agents/react-loop.js +9 -17
- package/dist/agents/runner-resolver.js +4 -3
- package/dist/agents/skill-loader.js +22 -15
- package/dist/agents/skills-manager.js +1 -25
- package/dist/agents/workflow-pivot-loop.js +152 -61
- package/dist/agents/world-watcher.js +30 -1
- package/dist/bootstrap/context-collector.js +2 -4
- package/dist/bootstrap/context-hierarchy.js +13 -1
- package/dist/cli/ink-app.js +44 -17
- package/dist/cli/intent-command.js +22 -12
- package/dist/cli/loading-tui.js +8 -2
- package/dist/cli/log-gate.js +40 -8
- package/dist/cli/mention-data.js +1 -0
- package/dist/cli/reply-hygiene.js +22 -0
- package/dist/cli/trace-line.js +61 -2
- package/dist/electron-build/agents/agent-gateway.js.map +1 -1
- package/dist/electron-build/agents/chain/chain-indexer.js.map +1 -1
- package/dist/electron-build/agents/chain/chain-settlement.js +0 -1
- package/dist/electron-build/agents/chain/chain-settlement.js.map +1 -1
- package/dist/electron-build/agents/contacts/chain.js.map +1 -1
- package/dist/electron-build/agents/contacts/human-directory.js +204 -0
- package/dist/electron-build/agents/contacts/human-directory.js.map +1 -0
- package/dist/electron-build/agents/contacts/policy.js.map +1 -1
- package/dist/electron-build/agents/contacts/tools.js +112 -0
- package/dist/electron-build/agents/contacts/tools.js.map +1 -1
- package/dist/electron-build/agents/experience-review.js +0 -3
- package/dist/electron-build/agents/experience-review.js.map +1 -1
- package/dist/electron-build/agents/external-events.js.map +1 -1
- package/dist/electron-build/agents/goal-flywheel/goal-change.js +3 -4
- package/dist/electron-build/agents/goal-flywheel/goal-change.js.map +1 -1
- package/dist/electron-build/agents/goal-flywheel-wiring.js.map +1 -1
- package/dist/electron-build/agents/goal-resume.js +0 -4
- package/dist/electron-build/agents/goal-resume.js.map +1 -1
- package/dist/electron-build/agents/intent-classifier.js +1 -1
- package/dist/electron-build/agents/lesson-to-skill.js +0 -1
- package/dist/electron-build/agents/lesson-to-skill.js.map +1 -1
- package/dist/electron-build/agents/loop-review.js +2 -2
- package/dist/electron-build/agents/loop-review.js.map +1 -1
- package/dist/electron-build/agents/memory-recall.js.map +1 -1
- package/dist/electron-build/agents/memory-store.js +404 -0
- package/dist/electron-build/agents/memory-store.js.map +1 -0
- package/dist/electron-build/agents/parse-tool-call.js +9 -22
- package/dist/electron-build/agents/parse-tool-call.js.map +1 -1
- package/dist/electron-build/agents/pi-harness.js +1 -2
- package/dist/electron-build/agents/pi-harness.js.map +1 -1
- package/dist/electron-build/agents/pi-sdk-tools.js +180 -5
- package/dist/electron-build/agents/pi-sdk-tools.js.map +1 -1
- package/dist/electron-build/agents/pi-sdk.js +143 -9
- package/dist/electron-build/agents/pi-sdk.js.map +1 -1
- package/dist/electron-build/agents/pre-tool-validator.js.map +1 -1
- package/dist/electron-build/agents/process-runner.js +28 -9
- package/dist/electron-build/agents/process-runner.js.map +1 -1
- package/dist/electron-build/agents/runner-resolver.js +4 -3
- package/dist/electron-build/agents/runner-resolver.js.map +1 -1
- package/dist/electron-build/agents/skill-loader.js +22 -16
- package/dist/electron-build/agents/skill-loader.js.map +1 -1
- package/dist/electron-build/agents/skill-supervisor-link.js.map +1 -1
- package/dist/electron-build/agents/skills-manager.js +0 -24
- package/dist/electron-build/agents/skills-manager.js.map +1 -1
- package/dist/electron-build/agents/task/task-runner.js.map +1 -1
- package/dist/electron-build/agents/workflow-engine.js.map +1 -1
- package/dist/electron-build/agents/workflow-pivot-loop.js +155 -62
- package/dist/electron-build/agents/workflow-pivot-loop.js.map +1 -1
- package/dist/electron-build/agents/x402/goal-run-bridge.js.map +1 -1
- package/dist/electron-build/bollharness-integration/gate-state-machine.js.map +1 -1
- package/dist/electron-build/bootstrap/context-collector.js +2 -4
- package/dist/electron-build/bootstrap/context-collector.js.map +1 -1
- package/dist/electron-build/bootstrap/context-hierarchy.js +13 -1
- package/dist/electron-build/bootstrap/context-hierarchy.js.map +1 -1
- package/dist/electron-build/electron-preload.js.map +1 -1
- package/dist/electron-build/external-engines/delegate.js.map +1 -1
- package/dist/electron-build/kernel/channel-actor.js +31 -2
- package/dist/electron-build/kernel/channel-actor.js.map +1 -1
- package/dist/electron-build/kernel/model-runtime.js +8 -1
- package/dist/electron-build/kernel/model-runtime.js.map +1 -1
- package/dist/electron-build/llm/config-store.js +20 -0
- package/dist/electron-build/llm/config-store.js.map +1 -1
- package/dist/electron-build/llm/embedding-adapter.js +75 -0
- package/dist/electron-build/llm/embedding-adapter.js.map +1 -0
- package/dist/electron-build/llm/pi-ai.js +96 -35
- package/dist/electron-build/llm/pi-ai.js.map +1 -1
- package/dist/electron-build/network/agent-network.js.map +1 -1
- package/dist/electron-build/orbitdb/memory-sync.js +76 -0
- package/dist/electron-build/orbitdb/memory-sync.js.map +1 -0
- package/dist/electron-build/pi-ecosystem-judgment/adaptive-scan.js.map +1 -1
- package/dist/electron-build/security/tool-gate.js +2 -0
- package/dist/electron-build/security/tool-gate.js.map +1 -1
- package/dist/electron-build/setup/setup-store.js +34 -6
- package/dist/electron-build/setup/setup-store.js.map +1 -1
- package/dist/electron-build/social/heartbeat.js +18 -5
- package/dist/electron-build/social/heartbeat.js.map +1 -1
- package/dist/electron-build/utils/update-manager.js.map +1 -1
- package/dist/index.js +250 -12
- package/dist/ios/bolloon-web.json +3 -3
- package/dist/ios/client.js +150 -113
- package/dist/ios/icons/icon-1400x1400.png +0 -0
- package/dist/ios/icons/icon-1400x1400.webp +0 -0
- package/dist/ios/index.html +106 -107
- package/dist/ios/mobile-agent.js +346 -45
- package/dist/ios/mobile-core.js +7303 -4590
- package/dist/ios/mobile-harness.js +1004 -0
- package/dist/ios/mobile-orbitdb.js +194 -0
- package/dist/ios/mobile-persona.js +80 -0
- package/dist/ios/mobile-privacy.js +2 -3
- package/dist/ios/mobile.css +286 -21
- package/dist/ios/mobile.html +106 -107
- package/dist/ios/mobile.js +300 -132
- package/dist/ios/routes-world.js +58 -1
- package/dist/ios/server.js +3 -1
- package/dist/ios/style.css +49 -2
- package/dist/ios/sw.js +1 -1
- package/dist/ios/ui/message-renderer.js +4 -18
- package/dist/ios/ui/step-timeline.js +14 -1
- package/dist/kernel/channel-actor.js +30 -2
- package/dist/kernel/gate-scan.js +1 -1
- package/dist/kernel/index.js +33 -0
- package/dist/kernel/model-runtime.js +8 -1
- package/dist/kernel/plan.js +3 -3
- package/dist/kernel/roster.js +3 -3
- package/dist/llm/config-store.js +20 -0
- package/dist/llm/embedding-adapter.js +69 -0
- package/dist/llm/pi-ai.js +94 -34
- package/dist/orbitdb/memory-sync.js +70 -0
- package/dist/pi-ecosystem-judgment/adaptive-scan.js +1 -1
- package/dist/security/tool-gate.js +2 -0
- package/dist/setup/setup-store.js +34 -6
- package/dist/social/heartbeat.js +18 -5
- package/dist/web/bolloon-web.json +3 -3
- package/dist/web/client.js +150 -113
- package/dist/web/icons/icon-1400x1400.png +0 -0
- package/dist/web/icons/icon-1400x1400.webp +0 -0
- package/dist/web/index.html +52 -59
- package/dist/web/mobile-agent.js +351 -45
- package/dist/web/mobile-contacts.js +0 -4
- package/dist/web/mobile-core.js +7430 -4590
- package/dist/web/mobile-harness.js +1004 -0
- package/dist/web/mobile-orbitdb.js +194 -0
- package/dist/web/mobile-persona.js +80 -0
- package/dist/web/mobile-privacy.js +2 -3
- package/dist/web/mobile.css +286 -21
- package/dist/web/mobile.html +121 -107
- package/dist/web/mobile.js +409 -136
- package/dist/web/routes-contacts.js +94 -1
- package/dist/web/routes-world.js +58 -1
- package/dist/web/server.js +4 -2
- package/dist/web/style.css +49 -2
- package/dist/web/sw.js +1 -1
- package/dist/web/ui/message-renderer.js +4 -18
- package/dist/web/ui/step-timeline.js +14 -1
- package/package.json +3 -2
- package/scripts/build-web.ts +16 -1
package/dist/web/mobile.html
CHANGED
|
@@ -42,120 +42,120 @@
|
|
|
42
42
|
</div>
|
|
43
43
|
</header>
|
|
44
44
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
45
|
+
<!-- 主页面: 世界机会流双栏卡片 (2026-10-07: 首页 = 对应桌面世界模式, opportunity 双栏) -->
|
|
46
|
+
<main class="page-container" id="page-main" data-tab="main" hidden>
|
|
47
|
+
<!-- 世界机会流 — 双栏卡片, 自动流入 (与桌面世界模式同数据源) -->
|
|
48
|
+
<div class="world-feed" id="world-feed">
|
|
49
|
+
<div class="world-feed-header">
|
|
50
|
+
<span>✦ 世界送来</span>
|
|
51
|
+
<span class="world-feed-sub">自动匹配 · 持续校准</span>
|
|
52
|
+
</div>
|
|
53
|
+
<div class="world-feed-cards" id="world-feed-cards">
|
|
54
|
+
<div class="world-feed-loading">世界正在观察…</div>
|
|
55
|
+
</div>
|
|
52
56
|
</div>
|
|
53
|
-
|
|
54
|
-
|
|
57
|
+
<!-- 2026-10-07: 首页底部输入框 — 告诉世界你在做什么 (对应桌面世界模式输入框, Bolloon 风格) -->
|
|
58
|
+
<div class="world-input-bar" id="world-input-bar">
|
|
59
|
+
<input type="text" id="world-input" placeholder="告诉世界你在做什么 / 需要什么… (Enter 自动匹配)" autocomplete="off" />
|
|
60
|
+
<button id="world-input-send" class="world-input-send">→ 世界</button>
|
|
55
61
|
</div>
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
62
|
+
<!-- 卡片详情浮层 (垂直展开) -->
|
|
63
|
+
<div class="card-detail" id="card-detail" hidden>
|
|
64
|
+
<div class="detail-header">
|
|
65
|
+
<button class="icon-btn" id="detail-back">←</button>
|
|
66
|
+
<h2 id="detail-name"></h2>
|
|
67
|
+
</div>
|
|
68
|
+
<div class="detail-body" id="detail-body"></div>
|
|
61
69
|
</div>
|
|
62
|
-
</
|
|
63
|
-
|
|
64
|
-
<
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
<
|
|
69
|
-
<
|
|
70
|
+
</main>
|
|
71
|
+
<!-- 好友 tab: 通讯录风格 (2026-10-07: 微信通讯录式布局 — 分组入口 + 字母索引联系人) -->
|
|
72
|
+
<section class="page" id="page-friends" data-tab="friends" hidden>
|
|
73
|
+
<!-- 分组快捷入口 (微信式: 新的朋友/群聊/标签/附近/扫码) -->
|
|
74
|
+
<div class="list">
|
|
75
|
+
<div class="list-item" id="item-add-friend"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><circle cx="9" cy="8" r="3.2"/><path d="M3.5 19c.8-3 3-4.6 5.5-4.6S13.7 16 14.5 19"/><path d="M17 8v6M14 11h6"/></svg></span><span>新的朋友</span><span class="list-arrow">›</span></div>
|
|
76
|
+
<div class="list-item" id="item-p2p"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8.5"/><path d="M3.5 12h17"/><path d="M12 3.5c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5c-2.3-2.3-3.5-5.3-3.5-8.5S9.7 5.8 12 3.5z"/></svg></span><span>群聊</span><span class="list-arrow">›</span></div>
|
|
77
|
+
<div class="list-item" id="item-scan-net"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><path d="M4 8V6a2 2 0 0 1 2-2h2M16 4h2a2 2 0 0 1 2 2v2M20 16v2a2 2 0 0 1-2 2h-2M8 20H6a2 2 0 0 1-2-2v-2"/><path d="M4 12h16"/></svg></span><span>扫码入网 / 加好友</span></div>
|
|
78
|
+
<div class="list-item" id="item-nearby"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><path d="M4 12a8 8 0 0 1 16 0"/><path d="M7.5 12a4.5 4.5 0 0 1 9 0"/><circle cx="12" cy="12" r="1.4"/><path d="M12 13.6V19"/></svg></span><span>附近设备</span><span class="list-arrow">›</span></div>
|
|
79
|
+
<div class="list-item" id="item-p2p-id"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><rect x="3" y="5.5" width="18" height="13" rx="2.5"/><circle cx="8.5" cy="11" r="2"/><path d="M5.6 15.8a3.2 3.2 0 0 1 5.8 0M13.5 10h5M13.5 13.5h5"/></svg></span><span>我的 P2P ID</span></div>
|
|
70
80
|
</div>
|
|
71
|
-
<
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
</
|
|
81
|
-
<input type="file" id="qr-scan-input" accept="image/*" capture="environment" style="display:none">
|
|
82
|
-
<div class="list">
|
|
83
|
-
<div class="list-item" id="item-p2p"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8.5"/><path d="M3.5 12h17"/><path d="M12 3.5c2.3 2.3 3.5 5.3 3.5 8.5s-1.2 6.2-3.5 8.5c-2.3-2.3-3.5-5.3-3.5-8.5S9.7 5.8 12 3.5z"/></svg></span><span>P2P 好友</span></div>
|
|
84
|
-
<div class="list-item" id="item-p2p-id"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><rect x="3" y="5.5" width="18" height="13" rx="2.5"/><circle cx="8.5" cy="11" r="2"/><path d="M5.6 15.8a3.2 3.2 0 0 1 5.8 0M13.5 10h5M13.5 13.5h5"/></svg></span><span>我的 P2P ID</span></div>
|
|
85
|
-
</div>
|
|
86
|
-
<div class="section-label">P2P 连接</div>
|
|
87
|
-
<div class="list" id="p2p-status"></div>
|
|
88
|
-
<div class="section-label">好友列表</div>
|
|
89
|
-
<div class="list" id="contacts-list"></div>
|
|
90
|
-
</section>
|
|
81
|
+
<input type="file" id="qr-scan-input" accept="image/*" capture="environment" style="display:none">
|
|
82
|
+
<div class="section-label">P2P 连接</div>
|
|
83
|
+
<div class="list" id="p2p-status"></div>
|
|
84
|
+
<div class="section-label">好友列表</div>
|
|
85
|
+
<!-- 通讯录式联系人列表: 按字母分组 + 右侧索引 (由 loadContacts 渲染) -->
|
|
86
|
+
<div class="contacts-wrap" id="contacts-wrap">
|
|
87
|
+
<div class="list" id="contacts-list"></div>
|
|
88
|
+
<div class="contacts-index" id="contacts-index"></div>
|
|
89
|
+
</div>
|
|
90
|
+
</section>
|
|
91
91
|
|
|
92
92
|
</main>
|
|
93
93
|
|
|
94
|
-
<!--
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
<div class="
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
<div class="section-label">Agent 服务 (协议自动发现)</div>
|
|
103
|
-
<div class="list" id="agent-services"></div>
|
|
104
|
-
<div class="list">
|
|
105
|
-
<div class="list-item" id="item-trade"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><path d="M4 7h16M4 12h10M4 17h7"/><path d="M17.5 14.5l2.5 2.5-2.5 2.5"/></svg></span><span style="flex:1">资源交易</span><span class="list-arrow">›</span></div>
|
|
106
|
-
</div>
|
|
107
|
-
<div class="section-label">微信息 (微支付)</div>
|
|
108
|
-
<div class="list" id="x402-info-list"></div>
|
|
109
|
-
<div class="section-label">智能体控制 (MCP / Skills)</div>
|
|
110
|
-
<div class="list" id="agent-control"></div>
|
|
111
|
-
<div class="section-label">待人工审批支付</div>
|
|
112
|
-
<div class="list" id="approval-list"></div>
|
|
113
|
-
<div class="section-label">A2UI 动态面板 (智能体生成)</div>
|
|
114
|
-
<div id="a2ui-root"></div>
|
|
115
|
-
</section>
|
|
116
|
-
|
|
117
|
-
<!-- 任务 tab (2026-09-25): 与桌面/CLI 同一套任务闭环 —— 入群 · 发公告 · 看飞轮进度
|
|
118
|
-
分工不变: 手机 = 输入 · 展示待发内容 · 设备签名确认; 桌面 = 落盘 · 执行 · 等待回复 · 证据。
|
|
119
|
-
高风险动作 (入群/建群/发公告/发进群/留痕) 一律走确认页 → 设备签名 → 桌面验签。 -->
|
|
120
|
-
<section class="page" id="page-tasks" data-tab="tasks" hidden>
|
|
121
|
-
<div class="section-label" data-zh="本机授权与签名" data-en="This device: approval & signing">本机授权与签名</div>
|
|
122
|
-
<div class="list">
|
|
123
|
-
<div class="list-item" id="tasks-signing-item"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><rect x="4.5" y="10.5" width="15" height="9.5" rx="2.5"/><path d="M8 10.5V7.5a4 4 0 0 1 8 0v3"/><path d="M12 14v3"/></svg></span><span id="tasks-signing" style="flex:1">检查中…</span></div>
|
|
124
|
-
</div>
|
|
125
|
-
<div class="sheet-text" id="tasks-hint" style="font-size:12px;color:var(--text-secondary);padding:0 14px 6px"></div>
|
|
126
|
-
<div class="list" style="padding:0 14px 4px">
|
|
127
|
-
<button class="sheet-choice" id="tasks-refresh" data-zh="刷新任务数据" data-en="Refresh task data" style="width:100%">刷新任务数据</button>
|
|
128
|
-
</div>
|
|
129
|
-
|
|
130
|
-
<div class="section-label" data-zh="群 (与 CLI task group 同一份记录)" data-en="Groups (same records as CLI task group)">群 (与 CLI task group 同一份记录)</div>
|
|
131
|
-
<div class="list" id="tasks-groups"><div class="sheet-text" style="padding:0 14px">加载中…</div></div>
|
|
132
|
-
<div style="padding:0 14px 8px">
|
|
133
|
-
<input id="tasks-group-link" placeholder="群邀请链接 (orbitdb://…?type=group&name=…)" style="width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:14px" />
|
|
134
|
-
<button class="sheet-choice" id="tasks-group-join" data-zh="入群(需手机确认 + 签名)" data-en="Join group (needs on-device confirm + signature)" style="width:100%;margin-top:8px">入群(需手机确认 + 签名)</button>
|
|
135
|
-
<input id="tasks-group-name" placeholder="新群名称" style="width:100%;margin-top:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:14px" />
|
|
136
|
-
<button class="sheet-choice" id="tasks-group-create" data-zh="建群(需手机确认 + 签名)" data-en="Create group (needs on-device confirm + signature)" style="width:100%;margin-top:8px">建群(需手机确认 + 签名)</button>
|
|
137
|
-
</div>
|
|
94
|
+
<!-- 任务 tab (2026-10-07: 对话框模式 — 仪表盘 + 消息流 + 底部派活输入框; 网络收成工具) -->
|
|
95
|
+
<section class="page task-chat-page" id="page-tasks" data-tab="tasks" hidden>
|
|
96
|
+
<!-- 仪表盘栏: 工具入口 + 状态 -->
|
|
97
|
+
<div class="task-dash">
|
|
98
|
+
<button class="task-dash-btn" id="task-dash-network" title="网络工具"><span class="task-dash-ico">🌐</span><span>网络</span></button>
|
|
99
|
+
<button class="task-dash-btn" id="task-dash-sign" title="本机签名状态"><span class="task-dash-ico">🔏</span><span id="tasks-signing">签名…</span></button>
|
|
100
|
+
<button class="task-dash-btn" id="tasks-refresh" title="刷新任务数据"><span class="task-dash-ico">⟳</span><span>刷新</span></button>
|
|
101
|
+
</div>
|
|
138
102
|
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
<input id="tasks-pub-instruction" placeholder="任务正文 (一句能执行的委托)" style="width:100%;margin-top:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:14px" />
|
|
144
|
-
<input id="tasks-pub-budget" placeholder="预算 (例如 0.05)" inputmode="decimal" style="width:100%;margin-top:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:14px" />
|
|
145
|
-
<input id="tasks-pub-deadline" placeholder="截止 (+24h / +2h / +1d, 留空=桌面默认 24h)" style="width:100%;margin-top:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:14px" />
|
|
146
|
-
<button class="sheet-choice" id="tasks-pub-submit" data-zh="发布公告(需手机确认 + 签名)" data-en="Publish announcement (needs on-device confirm + signature)" style="width:100%;margin-top:8px">发布公告(需手机确认 + 签名)</button>
|
|
147
|
-
</div>
|
|
103
|
+
<!-- 对话框消息流 -->
|
|
104
|
+
<div class="task-chat" id="task-chat">
|
|
105
|
+
<div class="task-chat-empty" id="task-chat-empty">给 Bolloon 派个活… 例:查一下我的身份 / 汇总钱包状态</div>
|
|
106
|
+
</div>
|
|
148
107
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
</div>
|
|
108
|
+
<!-- 底部派活输入框 -->
|
|
109
|
+
<div class="task-input-bar">
|
|
110
|
+
<input type="text" id="task-input" placeholder="给 Bolloon 派个活… (Enter 发送)" autocomplete="off" />
|
|
111
|
+
<button id="task-input-send">→ 派活</button>
|
|
112
|
+
</div>
|
|
155
113
|
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
114
|
+
<!-- 网络工具面板 (覆盖层, 默认隐藏; 点仪表盘「网络」打开) -->
|
|
115
|
+
<div class="task-network-panel" id="task-network-panel" hidden>
|
|
116
|
+
<div class="task-network-head">
|
|
117
|
+
<button id="task-network-back">←</button>
|
|
118
|
+
<span style="flex:1;font-weight:600">网络工具</span>
|
|
119
|
+
</div>
|
|
120
|
+
<div class="task-network-body">
|
|
121
|
+
<div class="list">
|
|
122
|
+
<div class="list-item" id="item-join-global"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><circle cx="12" cy="12" r="8.5"/><path d="M3.5 12h17"/><path d="M12 3.5c2.7 2.6 2.7 14.4 0 17M12 3.5c-2.7 2.6-2.7 14.4 0 17"/><circle cx="12" cy="12" r="1.2" fill="currentColor" stroke="none"/></svg></span><span>一键入网 · 全球智能体网络</span><span class="list-arrow">›</span></div>
|
|
123
|
+
<div class="list-item" id="item-join-net"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><path d="M3.5 9.5a13 13 0 0 1 17 0M6.5 13a8.5 8.5 0 0 1 11 0M9.6 16.3a4 4 0 0 1 4.8 0"/><circle cx="12" cy="19.5" r="1.1" fill="currentColor" stroke="none"/></svg></span><span>加入网络</span><span class="list-arrow">›</span></div>
|
|
124
|
+
</div>
|
|
125
|
+
<div class="section-label">Agent 网络</div>
|
|
126
|
+
<div class="list" id="net-members"></div>
|
|
127
|
+
<div class="section-label">Agent 服务 (协议自动发现)</div>
|
|
128
|
+
<div class="list" id="agent-services"></div>
|
|
129
|
+
<div class="list"><div class="list-item" id="item-trade"><span class="list-icon"><svg class="ico" viewBox="0 0 24 24"><path d="M4 7h16M4 12h10M4 17h7"/><path d="M17.5 14.5l2.5 2.5-2.5 2.5"/></svg></span><span style="flex:1">资源交易</span><span class="list-arrow">›</span></div></div>
|
|
130
|
+
<div class="section-label">微信息 (微支付)</div>
|
|
131
|
+
<div class="list" id="x402-info-list"></div>
|
|
132
|
+
<div class="section-label">智能体控制 (MCP / Skills)</div>
|
|
133
|
+
<div class="list" id="agent-control"></div>
|
|
134
|
+
<div class="section-label">待人工审批支付</div>
|
|
135
|
+
<div class="list" id="approval-list"></div>
|
|
136
|
+
<div class="section-label">A2UI 动态面板 (智能体生成)</div>
|
|
137
|
+
<div id="a2ui-root"></div>
|
|
138
|
+
<div class="section-label">本机授权与签名</div>
|
|
139
|
+
<div class="sheet-text" id="tasks-hint" style="font-size:12px;color:var(--text-secondary);padding:0 14px 6px"></div>
|
|
140
|
+
<div class="section-label">群 (与 CLI task group 同一份记录)</div>
|
|
141
|
+
<div class="list" id="tasks-groups"><div class="sheet-text" style="padding:0 14px">加载中…</div></div>
|
|
142
|
+
<div style="padding:0 14px 8px">
|
|
143
|
+
<input id="tasks-group-link" placeholder="群邀请链接 (orbitdb://…?type=group&name=…)" style="width:100%;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:14px" />
|
|
144
|
+
<button class="sheet-choice" id="tasks-group-join" style="width:100%;margin-top:8px">入群(需手机确认 + 签名)</button>
|
|
145
|
+
<input id="tasks-group-name" placeholder="新群名称" style="width:100%;margin-top:8px;padding:10px 12px;border-radius:10px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:14px" />
|
|
146
|
+
<button class="sheet-choice" id="tasks-group-create" style="width:100%;margin-top:8px">建群(需手机确认 + 签名)</button>
|
|
147
|
+
</div>
|
|
148
|
+
<div class="section-label">公告板 (与 CLI task board 同一份事实)</div>
|
|
149
|
+
<div class="board-grid" id="tasks-board"><div class="sheet-text" style="padding:0 14px">加载中…</div></div>
|
|
150
|
+
<div class="section-label">飞轮进度 (只读, 与桌面同一状态)</div>
|
|
151
|
+
<div class="list" id="tasks-flywheel"><div class="sheet-text" style="padding:0 14px">加载中…</div></div>
|
|
152
|
+
<div class="section-label">群过程痕迹 (只读, 脱敏)</div>
|
|
153
|
+
<div class="list" id="tasks-trail-group-picker"></div>
|
|
154
|
+
<div class="list" id="tasks-trail"><div class="sheet-text" style="padding:0 14px">选一个群看这一期的痕迹</div></div>
|
|
155
|
+
<div style="padding:0 14px 8px"><button class="sheet-choice" id="tasks-trail-refresh" style="width:100%">读群痕迹</button></div>
|
|
156
|
+
</div>
|
|
157
|
+
</div>
|
|
158
|
+
</section>
|
|
159
159
|
|
|
160
160
|
<!-- 我 tab -->
|
|
161
161
|
<section class="page" id="page-me" data-tab="me" hidden>
|
|
@@ -185,13 +185,12 @@
|
|
|
185
185
|
<nav class="tabbar" id="tabbar">
|
|
186
186
|
<button class="tab active" data-tab="main"><span class="tab-icon"><svg class="ico" viewBox="0 0 24 24"><rect x="3.5" y="3.5" width="7" height="7" rx="1.6"/><rect x="13.5" y="3.5" width="7" height="7" rx="1.6"/><rect x="3.5" y="13.5" width="7" height="7" rx="1.6"/><rect x="13.5" y="13.5" width="7" height="7" rx="1.6"/></svg></span><span>首页</span></button>
|
|
187
187
|
<button class="tab" data-tab="friends"><span class="tab-icon"><svg class="ico" viewBox="0 0 24 24"><circle cx="9" cy="8" r="3.2"/><path d="M3.5 19c.8-3 3-4.6 5.5-4.6S13.7 16 14.5 19"/><path d="M17 8v6M14 11h6"/></svg></span><span>好友</span></button>
|
|
188
|
-
|
|
188
|
+
<!-- 2026-10-06: 网络+任务合一, 任务 tab 内页内子切换 -->
|
|
189
189
|
<button class="tab" data-tab="tasks"><span class="tab-icon"><svg class="ico" viewBox="0 0 24 24"><path d="M4 7.5h10M4 12h7M4 16.5h12"/><path d="M18 5.5l1.6 1.6L22 4.5"/><path d="M18 14.5l1.6 1.6L22 13.5"/></svg></span><span>任务</span></button>
|
|
190
190
|
<button class="tab" data-tab="me"><span class="tab-icon"><svg class="ico" viewBox="0 0 24 24"><circle cx="12" cy="8.5" r="4"/><path d="M4.5 20.5a7.5 7.5 0 0 1 15 0"/></svg></span><span>我</span></button>
|
|
191
191
|
</nav>
|
|
192
192
|
|
|
193
|
-
<!-- 首页:
|
|
194
|
-
<button class="create-session-btn" id="btn-create-session" hidden>+ 创建新会话</button>
|
|
193
|
+
<!-- 首页: 创建新会话栏已移除 (2026-10-07: 首页改为世界机会流 + 底部输入框, 不再悬浮遮挡) -->
|
|
195
194
|
|
|
196
195
|
<!-- 创建智能体: 底部滑入加载 sheet -->
|
|
197
196
|
<!-- 2026-09-16: 首启隐私同意门 — 上架要求: 用户同意前不读取本机数据 / 不连网 / 不申请任何权限 -->
|
|
@@ -225,6 +224,7 @@
|
|
|
225
224
|
<div class="sheet" id="addfriend-sheet" hidden>
|
|
226
225
|
<div class="sheet-inner sheet-inner-choices">
|
|
227
226
|
<div class="sheet-title">连接好友</div>
|
|
227
|
+
<button class="sheet-choice" id="choice-phone"><svg class="ico" viewBox="0 0 24 24"><path d="M5 4h4l1.5 4.5L8 10a12 12 0 0 0 6 6l1.5-2.5L20 15v4a1.5 1.5 0 0 1-1.6 1.5A17 17 0 0 1 3.5 5.6 1.5 1.5 0 0 1 5 4z"/></svg> 手机号搜索添加</button>
|
|
228
228
|
<button class="sheet-choice" id="choice-nearby"><svg class="ico" viewBox="0 0 24 24"><path d="M4 12a8 8 0 0 1 16 0"/><path d="M7.5 12a4.5 4.5 0 0 1 9 0"/><circle cx="12" cy="12" r="1.4"/><path d="M12 13.6V19"/></svg> 附近的设备</button>
|
|
229
229
|
<button class="sheet-choice" id="choice-scan"><svg class="ico" viewBox="0 0 24 24"><path d="M4 8V6a2 2 0 0 1 2-2h2M16 4h2a2 2 0 0 1 2 2v2M20 16v2a2 2 0 0 1-2 2h-2M8 20H6a2 2 0 0 1-2-2v-2"/><path d="M4 12h16"/></svg> 扫码添加</button>
|
|
230
230
|
<button class="sheet-choice" id="choice-requests"><svg class="ico" viewBox="0 0 24 24"><path d="M6 4h9l4 4v12a1 1 0 0 1-1 1H6a1 1 0 0 1-1-1V5a1 1 0 0 1 1-1z"/><path d="M9 12h6M9 16h4"/></svg> 待处理申请</button>
|
|
@@ -233,6 +233,20 @@
|
|
|
233
233
|
</div>
|
|
234
234
|
</div>
|
|
235
235
|
|
|
236
|
+
<!-- 手机号搜索添加好友: 输入手机号 → 目录查账号 → 发好友申请 (2026-10-15) -->
|
|
237
|
+
<div class="sheet" id="phone-search-sheet" hidden>
|
|
238
|
+
<div class="sheet-inner">
|
|
239
|
+
<div class="sheet-title">手机号搜索添加</div>
|
|
240
|
+
<input id="phone-search-input" type="tel" inputmode="numeric" placeholder="输入对方手机号 (如 13812345678)" style="width:100%;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:var(--bg-card);color:var(--text);font-size:15px;box-sizing:border-box">
|
|
241
|
+
<div id="phone-search-note" style="font-size:12px;color:var(--text-secondary);margin:8px 2px;line-height:1.6">通过手机号目录查对方账号: 对方需已在电脑端发布目录 (手机号 → DID 指针)。查不到 = 对方未公开, 与不存在同义。</div>
|
|
242
|
+
<div id="phone-search-result" style="display:none;margin-top:8px"></div>
|
|
243
|
+
<div style="display:flex;gap:8px;margin-top:12px">
|
|
244
|
+
<button class="sheet-choice" id="phone-search-do" style="flex:1">搜索</button>
|
|
245
|
+
<button class="sheet-choice sheet-cancel" id="phone-search-close" style="flex:1">关闭</button>
|
|
246
|
+
</div>
|
|
247
|
+
</div>
|
|
248
|
+
</div>
|
|
249
|
+
|
|
236
250
|
<!-- 加入网络: 点按式 sheet (扫一扫 / 附近设备 / 手动粘贴兜底) -->
|
|
237
251
|
<div class="sheet" id="network-sheet" hidden>
|
|
238
252
|
<div class="sheet-inner sheet-inner-choices">
|