codebee 0.1.105 → 0.1.106
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/CHANGELOG.md +9 -0
- package/README.md +10 -7
- package/app/core/activity.py +36 -0
- package/app/core/builtin_agent.py +6 -1
- package/app/core/jobs.py +7 -0
- package/app/core/market_remote.py +19 -7
- package/app/core/mcp_client.py +102 -63
- package/app/core/pipeline.py +14 -6
- package/app/core/publish/auto.py +74 -3
- package/app/core/publish/ledger.py +5 -0
- package/app/core/publish/manager.py +5 -1
- package/app/core/runtime_lock.py +75 -0
- package/app/core/selfupdate.py +8 -0
- package/app/core/store.py +32 -2
- package/app/core/usage.py +31 -26
- package/app/core/webhooks.py +17 -13
- package/app/desktop_host.py +190 -0
- package/app/main.py +88 -4
- package/app/pet.py +1 -1
- package/app/ui/activity.css +34 -0
- package/app/ui/activity.js +199 -0
- package/app/ui/app.js +792 -64
- package/app/ui/hive3d.js +180 -61
- package/app/ui/i18n.js +130 -1
- package/app/ui/index.html +154 -75
- package/app/ui/style.css +583 -26
- package/package.json +1 -1
package/app/ui/index.html
CHANGED
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
<meta name="apple-mobile-web-app-status-bar-style" content="black-translucent">
|
|
14
14
|
<meta name="apple-mobile-web-app-title" content="CodeBee">
|
|
15
15
|
<link rel="stylesheet" href="style.css">
|
|
16
|
+
<link rel="stylesheet" href="activity.css">
|
|
16
17
|
<!-- 首屏预涂:在样式表之后、绘制之前定好皮肤与明暗 + 语言,避免刷新时闪一下默认配色。
|
|
17
18
|
皮肤值不在这里校验——非法值匹配不到任何 html[data-skin=...] 规则,首涂落经典底色,
|
|
18
19
|
app.js 加载后会按 currentSkin() 校正为默认皮肤。 -->
|
|
@@ -112,6 +113,9 @@
|
|
|
112
113
|
<button type="button" class="rail-btn active" data-rail-page="tasks" title="任务" aria-label="任务" data-i18n-title="任务" data-i18n-aria="任务" onclick="exitSettings()">
|
|
113
114
|
<svg class="ico" aria-hidden="true"><use href="#i-gauge"></use></svg>
|
|
114
115
|
</button>
|
|
116
|
+
<button type="button" class="rail-btn" id="btn-rail-overview" data-rail-page="overview" title="概览" aria-label="概览" data-i18n-title="概览" data-i18n-aria="概览" onclick="switchTab('overview', 'main')">
|
|
117
|
+
<svg class="ico" aria-hidden="true"><use href="#i-chart"></use></svg>
|
|
118
|
+
</button>
|
|
115
119
|
<button type="button" class="rail-btn" data-rail-page="runs" title="运行记录" aria-label="运行记录" data-i18n-title="运行记录" data-i18n-aria="运行记录" onclick="switchTab('runs')">
|
|
116
120
|
<svg class="ico" aria-hidden="true"><use href="#i-history"></use></svg>
|
|
117
121
|
</button>
|
|
@@ -136,9 +140,10 @@
|
|
|
136
140
|
<span class="brand-name">CodeBee</span>
|
|
137
141
|
<svg class="ico brand-caret" aria-hidden="true"><use href="#i-chevron-r"></use></svg>
|
|
138
142
|
</button>
|
|
139
|
-
<button id="btn-notify-toggle" class="brand-tool" title="
|
|
140
|
-
|
|
143
|
+
<button id="btn-notify-toggle" class="brand-tool" title="打开活动视图" aria-label="打开活动视图" data-i18n-title="打开活动视图" data-i18n-aria="打开活动视图"
|
|
144
|
+
aria-controls="side-activity" aria-pressed="false" aria-keyshortcuts="Control+Alt+U">
|
|
141
145
|
<svg class="ico" aria-hidden="true"><use href="#i-bell"></use></svg>
|
|
146
|
+
<span id="activity-badge" class="activity-badge hidden"></span>
|
|
142
147
|
</button>
|
|
143
148
|
<button class="brand-tool side-search" id="btn-cmdk" title="搜索" aria-label="搜索" data-i18n-title="搜索" data-i18n-aria="搜索">
|
|
144
149
|
<svg class="ico" aria-hidden="true"><use href="#i-search"></use></svg>
|
|
@@ -178,7 +183,7 @@
|
|
|
178
183
|
<span data-i18n="浏览器">浏览器</span>
|
|
179
184
|
</button>
|
|
180
185
|
</div>
|
|
181
|
-
<div class="side-section tasks">
|
|
186
|
+
<div id="side-projects" class="side-section tasks">
|
|
182
187
|
<div class="side-label-row">
|
|
183
188
|
<div data-i18n="项目" class="side-label">项目</div>
|
|
184
189
|
<button id="btn-side-expand" class="foot-btn notify-toggle" title="展开全部" aria-label="展开全部"
|
|
@@ -192,6 +197,17 @@
|
|
|
192
197
|
</div>
|
|
193
198
|
<div id="side-tasks" class="side-tasks"></div>
|
|
194
199
|
</div>
|
|
200
|
+
<section id="side-activity" class="side-activity hidden" aria-label="活动视图" data-i18n-aria="活动视图">
|
|
201
|
+
<div class="activity-toolbar">
|
|
202
|
+
<h2 data-i18n="活动">活动</h2>
|
|
203
|
+
<button id="activity-read-all" type="button" class="activity-tool" title="将完成任务标为已读" data-i18n-title="将完成任务标为已读" data-i18n="全部已读">全部已读</button>
|
|
204
|
+
<button id="activity-sound" type="button" class="brand-tool" aria-label="完成/待裁决提示音" data-i18n-aria="完成/待裁决提示音">
|
|
205
|
+
<svg class="ico" aria-hidden="true"><use href="#i-bell"></use></svg>
|
|
206
|
+
</button>
|
|
207
|
+
</div>
|
|
208
|
+
<p id="activity-count" class="activity-count" role="status" aria-live="polite"></p>
|
|
209
|
+
<div id="activity-list" class="activity-list"></div>
|
|
210
|
+
</section>
|
|
195
211
|
<!-- 底部用量条:陈列真实台账数字(本月调用/花费 + 近 14 天走势)。
|
|
196
212
|
刻意不做「用量 68%」那种百分比进度条——CodeBee 没有套餐配额,
|
|
197
213
|
硬编一个分母就是假数;这里给的都是能直接核对的真值。 -->
|
|
@@ -242,31 +258,37 @@
|
|
|
242
258
|
<button id="btn-set-back" class="set-back" data-i18n="返回 CodeBee">
|
|
243
259
|
<svg class="ico" aria-hidden="true"><use href="#i-arrow-left"></use></svg>返回 CodeBee
|
|
244
260
|
</button>
|
|
261
|
+
<label class="settings-search-wrap">
|
|
262
|
+
<svg class="ico" aria-hidden="true"><use href="#i-search"></use></svg>
|
|
263
|
+
<input id="settings-search" type="search" autocomplete="off" data-i18n-ph="搜索设置和功能…" placeholder="搜索设置和功能…" aria-label="搜索设置和功能" data-i18n-aria="搜索设置和功能">
|
|
264
|
+
<kbd>Esc</kbd>
|
|
265
|
+
</label>
|
|
266
|
+
<div id="settings-search-empty" class="settings-search-empty hidden" data-i18n="没有匹配的设置">没有匹配的设置</div>
|
|
245
267
|
<!-- 概览 / 运行记录 / 自动化已升为左栏快捷导航(见 .side-quick),此处不再重复挂条目 -->
|
|
246
|
-
<div data-i18n="
|
|
247
|
-
<button class="set-item active" data-sub="tasks" data-
|
|
248
|
-
<
|
|
249
|
-
<button class="set-item" data-sub="
|
|
250
|
-
<button class="set-item" data-sub="zentao" data-
|
|
251
|
-
<button class="set-item" data-sub="
|
|
252
|
-
<div data-i18n="
|
|
253
|
-
<button class="set-item" data-sub="agents" data-
|
|
254
|
-
<button class="set-item" data-sub="models" data-
|
|
255
|
-
<button class="set-item" data-sub="bindings" data-
|
|
256
|
-
<button class="set-item" data-sub="
|
|
257
|
-
<button class="set-item" data-sub="
|
|
258
|
-
<
|
|
259
|
-
<button class="set-item" data-sub="
|
|
260
|
-
<button class="set-item" data-sub="
|
|
261
|
-
<
|
|
262
|
-
<
|
|
263
|
-
<
|
|
264
|
-
<button class="set-item" data-sub="
|
|
265
|
-
<div data-i18n="
|
|
266
|
-
<button
|
|
267
|
-
<button id="btn-
|
|
268
|
-
<
|
|
269
|
-
<button id="btn-phone" class="set-item" data-sub="__phone" data-
|
|
268
|
+
<div data-i18n="工作流" class="set-group">工作流</div>
|
|
269
|
+
<button class="set-item active" data-sub="tasks" data-search="任务 新建 提示词 运行 编排 工作流 task prompt run workflow"><svg class="ico" aria-hidden="true"><use href="#i-tasks"></use></svg><span data-i18n="任务">任务</span></button>
|
|
270
|
+
<div data-i18n="集成" class="set-group">集成</div>
|
|
271
|
+
<button class="set-item" data-sub="hooks" data-search="钩子 hooks 生命周期 脚本 自动化 hook lifecycle script automation"><svg class="ico" aria-hidden="true"><use href="#i-link"></use></svg><span data-i18n="钩子">钩子</span></button>
|
|
272
|
+
<button class="set-item" data-sub="zentao" data-search="禅道 zentao bug 缺陷 修复 issue bug fix"><svg class="ico" aria-hidden="true"><use href="#i-search"></use></svg><span data-i18n="禅道">禅道</span></button>
|
|
273
|
+
<button class="set-item" data-sub="__wxdigest" data-search="微信群聊汇报 微信 群聊 摘要 消息 wechat group chat summary"><svg class="ico" aria-hidden="true"><use href="#i-bee"></use></svg><span data-i18n="微信群聊汇报">微信群聊汇报</span></button>
|
|
274
|
+
<div data-i18n="智能体与模型" class="set-group">智能体与模型</div>
|
|
275
|
+
<button class="set-item" data-sub="agents" data-search="本机智能体 cli agent 安装 命令行 local agents install"><svg class="ico" aria-hidden="true"><use href="#i-cpu"></use></svg><span data-i18n="本机智能体">本机智能体</span></button>
|
|
276
|
+
<button class="set-item" data-sub="models" data-search="模型接入 供应商 API 密钥 provider models api keys"><svg class="ico" aria-hidden="true"><use href="#i-layers"></use></svg><span data-i18n="模型接入">模型接入</span></button>
|
|
277
|
+
<button class="set-item" data-sub="bindings" data-search="模型调度 路由 绑定 降级 fallback routing binding"><svg class="ico" aria-hidden="true"><use href="#i-link"></use></svg><span data-i18n="模型调度(可选)">模型调度(可选)</span></button>
|
|
278
|
+
<button class="set-item" data-sub="orch" data-search="编排设置 编排者 并发 工作目录 MCP ACP 命令授权 推送通知 orchestrator concurrency workspace command authorization notifications"><svg class="ico" aria-hidden="true"><use href="#i-workflow"></use></svg><span data-i18n="编排设置">编排设置</span></button>
|
|
279
|
+
<button class="set-item" data-sub="evalbench" data-search="模型评测 基准 测试 榜单 model evaluation benchmark test leaderboard"><svg class="ico" aria-hidden="true"><use href="#i-gauge"></use></svg><span data-i18n="模型评测">模型评测</span></button>
|
|
280
|
+
<div data-i18n="知识与扩展" class="set-group">知识与扩展</div>
|
|
281
|
+
<button class="set-item" data-sub="skills" data-search="经验库 技能 skill 规范 教训 skills guidelines lessons"><svg class="ico" aria-hidden="true"><use href="#i-book"></use></svg><span data-i18n="经验库">经验库</span></button>
|
|
282
|
+
<button class="set-item" data-sub="knowledge" data-search="知识库 记忆 搜索 知识 knowledge memory search"><svg class="ico" aria-hidden="true"><use href="#i-sigma"></use></svg><span data-i18n="知识库">知识库</span></button>
|
|
283
|
+
<button class="set-item" data-sub="market" data-search="插件市场 插件 MCP 扩展 安装 plugin extension install"><svg class="ico" aria-hidden="true"><use href="#i-blocks"></use></svg><span data-i18n="插件市场">插件市场</span></button>
|
|
284
|
+
<div data-i18n="用量与数据" class="set-group">用量与数据</div>
|
|
285
|
+
<button class="set-item" data-sub="usage" data-search="用量统计 token 成本 台账 调用 usage costs ledger"><svg class="ico" aria-hidden="true"><use href="#i-chart"></use></svg><span data-i18n="用量统计">用量统计</span></button>
|
|
286
|
+
<button class="set-item" data-sub="data" data-search="数据与备份 导入 导出 恢复 清理 data backup import export restore"><svg class="ico" aria-hidden="true"><use href="#i-library"></use></svg><span data-i18n="数据与备份">数据与备份</span></button>
|
|
287
|
+
<div data-i18n="外观与软件" class="set-group">外观与软件</div>
|
|
288
|
+
<button class="set-item" data-sub="appearance" data-search="皮肤 外观 主题 语言 明暗 字体 桌面蜜蜂 appearance theme language dark light font"><svg class="ico" aria-hidden="true"><use href="#i-palette"></use></svg><span data-i18n="皮肤">皮肤</span></button>
|
|
289
|
+
<button id="btn-guide" class="set-item" data-sub="__guide" data-search="帮助中心 指南 文档 教程 help guide docs"><svg class="ico" aria-hidden="true"><use href="#i-rocket"></use></svg><span data-i18n="帮助中心">帮助中心</span></button>
|
|
290
|
+
<button id="btn-about" class="set-item" data-sub="about" data-search="关于与更新 版本 更新 诊断 报告 about version update diagnostics"><svg class="ico" aria-hidden="true"><use href="#i-gauge"></use></svg><span data-i18n="关于与更新">关于与更新</span></button>
|
|
291
|
+
<button id="btn-phone" class="set-item" data-sub="__phone" data-search="手机连接 远程 手机 phone remote"><svg class="ico" aria-hidden="true"><use href="#i-phone"></use></svg><span data-i18n="手机连接">手机连接</span></button>
|
|
270
292
|
</div>
|
|
271
293
|
<!-- 右缘拖拽手柄:常规视图与设置视图共用,调的是整个左栏宽度 -->
|
|
272
294
|
<div id="side-resizer" title="拖动调宽 · 双击复原" data-i18n-title="拖动调宽 · 双击复原"></div>
|
|
@@ -340,6 +362,28 @@
|
|
|
340
362
|
</div>
|
|
341
363
|
</div>
|
|
342
364
|
<div id="ov-kpis" class="ov-kpis"></div>
|
|
365
|
+
<section id="ov-goal" class="panel ov-goal-card" aria-labelledby="ov-goal-heading">
|
|
366
|
+
<div class="panel-head">
|
|
367
|
+
<div><h2 id="ov-goal-heading" data-i18n="长目标">长目标</h2>
|
|
368
|
+
<p class="ov-goal-caption" data-i18n="把需要多轮推进的工作固定下来,随时暂停或恢复。">把需要多轮推进的工作固定下来,随时暂停或恢复。</p></div>
|
|
369
|
+
<span id="ov-goal-phase" class="chip hidden"></span>
|
|
370
|
+
</div>
|
|
371
|
+
<div id="ov-goal-empty" class="ov-goal-empty">
|
|
372
|
+
<div class="ov-goal-field"><label for="ov-goal-title" data-i18n="目标标题">目标标题</label>
|
|
373
|
+
<input id="ov-goal-title" type="text" maxlength="160" placeholder="例如:逐步完善 CodeBee 桌面体验" data-i18n-ph="例如:逐步完善 CodeBee 桌面体验"></div>
|
|
374
|
+
<div class="ov-goal-field"><label for="ov-goal-description" data-i18n="目标说明">目标说明</label>
|
|
375
|
+
<textarea id="ov-goal-description" rows="2" maxlength="4000" placeholder="写下完成标准或背景(可选)" data-i18n-ph="写下完成标准或背景(可选)"></textarea></div>
|
|
376
|
+
<button id="ov-goal-create" type="button" class="primary" data-i18n="创建长目标">创建长目标</button>
|
|
377
|
+
</div>
|
|
378
|
+
<div id="ov-goal-active" class="ov-goal-active hidden">
|
|
379
|
+
<h3 id="ov-goal-name"></h3>
|
|
380
|
+
<p id="ov-goal-description-text" class="ov-goal-description"></p>
|
|
381
|
+
<div class="ov-goal-progress-row"><span id="ov-goal-progress"></span><span id="ov-goal-rounds"></span></div>
|
|
382
|
+
<div class="ov-goal-progress-track"><i id="ov-goal-progress-fill"></i></div>
|
|
383
|
+
<p id="ov-goal-error" class="ov-goal-error" role="status"></p>
|
|
384
|
+
<div id="ov-goal-actions" class="ov-goal-actions"></div>
|
|
385
|
+
</div>
|
|
386
|
+
</section>
|
|
343
387
|
<div class="ov-row">
|
|
344
388
|
<div class="panel ov-trend">
|
|
345
389
|
<div class="panel-head">
|
|
@@ -369,7 +413,15 @@
|
|
|
369
413
|
</div>
|
|
370
414
|
</div>
|
|
371
415
|
<div id="sub-tasks" class="subpage">
|
|
416
|
+
<section id="mobile-workspaces" class="mobile-workspaces" aria-labelledby="mobile-workspaces-title">
|
|
417
|
+
<div class="mobile-workspaces-head">
|
|
418
|
+
<div><h2 id="mobile-workspaces-title" data-i18n="工作区和任务">工作区和任务</h2><p id="mobile-workspaces-count"></p></div>
|
|
419
|
+
<button type="button" class="primary" id="btn-mobile-new" data-i18n="新任务">新任务</button>
|
|
420
|
+
</div>
|
|
421
|
+
<div id="mobile-workspace-list"></div>
|
|
422
|
+
</section>
|
|
372
423
|
<div class="panel wide composer">
|
|
424
|
+
<button type="button" class="ghost mobile-workspaces-back" id="btn-mobile-workspaces"><svg class="ico" aria-hidden="true"><use href="#i-chevron-r"></use></svg><span data-i18n="返回工作区">返回工作区</span></button>
|
|
373
425
|
<div class="hero-row">
|
|
374
426
|
<h2 class="hero" id="cmp-greet">上午好呀,有什么想让我帮忙的吗</h2>
|
|
375
427
|
</div>
|
|
@@ -686,18 +738,18 @@
|
|
|
686
738
|
<div id="hive-scene-stage" class="hive-scene-stage">
|
|
687
739
|
<div class="hive-scene-tools" role="toolbar" aria-label="蜂巢视图控制" data-i18n-aria="蜂巢视图控制">
|
|
688
740
|
<div class="hive-view-switch" role="group" aria-label="视图模式" data-i18n-aria="视图模式">
|
|
689
|
-
<button type="button" class="hive-view-btn" data-hive-view="reference" aria-pressed="
|
|
690
|
-
<button type="button" class="hive-view-btn
|
|
741
|
+
<button type="button" class="hive-view-btn active" data-hive-view="reference" aria-pressed="true" data-i18n="高保真视图">高保真视图</button>
|
|
742
|
+
<button type="button" class="hive-view-btn" data-hive-view="live3d" aria-pressed="false" aria-hidden="true" hidden data-i18n="自由 3D">自由 3D</button>
|
|
691
743
|
<button type="button" class="hive-view-btn" data-hive-view="2d" aria-pressed="false" data-i18n="2D 列表">2D 列表</button>
|
|
692
744
|
</div>
|
|
693
745
|
<span class="hive-scene-hint" data-i18n="拖动平移 · 滚轮缩放 · 双击复位 · 点击屏幕看日志">拖动平移 · 滚轮缩放 · 双击复位 · 点击屏幕看日志</span>
|
|
694
746
|
<span class="hive-scene-spacer"></span>
|
|
695
|
-
<button type="button" class="hive-scene-btn" data-hive-scene-action="zoom-out" aria-label="缩小" title="缩小">−</button>
|
|
696
|
-
<button type="button" class="hive-scene-btn" data-hive-scene-action="zoom-in" aria-label="放大" title="放大">+</button>
|
|
747
|
+
<button type="button" class="hive-scene-btn" data-hive-scene-action="zoom-out" aria-label="缩小" title="缩小" data-i18n-aria="缩小" data-i18n-title="缩小">−</button>
|
|
748
|
+
<button type="button" class="hive-scene-btn" data-hive-scene-action="zoom-in" aria-label="放大" title="放大" data-i18n-aria="放大" data-i18n-title="放大">+</button>
|
|
697
749
|
<button type="button" class="hive-scene-btn hive-scene-reset" data-hive-scene-action="reset" data-i18n="复位视角">复位视角</button>
|
|
698
750
|
<button id="hive-scene-fullscreen" type="button" class="hive-scene-btn hive-scene-fullscreen" aria-label="进入全屏" title="进入全屏" data-i18n-aria="进入全屏" data-i18n-title="进入全屏" aria-pressed="false" data-i18n="全屏">全屏</button>
|
|
699
751
|
</div>
|
|
700
|
-
<div id="rd-hive-viewport" class="hive-viewport hive-mode-
|
|
752
|
+
<div id="rd-hive-viewport" class="hive-viewport hive-mode-3d" data-i18n-aria="蜂巢工作台高保真视图" aria-label="蜂巢工作台高保真视图">
|
|
701
753
|
<img class="hive-reference" src="assets/workbench-reference.png" alt="协作工作台参考场景" data-i18n-alt="协作工作台参考场景" decoding="async">
|
|
702
754
|
<canvas id="rd-hive-gl" class="hive-gl" aria-hidden="true"></canvas>
|
|
703
755
|
<div id="rd-hive-overlay" class="hive-gl-overlay"></div>
|
|
@@ -936,6 +988,29 @@
|
|
|
936
988
|
<h3 data-i18n="可安装" class="sec-title">可安装</h3>
|
|
937
989
|
<div id="ag-installable" class="cards"></div>
|
|
938
990
|
</div>
|
|
991
|
+
<section class="panel wide review-queue" aria-labelledby="review-queue-title">
|
|
992
|
+
<div class="panel-head">
|
|
993
|
+
<h2 id="review-queue-title" data-i18n="人工评审队列">人工评审队列</h2>
|
|
994
|
+
<div class="actions">
|
|
995
|
+
<button type="button" class="ghost small" onclick="loadReviewQueue()" data-i18n="刷新">刷新</button>
|
|
996
|
+
<button type="button" class="primary small" onclick="openReviewRequest()" data-i18n="新建评审请求">新建评审请求</button>
|
|
997
|
+
</div>
|
|
998
|
+
</div>
|
|
999
|
+
<p class="hint" data-i18n="记录运行成果的人工复核与处理意见。渠道仅作记录;创建请求不会向外部渠道发送消息,批准也不会自动发布成果。">记录运行成果的人工复核与处理意见。渠道仅作记录;创建请求不会向外部渠道发送消息,批准也不会自动发布成果。</p>
|
|
1000
|
+
<div class="review-queue-toolbar">
|
|
1001
|
+
<label for="review-queue-filter" data-i18n="评审状态">评审状态</label>
|
|
1002
|
+
<select id="review-queue-filter" onchange="renderReviewQueue()">
|
|
1003
|
+
<option value="active" data-i18n="待处理">待处理</option>
|
|
1004
|
+
<option value="all" data-i18n="全部">全部</option>
|
|
1005
|
+
<option value="approved" data-i18n="已批准">已批准</option>
|
|
1006
|
+
<option value="dismissed" data-i18n="已关闭">已关闭</option>
|
|
1007
|
+
<option value="expired" data-i18n="已过期">已过期</option>
|
|
1008
|
+
</select>
|
|
1009
|
+
<span id="review-queue-count" class="hint"></span>
|
|
1010
|
+
</div>
|
|
1011
|
+
<p id="review-queue-message" class="hint" role="status" aria-live="polite"></p>
|
|
1012
|
+
<div id="review-queue-list" class="review-queue-list" aria-busy="false"></div>
|
|
1013
|
+
</section>
|
|
939
1014
|
</div>
|
|
940
1015
|
|
|
941
1016
|
<!-- 模型接入 -->
|
|
@@ -1060,7 +1135,7 @@
|
|
|
1060
1135
|
<div class="panel-head"><h2 data-i18n="编排设置">编排设置</h2></div>
|
|
1061
1136
|
<p data-i18n="「编排者」是 CodeBee 自己的智能体:直连 API 供应商的模型(不占 CLI 会话),统一负责任务规划拆解、难度判定与写作大纲。未启用或调用失败时自动回落为「最强可用 CLI 智能体」规划,流程永不阻塞。" class="hint">「编排者」是 CodeBee 自己的智能体:直连 API 供应商的模型(不占 CLI 会话),统一负责任务规划拆解、难度判定与写作大纲。未启用或调用失败时自动回落为「最强可用 CLI 智能体」规划,流程永不阻塞。</p>
|
|
1062
1137
|
<div id="orch-config"></div>
|
|
1063
|
-
<h3 data-i18n="
|
|
1138
|
+
<h3 data-i18n="运行与工作区" class="sec-title">运行与工作区</h3>
|
|
1064
1139
|
<div class="field"><label data-i18n="编排并发上限(本机资源保护)">编排并发上限(本机资源保护)</label>
|
|
1065
1140
|
<div class="input-row">
|
|
1066
1141
|
<input id="set-workers" type="number" min="1" max="24" value="12">
|
|
@@ -1081,7 +1156,9 @@
|
|
|
1081
1156
|
<label class="toggle" style="margin-top:6px"><input id="set-claude-sync" type="checkbox"> <span data-i18n="把绑定供应商写进 ~/.claude/settings.json(一键打开与每次运行前)">把绑定供应商写进 ~/.claude/settings.json(一键打开与每次运行前)</span></label>
|
|
1082
1157
|
<p data-i18n="开启后 CodeBee 会覆盖 cc-switch 等工具对交互 claude 的手选配置。关闭后交互 claude 配置归你手动管理;编排步骤改用一次性注入,模型路由不受影响。" class="hint">开启后 CodeBee 会覆盖 cc-switch 等工具对交互 claude 的手选配置。关闭后交互 claude 配置归你手动管理;编排步骤改用一次性注入,模型路由不受影响。</p>
|
|
1083
1158
|
</div>
|
|
1084
|
-
<h3 data-i18n="
|
|
1159
|
+
<h3 data-i18n="工具与连接" class="sec-title">工具与连接</h3>
|
|
1160
|
+
<p class="hint" data-i18n="配置 MCP、ACP 与本机命令授权。这些工具会以你的本机权限运行,请只连接可信服务。">配置 MCP、ACP 与本机命令授权。这些工具会以你的本机权限运行,请只连接可信服务。</p>
|
|
1161
|
+
<h4 class="settings-subhead" data-i18n="MCP 工具(内置智能体)">MCP 工具(内置智能体)</h4>
|
|
1085
1162
|
<div class="field"><label data-i18n="MCP 服务器清单(JSON 数组,stdio 形态,最多 4 个)">MCP 服务器清单(JSON 数组,stdio 形态,最多 4 个)</label>
|
|
1086
1163
|
<textarea id="set-mcp-servers" rows="4" style="width:100%;font-family:var(--mono,monospace);font-size:12px" placeholder='[{"name":"fs","command":"npx","args":["-y","@modelcontextprotocol/server-fs","C:/data"]}]'></textarea>
|
|
1087
1164
|
<div class="input-row" style="margin-top:6px" id="mcp-templates">
|
|
@@ -1097,26 +1174,26 @@
|
|
|
1097
1174
|
</div>
|
|
1098
1175
|
<p data-i18n="内置智能体(直连对话/直接执行)会把服务器的工具并入工具循环(mcp__服务器__工具 名)。命令在你本机执行,与「执行命令」工具同一自主权级别;工具清单缓存 5 分钟。留空 = 不启用。" class="hint">内置智能体(直连对话/直接执行)会把服务器的工具并入工具循环(mcp__服务器__工具 名)。命令在你本机执行,与「执行命令」工具同一自主权级别;工具清单缓存 5 分钟。留空 = 不启用。</p>
|
|
1099
1176
|
</div>
|
|
1100
|
-
<
|
|
1177
|
+
<h4 class="settings-subhead">ACP Backend Profiles</h4>
|
|
1101
1178
|
<p class="hint">接入遵循 Agent Client Protocol v1 的本地或 SSH stdio Agent。密钥只保存在本机,读取时始终脱敏。</p>
|
|
1102
1179
|
<div class="field">
|
|
1103
1180
|
<div id="acp-profiles" class="list"></div>
|
|
1104
1181
|
<div class="input-row" style="margin-top:6px">
|
|
1105
|
-
<input id="acp-label" type="text" placeholder="名称">
|
|
1106
|
-
<input id="acp-command" type="text" placeholder="启动命令,例如 acp-agent">
|
|
1107
|
-
<input id="acp-args" type="text" placeholder="参数 JSON 数组,例如 [\"--stdio\"]">
|
|
1108
|
-
<input id="acp-workspace" type="text" placeholder="Agent 工作区(可空)">
|
|
1182
|
+
<input id="acp-label" type="text" placeholder="名称" data-i18n-ph="名称">
|
|
1183
|
+
<input id="acp-command" type="text" placeholder="启动命令,例如 acp-agent" data-i18n-ph="启动命令,例如 acp-agent">
|
|
1184
|
+
<input id="acp-args" type="text" placeholder="参数 JSON 数组,例如 [\"--stdio\"]" data-i18n-ph="参数 JSON 数组,例如 [\"--stdio\"]">
|
|
1185
|
+
<input id="acp-workspace" type="text" placeholder="Agent 工作区(可空)" data-i18n-ph="Agent 工作区(可空)">
|
|
1109
1186
|
<button class="ghost small" type="button" onclick="saveAcpProfile()">保存 ACP</button>
|
|
1110
1187
|
</div>
|
|
1111
1188
|
<p id="acp-msg" class="hint"></p>
|
|
1112
1189
|
</div>
|
|
1113
|
-
<
|
|
1190
|
+
<h4 class="settings-subhead" data-i18n="命令授权">命令授权</h4>
|
|
1114
1191
|
<div class="field">
|
|
1115
1192
|
<div class="input-row"><select id="command-auth-mode"><option value="legacy">legacy:自动执行</option><option value="restricted">restricted:逐条等待批准</option></select><button class="ghost small" type="button" onclick="saveCommandAuthMode()">保存策略</button></div>
|
|
1116
1193
|
<div id="command-auth-pending" class="list"></div>
|
|
1117
1194
|
<p id="command-auth-msg" class="hint"></p>
|
|
1118
1195
|
</div>
|
|
1119
|
-
<h3 data-i18n="
|
|
1196
|
+
<h3 data-i18n="通知" class="sec-title">通知</h3>
|
|
1120
1197
|
<div class="field"><label data-i18n="群机器人 Webhook(钉钉 / 飞书 / 企业微信,按域名自动适配)">群机器人 Webhook(钉钉 / 飞书 / 企业微信,按域名自动适配)</label>
|
|
1121
1198
|
<div class="input-row">
|
|
1122
1199
|
<input id="set-notify-webhook" type="text" placeholder="https://oapi.dingtalk.com/robot/send?access_token=…" data-i18n-ph="https://oapi.dingtalk.com/robot/send?access_token=…">
|
|
@@ -1472,18 +1549,20 @@
|
|
|
1472
1549
|
<button class="icon-btn" id="browser-forward" type="button" title="前进" aria-label="前进" data-i18n-title="前进" data-i18n-aria="前进"><svg class="ico" aria-hidden="true"><use href="#i-arrow-right"></use></svg></button>
|
|
1473
1550
|
<button class="icon-btn" id="browser-reload" type="button" title="刷新" aria-label="刷新" data-i18n-title="刷新" data-i18n-aria="刷新"><svg class="ico" aria-hidden="true"><use href="#i-refresh"></use></svg></button>
|
|
1474
1551
|
<button class="icon-btn" id="browser-home" type="button" title="主页" aria-label="主页" data-i18n-title="主页" data-i18n-aria="主页"><svg class="ico" aria-hidden="true"><use href="#i-home"></use></svg></button>
|
|
1552
|
+
<button class="icon-btn browser-context-toggle" id="browser-context-toggle" type="button" title="任务面板" aria-label="任务面板" aria-expanded="false" aria-controls="browser-context" data-i18n-title="任务面板" data-i18n-aria="任务面板"><svg class="ico" aria-hidden="true"><use href="#i-baton"></use></svg></button>
|
|
1475
1553
|
<form id="browser-nav-form" class="browser-address-wrap">
|
|
1476
1554
|
<svg class="ico browser-lock" aria-hidden="true"><use href="#i-lock"></use></svg>
|
|
1477
1555
|
<input id="browser-address" type="text" autocomplete="off" spellcheck="false" placeholder="输入网址或搜索内容" data-i18n-ph="输入网址或搜索内容" aria-label="网址" data-i18n-aria="网址">
|
|
1478
1556
|
<button class="browser-go" type="submit" title="打开" aria-label="打开" data-i18n-title="打开" data-i18n-aria="打开"><svg class="ico" aria-hidden="true"><use href="#i-arrow-right"></use></svg></button>
|
|
1479
1557
|
</form>
|
|
1558
|
+
<button class="icon-btn" id="browser-site-permissions" type="button" title="网站权限" aria-label="网站权限" data-i18n-title="网站权限" data-i18n-aria="网站权限" disabled><svg class="ico" aria-hidden="true"><use href="#i-lock"></use></svg></button>
|
|
1559
|
+
<button class="icon-btn" id="browser-history-open" type="button" title="浏览记录和数据" aria-label="浏览记录和数据" data-i18n-title="浏览记录和数据" data-i18n-aria="浏览记录和数据"><svg class="ico" aria-hidden="true"><use href="#i-history"></use></svg></button>
|
|
1480
1560
|
<button class="ghost small browser-external" id="browser-open-external" type="button" title="在系统浏览器打开" data-i18n-title="在系统浏览器打开"><svg class="ico" aria-hidden="true"><use href="#i-external"></use></svg><span data-i18n="系统浏览器">系统浏览器</span></button>
|
|
1481
1561
|
</div>
|
|
1482
1562
|
<div class="browser-shortcuts" id="browser-shortcuts">
|
|
1483
1563
|
<button type="button" class="browser-shortcut" data-browser-url="https://www.google.com"><span class="shortcut-mark google">G</span><span>Google</span></button>
|
|
1484
1564
|
<button type="button" class="browser-shortcut" data-browser-url="https://github.com"><span class="shortcut-mark github">GH</span><span>GitHub</span></button>
|
|
1485
1565
|
<button type="button" class="browser-shortcut" data-browser-url="https://developer.mozilla.org"><span class="shortcut-mark mdn">MDN</span><span>MDN</span></button>
|
|
1486
|
-
<button type="button" class="browser-shortcut" data-browser-preview="1"><span class="shortcut-mark preview">P</span><span data-i18n="当前任务预览">当前任务预览</span></button>
|
|
1487
1566
|
</div>
|
|
1488
1567
|
<div class="browser-stage">
|
|
1489
1568
|
<aside class="browser-context" id="browser-context" aria-label="CodeBee 工作上下文" data-i18n-aria="CodeBee 工作上下文">
|
|
@@ -1519,41 +1598,16 @@
|
|
|
1519
1598
|
<header class="browser-home-hero">
|
|
1520
1599
|
<div class="browser-empty-mark"><svg class="ico" aria-hidden="true"><use href="#i-browser"></use></svg></div>
|
|
1521
1600
|
<div class="browser-home-copy">
|
|
1522
|
-
<span class="browser-home-eyebrow" data-i18n="
|
|
1523
|
-
<h2 data-i18n="
|
|
1524
|
-
<p data-i18n="配置 Playwright 工具后,任务智能体可打开页面、点击、填表和截图;小说发布继续复用本机登录态。">配置 Playwright 工具后,任务智能体可打开页面、点击、填表和截图;小说发布继续复用本机登录态。</p>
|
|
1601
|
+
<span class="browser-home-eyebrow" data-i18n="新标签页">新标签页</span>
|
|
1602
|
+
<h2 data-i18n="CodeBee 浏览器">CodeBee 浏览器</h2>
|
|
1525
1603
|
</div>
|
|
1526
|
-
<span class="browser-home-mode"><i></i><span data-i18n="任务驱动">任务驱动</span></span>
|
|
1527
1604
|
</header>
|
|
1528
|
-
<
|
|
1529
|
-
<
|
|
1530
|
-
<
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
</div>
|
|
1535
|
-
<span id="browser-home-run" class="browser-home-run" data-i18n="等待任务进入工作台">等待任务进入工作台</span>
|
|
1536
|
-
</div>
|
|
1537
|
-
</section>
|
|
1538
|
-
<div class="browser-home-workflows">
|
|
1539
|
-
<button class="browser-home-action primary" id="browser-open-preview" data-browser-home-action="preview" type="button">
|
|
1540
|
-
<svg class="ico" aria-hidden="true"><use href="#i-clapper"></use></svg><span><b data-i18n="预览成品">预览成品</b><small data-i18n="打开当前任务的网页成果">打开当前任务的网页成果</small></span>
|
|
1541
|
-
</button>
|
|
1542
|
-
<button class="browser-home-action" data-browser-home-action="verify" type="button">
|
|
1543
|
-
<svg class="ico" aria-hidden="true"><use href="#i-check"></use></svg><span><b data-i18n="查看验证">查看验证</b><small data-i18n="检查测试、截图与修复证据">检查测试、截图与修复证据</small></span>
|
|
1544
|
-
</button>
|
|
1545
|
-
<button class="browser-home-action" data-browser-home-action="retry" type="button">
|
|
1546
|
-
<svg class="ico" aria-hidden="true"><use href="#i-refresh"></use></svg><span><b data-i18n="交给 CodeBee 重跑">交给 CodeBee 重跑</b><small data-i18n="带着当前任务上下文再次执行">带着当前任务上下文再次执行</small></span>
|
|
1547
|
-
</button>
|
|
1548
|
-
<button class="browser-home-action" data-browser-home-action="publish" type="button">
|
|
1549
|
-
<svg class="ico" aria-hidden="true"><use href="#i-book-open"></use></svg><span><b data-i18n="进入小说发布">进入小说发布</b><small data-i18n="番茄、七猫自动填稿,提交前确认">番茄、七猫自动填稿,提交前确认</small></span>
|
|
1550
|
-
</button>
|
|
1551
|
-
</div>
|
|
1552
|
-
<div class="browser-home-capabilities">
|
|
1553
|
-
<div><svg class="ico" aria-hidden="true"><use href="#i-browser"></use></svg><span><b data-i18n="浏览器自动化">浏览器自动化</b><small data-i18n="配置 Playwright MCP 后可开页、交互与截图">配置 Playwright MCP 后可开页、交互与截图</small></span></div>
|
|
1554
|
-
<div><svg class="ico" aria-hidden="true"><use href="#i-check"></use></svg><span><b data-i18n="结果验证">结果验证</b><small data-i18n="成品、命令与证据集中回看">成品、命令与证据集中回看</small></span></div>
|
|
1555
|
-
<div><svg class="ico" aria-hidden="true"><use href="#i-book-open"></use></svg><span><b data-i18n="受控发布">受控发布</b><small data-i18n="平台登录态留在本机,最终提交由你确认">平台登录态留在本机,最终提交由你确认</small></span></div>
|
|
1556
|
-
</div>
|
|
1605
|
+
<form id="browser-home-search" class="browser-home-search">
|
|
1606
|
+
<svg class="ico" aria-hidden="true"><use href="#i-search"></use></svg>
|
|
1607
|
+
<input type="text" autocomplete="off" spellcheck="false" placeholder="搜索网页,或输入网址" aria-label="搜索网页,或输入网址" data-i18n-ph="搜索网页,或输入网址" data-i18n-aria="搜索网页,或输入网址">
|
|
1608
|
+
<button class="browser-home-search-go" type="submit" aria-label="搜索" title="搜索" data-i18n-aria="搜索" data-i18n-title="搜索"><svg class="ico" aria-hidden="true"><use href="#i-arrow-right"></use></svg></button>
|
|
1609
|
+
</form>
|
|
1610
|
+
<div class="browser-home-note" data-i18n="常用网站">常用网站</div>
|
|
1557
1611
|
</div>
|
|
1558
1612
|
</div>
|
|
1559
1613
|
<div class="browser-frame-error hidden" id="browser-frame-error" role="status">
|
|
@@ -1567,6 +1621,30 @@
|
|
|
1567
1621
|
</div>
|
|
1568
1622
|
<div class="browser-foot"><span id="browser-hint" data-i18n="外部网站可能禁止嵌入;可用右上角系统浏览器打开。">外部网站可能禁止嵌入;可用右上角系统浏览器打开。</span><span class="spacer"></span><span id="browser-history-count"></span></div>
|
|
1569
1623
|
</div>
|
|
1624
|
+
<dialog id="browser-history-dialog" class="browser-dialog" aria-labelledby="browser-history-heading">
|
|
1625
|
+
<div class="browser-dialog-head"><div><span class="browser-dialog-kicker" data-i18n="本地保存">本地保存</span><h2 id="browser-history-heading" data-i18n="浏览记录">浏览记录</h2></div><button type="button" class="icon-btn" data-browser-dialog-close aria-label="关闭" title="关闭" data-i18n-aria="关闭" data-i18n-title="关闭">×</button></div>
|
|
1626
|
+
<label class="browser-dialog-search"><svg class="ico" aria-hidden="true"><use href="#i-search"></use></svg><input id="browser-history-search" type="search" autocomplete="off" placeholder="搜索标题或网址" data-i18n-ph="搜索标题或网址"></label>
|
|
1627
|
+
<div id="browser-history-list" class="browser-history-list"></div>
|
|
1628
|
+
<div class="browser-dialog-foot"><span data-i18n="最多保存最近 500 条,仅存于本机。">最多保存最近 500 条,仅存于本机。</span><button id="browser-clear-data" class="ghost small" type="button" data-i18n="清理浏览数据">清理浏览数据</button></div>
|
|
1629
|
+
</dialog>
|
|
1630
|
+
<dialog id="browser-clear-confirm" class="browser-dialog browser-confirm-dialog" aria-labelledby="browser-clear-heading">
|
|
1631
|
+
<div class="browser-dialog-head"><div><span class="browser-dialog-kicker" data-i18n="本地浏览器工作区">本地浏览器工作区</span><h2 id="browser-clear-heading" data-i18n="清理浏览数据?">清理浏览数据?</h2></div><button type="button" class="icon-btn" data-browser-dialog-close aria-label="关闭" title="关闭" data-i18n-aria="关闭" data-i18n-title="关闭">×</button></div>
|
|
1632
|
+
<p class="browser-dialog-explainer" data-i18n="将删除本机保存的浏览记录、标签页和网站权限配置,并恢复为一个新标签页。">将删除本机保存的浏览记录、标签页和网站权限配置,并恢复为一个新标签页。</p>
|
|
1633
|
+
<p class="browser-dialog-note" data-i18n="由于网页运行在隔离框架中,CodeBee 无法读取或清理系统浏览器中的 Cookie、缓存及下载记录。">由于网页运行在隔离框架中,CodeBee 无法读取或清理系统浏览器中的 Cookie、缓存及下载记录。</p>
|
|
1634
|
+
<div class="browser-dialog-actions"><button type="button" class="ghost" data-browser-dialog-close data-i18n="取消">取消</button><button id="browser-clear-confirm-yes" type="button" class="danger" data-i18n="清理本地数据">清理本地数据</button></div>
|
|
1635
|
+
</dialog>
|
|
1636
|
+
<dialog id="browser-permissions-dialog" class="browser-dialog browser-permissions-dialog" aria-labelledby="browser-permissions-heading">
|
|
1637
|
+
<div class="browser-dialog-head"><div><span class="browser-dialog-kicker" data-i18n="按站点控制">按站点控制</span><h2 id="browser-permissions-heading" data-i18n="网站权限">网站权限</h2></div><button type="button" class="icon-btn" data-browser-dialog-close aria-label="关闭" title="关闭" data-i18n-aria="关闭" data-i18n-title="关闭">×</button></div>
|
|
1638
|
+
<p id="browser-site-origin" class="browser-site-origin"></p>
|
|
1639
|
+
<div id="browser-permission-list" class="browser-permission-list">
|
|
1640
|
+
<label><span><b data-i18n="摄像头">摄像头</b><small data-i18n="允许此站点请求摄像头访问">允许此站点请求摄像头访问</small></span><input type="checkbox" data-browser-permission="camera"></label>
|
|
1641
|
+
<label><span><b data-i18n="麦克风">麦克风</b><small data-i18n="允许此站点请求麦克风访问">允许此站点请求麦克风访问</small></span><input type="checkbox" data-browser-permission="microphone"></label>
|
|
1642
|
+
<label><span><b data-i18n="位置信息">位置信息</b><small data-i18n="允许此站点请求设备位置">允许此站点请求设备位置</small></span><input type="checkbox" data-browser-permission="geolocation"></label>
|
|
1643
|
+
<label><span><b data-i18n="读取剪贴板">读取剪贴板</b><small data-i18n="允许此站点请求读取剪贴板">允许此站点请求读取剪贴板</small></span><input type="checkbox" data-browser-permission="clipboard-read"></label>
|
|
1644
|
+
</div>
|
|
1645
|
+
<p id="browser-permission-note" class="browser-dialog-note"></p>
|
|
1646
|
+
<div class="browser-dialog-actions"><button type="button" class="primary" data-browser-dialog-close data-i18n="完成">完成</button></div>
|
|
1647
|
+
</dialog>
|
|
1570
1648
|
</div>
|
|
1571
1649
|
</section>
|
|
1572
1650
|
</main>
|
|
@@ -1713,6 +1791,7 @@
|
|
|
1713
1791
|
<script src="i18n.js"></script>
|
|
1714
1792
|
<script src="artdiff.js"></script>
|
|
1715
1793
|
<script src="hive3d.js"></script>
|
|
1794
|
+
<script src="activity.js"></script>
|
|
1716
1795
|
<script src="app.js"></script>
|
|
1717
1796
|
</body>
|
|
1718
1797
|
</html>
|