codebee 0.1.95 → 0.1.96
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 +725 -720
- package/LICENSE +21 -21
- package/README.md +515 -509
- package/app/core/acceptance.py +100 -100
- package/app/core/agent_context.py +100 -0
- package/app/core/aiflavor.py +197 -197
- package/app/core/analytics.py +38 -38
- package/app/core/artifacts.py +148 -148
- package/app/core/assets.py +110 -110
- package/app/core/attachments.py +623 -623
- package/app/core/audit.py +30 -30
- package/app/core/backup.py +470 -470
- package/app/core/beekeeper.py +183 -183
- package/app/core/benchstore.py +102 -95
- package/app/core/board.py +209 -209
- package/app/core/bookmeta.py +1036 -1036
- package/app/core/bookmeta_catalog.py +180 -180
- package/app/core/branching.py +137 -137
- package/app/core/builtin_agent.py +1680 -1680
- package/app/core/capability.py +144 -144
- package/app/core/chaptersafe.py +32 -32
- package/app/core/checkpoints.py +143 -0
- package/app/core/cleanup.py +303 -303
- package/app/core/compaction.py +201 -201
- package/app/core/contracts.py +255 -255
- package/app/core/covergen.py +356 -356
- package/app/core/defectretro.py +43 -43
- package/app/core/diagnostics.py +114 -114
- package/app/core/dispatch.py +198 -191
- package/app/core/dispatch_log.py +128 -128
- package/app/core/env_scrub.py +85 -85
- package/app/core/errorlog.py +137 -137
- package/app/core/eval_matrix.py +82 -0
- package/app/core/evalbench.py +184 -91
- package/app/core/evaluation.py +174 -174
- package/app/core/failure_notify.py +290 -290
- package/app/core/flow_graph.py +33 -0
- package/app/core/goal_service.py +167 -167
- package/app/core/health.py +389 -389
- package/app/core/history.py +38 -38
- package/app/core/hooks.py +162 -162
- package/app/core/jobs.py +25 -4
- package/app/core/knowledge_pipeline.py +86 -0
- package/app/core/manager.py +2232 -2232
- package/app/core/mocks.py +64 -64
- package/app/core/notify.py +201 -201
- package/app/core/novel_quality.py +181 -189
- package/app/core/openapi.py +177 -154
- package/app/core/operations.py +228 -228
- package/app/core/paihang.py +145 -145
- package/app/core/pipeline.py +43 -19
- package/app/core/planner.py +17 -11
- package/app/core/policy.py +52 -0
- package/app/core/portguard.py +111 -111
- package/app/core/presence.py +77 -77
- package/app/core/preview.py +293 -293
- package/app/core/prompt_guard.py +78 -78
- package/app/core/publish/__init__.py +7 -7
- package/app/core/publish/auto.py +26 -3
- package/app/core/publish/browser.py +655 -655
- package/app/core/publish/chaprows.py +138 -0
- package/app/core/publish/fanqie.py +210 -165
- package/app/core/publish/flow.py +753 -640
- package/app/core/publish/flows-fanqie-calibrated.json +349 -336
- package/app/core/publish/ledger.py +13 -1
- package/app/core/publish/manager.py +1150 -1118
- package/app/core/publish/qimao.py +176 -176
- package/app/core/publish/volumes.py +108 -0
- package/app/core/publish/ws.py +139 -139
- package/app/core/quality_gate.py +194 -194
- package/app/core/redact.py +38 -38
- package/app/core/repeat_guard.py +129 -129
- package/app/core/retrieval.py +137 -137
- package/app/core/router.py +398 -398
- package/app/core/runner.py +2238 -2238
- package/app/core/selfupdate.py +384 -384
- package/app/core/session_log.py +161 -161
- package/app/core/sessions.py +312 -312
- package/app/core/settings.py +20 -0
- package/app/core/settings_schema.py +270 -270
- package/app/core/share_page.py +114 -114
- package/app/core/skill_scan.py +139 -139
- package/app/core/skillpacks/fanqie-novel.md +8 -6
- package/app/core/skillpacks/market/character-bible.md +66 -66
- package/app/core/skillpacks/market/code-risk-checklist.md +58 -58
- package/app/core/skillpacks/market/git-workflow.md +57 -57
- package/app/core/skillpacks/market/release-notes.md +72 -72
- package/app/core/skillpacks/market/weekly-report.md +71 -71
- package/app/core/skillpacks/market/worldview-consistency.md +70 -70
- package/app/core/skillpacks/qimao-signing.md +14 -11
- package/app/core/skills.py +32 -21
- package/app/core/step_runner.py +132 -132
- package/app/core/store.py +9 -0
- package/app/core/story_tracking.py +275 -275
- package/app/core/task_compile.py +199 -199
- package/app/core/telemetry.py +292 -292
- package/app/core/tlsctx.py +64 -64
- package/app/core/token_meter.py +147 -147
- package/app/core/tracing.py +207 -144
- package/app/core/upstream.py +41 -41
- package/app/core/usage.py +1038 -1038
- package/app/core/volumes.py +389 -389
- package/app/core/webhooks.py +89 -0
- package/app/core/wxdigest.py +858 -858
- package/app/core/zentao.py +2692 -2692
- package/app/main.py +104 -9
- package/app/mcp_server.py +244 -244
- package/app/pick_dialog.py +110 -110
- package/app/ui/app.js +286 -18
- package/app/ui/artdiff.js +74 -74
- package/app/ui/assets/community-qr.png +0 -0
- package/app/ui/assets/donate-alipay.jpg +0 -0
- package/app/ui/assets/donate-qr.jpg +0 -0
- package/app/ui/board.html +162 -162
- package/app/ui/board.js +305 -305
- package/app/ui/i18n.js +33 -0
- package/app/ui/icons/bee.svg +79 -79
- package/app/ui/index.html +32 -3
- package/app/ui/manifest.json +16 -16
- package/app/ui/qrcode.js +2297 -2297
- package/app/ui/style.css +196 -2
- package/bin/tutti.js +147 -147
- package/package.json +48 -48
- package/tools/wx_reader.py +261 -261
- package/app/.playwright-cli/console-2026-09-23T08-26-03-635Z.log +0 -88
- package/app/.playwright-cli/page-2026-09-23T08-26-03-845Z.yml +0 -126
- package/app/.playwright-cli/page-2026-09-23T08-29-44-203Z.png +0 -0
- package/app/.playwright-cli/page-2026-09-23T08-35-42-046Z.yml +0 -210
- package/app/.playwright-cli/page-2026-09-23T08-36-52-858Z.png +0 -0
- package/app/.playwright-cli/page-2026-09-23T08-37-33-938Z.png +0 -0
- package/app/.playwright-cli/run-detail-after.png +0 -0
- package/app/output/_createbook_body.json +0 -1
- package/app/output/_probe_fq_click.py +0 -50
- package/app/output/_probe_fq_form.py +0 -42
- package/app/output/_probe_fq_modal.py +0 -55
- package/app/output/_probe_fq_points.py +0 -71
- package/app/output/_probe_fq_submit.py +0 -34
- package/app/output/_probe_fq_watch.py +0 -62
package/app/ui/i18n.js
CHANGED
|
@@ -10,6 +10,15 @@
|
|
|
10
10
|
const LANG_KEY = "orch.lang";
|
|
11
11
|
// 字典:键 = 中文原文;值 = 英文译文。未命中即回落中文。
|
|
12
12
|
const EN = {
|
|
13
|
+
"蜂巢视图控制": "Hive view controls",
|
|
14
|
+
"视图模式": "View mode",
|
|
15
|
+
"3D 场景": "3D scene",
|
|
16
|
+
"2D 列表": "2D list",
|
|
17
|
+
"拖动空白处平移 · 滚轮缩放": "Drag empty space to pan · Scroll to zoom",
|
|
18
|
+
"复位视角": "Reset view",
|
|
19
|
+
"缩小": "Zoom out",
|
|
20
|
+
"放大": "Zoom in",
|
|
21
|
+
"蜂巢流程 3D 场景": "Hive workflow 3D scene",
|
|
13
22
|
// —— 短片段(拼接用)——
|
|
14
23
|
"检查中…": "Checking…",
|
|
15
24
|
"浏览器": "Browser",
|
|
@@ -147,6 +156,7 @@
|
|
|
147
156
|
"推荐任务类型": "Recommended task type",
|
|
148
157
|
"切换类型": "Switch type",
|
|
149
158
|
"这个需求更适合「{0}」流程,能使用对应的规划与质量门禁。是否切换后执行?": "This request fits the {0} workflow, which provides matching planning and quality gates. Switch before running?",
|
|
159
|
+
"这个需求更适合「{0}」流程,能使用对应的专用数据链路与产出模板。是否切换后执行?": "This request fits the {0} workflow, which brings its own data pipeline and output template. Switch before running?",
|
|
150
160
|
// 自动化卡片上的偏好标签(短名与胶囊面同步取用)
|
|
151
161
|
"自动": "Auto",
|
|
152
162
|
"快速": "Fast",
|
|
@@ -1198,6 +1208,18 @@
|
|
|
1198
1208
|
"还没有评测结果:勾选候选模型后点「开始评测」。": "No bench results yet: tick candidates and hit \"Start bench\".",
|
|
1199
1209
|
"没有可用模型:先在「模型接入」配置启用了密钥的供应商。": "No candidates available: configure a provider with a key under \"Model Access\" first.",
|
|
1200
1210
|
"请先勾选至少一个候选模型": "Tick at least one candidate model first",
|
|
1211
|
+
// —— 评测反哺 + 两段式停止 ——
|
|
1212
|
+
"强制停止": "Force stop",
|
|
1213
|
+
" · 停止中…当前样题完成后即停": " · stopping… finishes the current sample first",
|
|
1214
|
+
"已请求停止:当前样题完成后即停(生成调用最长可能等几分钟);等不及再点一次「强制停止」": "Stop requested: the current sample finishes first (a slow generation can take minutes); click \"Force stop\" again to detach immediately",
|
|
1215
|
+
"已强制脱离:界面回到空闲,后台当前调用跑完即自行退出": "Detached: the UI is idle again; the in-flight call exits by itself when done",
|
|
1216
|
+
"评测反哺(实测分影响选路)": "Bench feedback (scores affect routing)",
|
|
1217
|
+
"14 天内实测分作为软信号参与模型链排序(±4.5 封顶,只动排序;健康/冷却/协议等硬约束照常一票否决)": "Scores from the last 14 days act as a soft signal in model-chain ranking (capped at ±4.5; ordering only — health/cooldown/protocol hard gates still veto)",
|
|
1218
|
+
"反哺已关闭:评测只出榜单,不影响选路。": "Feedback off: the bench only publishes the board and does not affect routing.",
|
|
1219
|
+
"反哺生效:": "Feedback on: ",
|
|
1220
|
+
" 个模型加权 · ": " models upweighted · ",
|
|
1221
|
+
" 个降权(据 14 天内实测分)": " downweighted (scores from the last 14 days)",
|
|
1222
|
+
"反哺生效中:暂无 14 天内实测分,跑一轮评测后开始影响排序。": "Feedback on: no scores from the last 14 days yet — run a bench round to start influencing ranking.",
|
|
1201
1223
|
// —— 流程版本历史 ——
|
|
1202
1224
|
"历史": "History",
|
|
1203
1225
|
"当前": "current",
|
|
@@ -1247,6 +1269,7 @@
|
|
|
1247
1269
|
"协议 · ": "protocol · ",
|
|
1248
1270
|
"墨金": "Ink & Gold",
|
|
1249
1271
|
"经典": "Classic",
|
|
1272
|
+
"简白": "Paper",
|
|
1250
1273
|
"深海": "Deep sea",
|
|
1251
1274
|
"森野": "Forest",
|
|
1252
1275
|
"暖阳": "Amber",
|
|
@@ -2200,6 +2223,7 @@
|
|
|
2200
2223
|
"已配置代码版本隔离,但任务分支尚未创建(检出失败见运行错误)。": "Code-version isolation is configured, but the task branch has not been created yet (see run error if checkout failed).",
|
|
2201
2224
|
"藏青底色 + 天蓝强调,夜间长时间盯任务更沉静(默认)": "Navy base + sky-blue accent; calmer for long night sessions (default)",
|
|
2202
2225
|
"黑白灰 + 蓝色强调,ChatGPT 式清爽配色": "Black/white/gray + blue accent — the clean ChatGPT-style palette",
|
|
2226
|
+
"纯白画布 + 浅灰分区 + 克制蓝强调,Codex 式极简明亮": "Pure white canvas, light-gray sections, restrained blue — Codex-style minimal clarity",
|
|
2203
2227
|
"周报晨报生成器守则": "Weekly/Morning Report Generator Rules",
|
|
2204
2228
|
"提交信息规范 / 分支模型 / 危险操作红线 / 冲突与回滚 / 提交前自检清单": "Commit message conventions / branch model / risky-op red lines / conflict & rollback / pre-commit checklist",
|
|
2205
2229
|
"提测/评审前的风险过单:边界与异常 / 资源与并发 / 安全 / 兼容与回退": "Pre-review risk triage: boundary & exceptions / resources & concurrency / security / compatibility & rollback",
|
|
@@ -2317,6 +2341,15 @@
|
|
|
2317
2341
|
"多轮修复未变要停:同一验证失败连续2轮未消除时,停止盲改,切换排查环境、测试夹具、依赖版本或验收命令;记录最小复现。": "Stop when multiple fixes change nothing: when the same verification failure survives two consecutive rounds, stop blind changes and switch to investigating the environment, fixtures, dependency versions or the acceptance command; record a minimal reproduction.",
|
|
2318
2342
|
"切换前保留失败诊断 / 修复绑定失败证据 / 修复不重复空转": "Keep failure diagnostics before switching / capture bind-failure evidence / no idle repair loops",
|
|
2319
2343
|
|
|
2344
|
+
// —— 交流与支持(关于页二维码卡)——
|
|
2345
|
+
"交流与支持": "Community & Support",
|
|
2346
|
+
"GitHub 开源地址": "GitHub repository",
|
|
2347
|
+
"(觉得有用就点个 Star)": " (a Star is much appreciated)",
|
|
2348
|
+
"QQ 交流群(群号 923647047)": "QQ group (ID 923647047)",
|
|
2349
|
+
"微信支付": "WeChat Pay",
|
|
2350
|
+
"支付宝支付": "Alipay",
|
|
2351
|
+
"如果 CodeBee 帮你赚到了稿费、省下了时间,欢迎请作者喝杯咖啡~": "If CodeBee has earned you royalties or saved you time, buying the author a coffee is much appreciated~",
|
|
2352
|
+
|
|
2320
2353
|
// —— 帮助改进(遥测/诊断包)——
|
|
2321
2354
|
"帮助改进 CodeBee": "Help Improve CodeBee",
|
|
2322
2355
|
"发送匿名错误报告(帮助我们发现和修复问题)": "Send anonymous error reports (helps us find and fix issues)",
|
package/app/ui/icons/bee.svg
CHANGED
|
@@ -1,79 +1,79 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
|
2
|
-
<!-- CodeBee 写实小蜂:琥珀黑条纹腹 + 绒毛胸背 + 半透明翅脉 + 扇翅动画。
|
|
3
|
-
经 <img> 引用(独立文档,渐变 id 互不串扰);翅动媒体查询随系统 reduce-motion 关停。 -->
|
|
4
|
-
<defs>
|
|
5
|
-
<linearGradient id="cbAbd" x1="0" y1="0" x2="0" y2="1">
|
|
6
|
-
<stop offset="0" stop-color="#ffcd66"/>
|
|
7
|
-
<stop offset=".55" stop-color="#f0a92c"/>
|
|
8
|
-
<stop offset="1" stop-color="#c67c12"/>
|
|
9
|
-
</linearGradient>
|
|
10
|
-
<radialGradient id="cbThx" cx=".38" cy=".3" r="1.05">
|
|
11
|
-
<stop offset="0" stop-color="#7a5a26"/>
|
|
12
|
-
<stop offset=".6" stop-color="#3d2c10"/>
|
|
13
|
-
<stop offset="1" stop-color="#1f1505"/>
|
|
14
|
-
</radialGradient>
|
|
15
|
-
<linearGradient id="cbWing" x1="0" y1="0" x2="1" y2="1">
|
|
16
|
-
<stop offset="0" stop-color="#ffffff" stop-opacity=".85"/>
|
|
17
|
-
<stop offset="1" stop-color="#cfe0f5" stop-opacity=".16"/>
|
|
18
|
-
</linearGradient>
|
|
19
|
-
<clipPath id="cbAbdClip"><ellipse cx="32" cy="44" rx="11.5" ry="13.5"/></clipPath>
|
|
20
|
-
</defs>
|
|
21
|
-
<style>
|
|
22
|
-
.wingL, .wingR { transform-box: view-box; }
|
|
23
|
-
.wingL { transform-origin: 27px 21px; animation: cbFlapL .16s ease-in-out infinite alternate; }
|
|
24
|
-
.wingR { transform-origin: 37px 21px; animation: cbFlapR .16s ease-in-out infinite alternate; }
|
|
25
|
-
@keyframes cbFlapL { from { transform: rotate(-16deg); } to { transform: rotate(9deg); } }
|
|
26
|
-
@keyframes cbFlapR { from { transform: rotate(16deg); } to { transform: rotate(-9deg); } }
|
|
27
|
-
@media (prefers-reduced-motion: reduce) { .wingL, .wingR { animation: none; } }
|
|
28
|
-
</style>
|
|
29
|
-
|
|
30
|
-
<!-- 触角 -->
|
|
31
|
-
<path d="M29.5 8C27.5 4.6 24.6 3 21.8 3.6" fill="none" stroke="#241a05" stroke-width="1.4" stroke-linecap="round"/>
|
|
32
|
-
<path d="M34.5 8c2-3.4 4.9-5 7.7-4.4" fill="none" stroke="#241a05" stroke-width="1.4" stroke-linecap="round"/>
|
|
33
|
-
<circle cx="21.6" cy="3.7" r="1.5" fill="#241a05"/>
|
|
34
|
-
<circle cx="42.4" cy="3.7" r="1.5" fill="#241a05"/>
|
|
35
|
-
|
|
36
|
-
<!-- 左翅(前后两片,扇翅绕胸侧基点) -->
|
|
37
|
-
<g class="wingL">
|
|
38
|
-
<ellipse cx="16.5" cy="19.5" rx="11.5" ry="4.8" transform="rotate(-34 26 20.5)"
|
|
39
|
-
fill="url(#cbWing)" stroke="#e8f1fb" stroke-opacity=".65" stroke-width=".7"/>
|
|
40
|
-
<ellipse cx="20" cy="24.5" rx="8.2" ry="3.5" transform="rotate(-22 26.5 24.5)"
|
|
41
|
-
fill="url(#cbWing)" stroke="#e8f1fb" stroke-opacity=".55" stroke-width=".6"/>
|
|
42
|
-
<g transform="rotate(-34 26 20.5)" fill="none" stroke="#a9c1dd" stroke-opacity=".4" stroke-width=".5">
|
|
43
|
-
<path d="M26 20.5 8 15.5"/><path d="M26 21.5 7.5 20.5"/>
|
|
44
|
-
</g>
|
|
45
|
-
</g>
|
|
46
|
-
<!-- 右翅 -->
|
|
47
|
-
<g class="wingR">
|
|
48
|
-
<ellipse cx="47.5" cy="19.5" rx="11.5" ry="4.8" transform="rotate(34 38 20.5)"
|
|
49
|
-
fill="url(#cbWing)" stroke="#e8f1fb" stroke-opacity=".65" stroke-width=".7"/>
|
|
50
|
-
<ellipse cx="44" cy="24.5" rx="8.2" ry="3.5" transform="rotate(22 37.5 24.5)"
|
|
51
|
-
fill="url(#cbWing)" stroke="#e8f1fb" stroke-opacity=".55" stroke-width=".6"/>
|
|
52
|
-
<g transform="rotate(34 38 20.5)" fill="none" stroke="#a9c1dd" stroke-opacity=".4" stroke-width=".5">
|
|
53
|
-
<path d="M38 20.5 56 15.5"/><path d="M38 21.5 56.5 20.5"/>
|
|
54
|
-
</g>
|
|
55
|
-
</g>
|
|
56
|
-
|
|
57
|
-
<!-- 腹部:琥珀底 + 黑条纹 + 高光 + 螫针 -->
|
|
58
|
-
<ellipse cx="32" cy="44" rx="11.5" ry="13.5" fill="url(#cbAbd)"/>
|
|
59
|
-
<g clip-path="url(#cbAbdClip)" fill="#241a05">
|
|
60
|
-
<path d="M20 40.5 Q32 36.5 44 40.5 L44 46.5 Q32 42.5 20 46.5 Z"/>
|
|
61
|
-
<path d="M20.5 49 Q32 45.5 43.5 49 L43.2 54.5 Q32 51.5 20.8 54.5 Z" opacity=".92"/>
|
|
62
|
-
</g>
|
|
63
|
-
<path d="M25.2 36q-2.6 4-2 9.5" stroke="#ffe9ad" stroke-opacity=".7" stroke-width="1.6" stroke-linecap="round" fill="none"/>
|
|
64
|
-
<ellipse cx="32" cy="44" rx="11.5" ry="13.5" fill="none" stroke="#8a5a10" stroke-opacity=".35" stroke-width=".8"/>
|
|
65
|
-
<path d="M32 58.5 29.8 54h4.4Z" fill="#241a05"/>
|
|
66
|
-
|
|
67
|
-
<!-- 胸背:绒毛渐变 + 虚线描边模拟绒毛缘 -->
|
|
68
|
-
<ellipse cx="32" cy="25.5" rx="9.2" ry="9.8" fill="url(#cbThx)"/>
|
|
69
|
-
<ellipse cx="32" cy="25.5" rx="9.2" ry="9.8" fill="none" stroke="#8a6a2e" stroke-opacity=".45"
|
|
70
|
-
stroke-width="1" stroke-dasharray="1.2 1.6"/>
|
|
71
|
-
|
|
72
|
-
<!-- 头:复眼 + 高光 -->
|
|
73
|
-
<circle cx="32" cy="12.8" r="6.3" fill="#241a05"/>
|
|
74
|
-
<ellipse cx="28" cy="12.6" rx="2.4" ry="3" fill="#0e0a03"/>
|
|
75
|
-
<ellipse cx="36" cy="12.6" rx="2.4" ry="3" fill="#0e0a03"/>
|
|
76
|
-
<circle cx="28.9" cy="11.3" r=".7" fill="#7d6538" opacity=".8"/>
|
|
77
|
-
<circle cx="36.9" cy="11.3" r=".7" fill="#7d6538" opacity=".8"/>
|
|
78
|
-
<path d="M28.5 8.6q3.5-1.6 7 0" stroke="#8a6a2e" stroke-opacity=".55" stroke-width=".8" fill="none"/>
|
|
79
|
-
</svg>
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 64 64">
|
|
2
|
+
<!-- CodeBee 写实小蜂:琥珀黑条纹腹 + 绒毛胸背 + 半透明翅脉 + 扇翅动画。
|
|
3
|
+
经 <img> 引用(独立文档,渐变 id 互不串扰);翅动媒体查询随系统 reduce-motion 关停。 -->
|
|
4
|
+
<defs>
|
|
5
|
+
<linearGradient id="cbAbd" x1="0" y1="0" x2="0" y2="1">
|
|
6
|
+
<stop offset="0" stop-color="#ffcd66"/>
|
|
7
|
+
<stop offset=".55" stop-color="#f0a92c"/>
|
|
8
|
+
<stop offset="1" stop-color="#c67c12"/>
|
|
9
|
+
</linearGradient>
|
|
10
|
+
<radialGradient id="cbThx" cx=".38" cy=".3" r="1.05">
|
|
11
|
+
<stop offset="0" stop-color="#7a5a26"/>
|
|
12
|
+
<stop offset=".6" stop-color="#3d2c10"/>
|
|
13
|
+
<stop offset="1" stop-color="#1f1505"/>
|
|
14
|
+
</radialGradient>
|
|
15
|
+
<linearGradient id="cbWing" x1="0" y1="0" x2="1" y2="1">
|
|
16
|
+
<stop offset="0" stop-color="#ffffff" stop-opacity=".85"/>
|
|
17
|
+
<stop offset="1" stop-color="#cfe0f5" stop-opacity=".16"/>
|
|
18
|
+
</linearGradient>
|
|
19
|
+
<clipPath id="cbAbdClip"><ellipse cx="32" cy="44" rx="11.5" ry="13.5"/></clipPath>
|
|
20
|
+
</defs>
|
|
21
|
+
<style>
|
|
22
|
+
.wingL, .wingR { transform-box: view-box; }
|
|
23
|
+
.wingL { transform-origin: 27px 21px; animation: cbFlapL .16s ease-in-out infinite alternate; }
|
|
24
|
+
.wingR { transform-origin: 37px 21px; animation: cbFlapR .16s ease-in-out infinite alternate; }
|
|
25
|
+
@keyframes cbFlapL { from { transform: rotate(-16deg); } to { transform: rotate(9deg); } }
|
|
26
|
+
@keyframes cbFlapR { from { transform: rotate(16deg); } to { transform: rotate(-9deg); } }
|
|
27
|
+
@media (prefers-reduced-motion: reduce) { .wingL, .wingR { animation: none; } }
|
|
28
|
+
</style>
|
|
29
|
+
|
|
30
|
+
<!-- 触角 -->
|
|
31
|
+
<path d="M29.5 8C27.5 4.6 24.6 3 21.8 3.6" fill="none" stroke="#241a05" stroke-width="1.4" stroke-linecap="round"/>
|
|
32
|
+
<path d="M34.5 8c2-3.4 4.9-5 7.7-4.4" fill="none" stroke="#241a05" stroke-width="1.4" stroke-linecap="round"/>
|
|
33
|
+
<circle cx="21.6" cy="3.7" r="1.5" fill="#241a05"/>
|
|
34
|
+
<circle cx="42.4" cy="3.7" r="1.5" fill="#241a05"/>
|
|
35
|
+
|
|
36
|
+
<!-- 左翅(前后两片,扇翅绕胸侧基点) -->
|
|
37
|
+
<g class="wingL">
|
|
38
|
+
<ellipse cx="16.5" cy="19.5" rx="11.5" ry="4.8" transform="rotate(-34 26 20.5)"
|
|
39
|
+
fill="url(#cbWing)" stroke="#e8f1fb" stroke-opacity=".65" stroke-width=".7"/>
|
|
40
|
+
<ellipse cx="20" cy="24.5" rx="8.2" ry="3.5" transform="rotate(-22 26.5 24.5)"
|
|
41
|
+
fill="url(#cbWing)" stroke="#e8f1fb" stroke-opacity=".55" stroke-width=".6"/>
|
|
42
|
+
<g transform="rotate(-34 26 20.5)" fill="none" stroke="#a9c1dd" stroke-opacity=".4" stroke-width=".5">
|
|
43
|
+
<path d="M26 20.5 8 15.5"/><path d="M26 21.5 7.5 20.5"/>
|
|
44
|
+
</g>
|
|
45
|
+
</g>
|
|
46
|
+
<!-- 右翅 -->
|
|
47
|
+
<g class="wingR">
|
|
48
|
+
<ellipse cx="47.5" cy="19.5" rx="11.5" ry="4.8" transform="rotate(34 38 20.5)"
|
|
49
|
+
fill="url(#cbWing)" stroke="#e8f1fb" stroke-opacity=".65" stroke-width=".7"/>
|
|
50
|
+
<ellipse cx="44" cy="24.5" rx="8.2" ry="3.5" transform="rotate(22 37.5 24.5)"
|
|
51
|
+
fill="url(#cbWing)" stroke="#e8f1fb" stroke-opacity=".55" stroke-width=".6"/>
|
|
52
|
+
<g transform="rotate(34 38 20.5)" fill="none" stroke="#a9c1dd" stroke-opacity=".4" stroke-width=".5">
|
|
53
|
+
<path d="M38 20.5 56 15.5"/><path d="M38 21.5 56.5 20.5"/>
|
|
54
|
+
</g>
|
|
55
|
+
</g>
|
|
56
|
+
|
|
57
|
+
<!-- 腹部:琥珀底 + 黑条纹 + 高光 + 螫针 -->
|
|
58
|
+
<ellipse cx="32" cy="44" rx="11.5" ry="13.5" fill="url(#cbAbd)"/>
|
|
59
|
+
<g clip-path="url(#cbAbdClip)" fill="#241a05">
|
|
60
|
+
<path d="M20 40.5 Q32 36.5 44 40.5 L44 46.5 Q32 42.5 20 46.5 Z"/>
|
|
61
|
+
<path d="M20.5 49 Q32 45.5 43.5 49 L43.2 54.5 Q32 51.5 20.8 54.5 Z" opacity=".92"/>
|
|
62
|
+
</g>
|
|
63
|
+
<path d="M25.2 36q-2.6 4-2 9.5" stroke="#ffe9ad" stroke-opacity=".7" stroke-width="1.6" stroke-linecap="round" fill="none"/>
|
|
64
|
+
<ellipse cx="32" cy="44" rx="11.5" ry="13.5" fill="none" stroke="#8a5a10" stroke-opacity=".35" stroke-width=".8"/>
|
|
65
|
+
<path d="M32 58.5 29.8 54h4.4Z" fill="#241a05"/>
|
|
66
|
+
|
|
67
|
+
<!-- 胸背:绒毛渐变 + 虚线描边模拟绒毛缘 -->
|
|
68
|
+
<ellipse cx="32" cy="25.5" rx="9.2" ry="9.8" fill="url(#cbThx)"/>
|
|
69
|
+
<ellipse cx="32" cy="25.5" rx="9.2" ry="9.8" fill="none" stroke="#8a6a2e" stroke-opacity=".45"
|
|
70
|
+
stroke-width="1" stroke-dasharray="1.2 1.6"/>
|
|
71
|
+
|
|
72
|
+
<!-- 头:复眼 + 高光 -->
|
|
73
|
+
<circle cx="32" cy="12.8" r="6.3" fill="#241a05"/>
|
|
74
|
+
<ellipse cx="28" cy="12.6" rx="2.4" ry="3" fill="#0e0a03"/>
|
|
75
|
+
<ellipse cx="36" cy="12.6" rx="2.4" ry="3" fill="#0e0a03"/>
|
|
76
|
+
<circle cx="28.9" cy="11.3" r=".7" fill="#7d6538" opacity=".8"/>
|
|
77
|
+
<circle cx="36.9" cy="11.3" r=".7" fill="#7d6538" opacity=".8"/>
|
|
78
|
+
<path d="M28.5 8.6q3.5-1.6 7 0" stroke="#8a6a2e" stroke-opacity=".55" stroke-width=".8" fill="none"/>
|
|
79
|
+
</svg>
|
package/app/ui/index.html
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
<meta name="theme-color" content="#6d5df6">
|
|
11
11
|
<meta name="mobile-web-app-capable" content="yes">
|
|
12
12
|
<meta name="apple-mobile-web-app-capable" content="yes">
|
|
13
|
-
<meta name="apple-mobile-web-app-status-bar-style"="black-translucent">
|
|
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
16
|
<!-- 首屏预涂:在样式表之后、绘制之前定好皮肤与明暗 + 语言,避免刷新时闪一下默认配色。
|
|
@@ -667,7 +667,20 @@
|
|
|
667
667
|
<div id="rd-pane-hive" class="rd-pane" role="tabpanel" aria-labelledby="rd-tab-hive" data-pane="hive">
|
|
668
668
|
<div id="rd-hive" class="rd-hive hidden">
|
|
669
669
|
<div class="sec-title"><svg class="ico" aria-hidden="true"><use href="#i-bee"></use></svg><span data-i18n="蜂巢工作台">蜂巢工作台</span><span id="rd-hive-sub" class="tag"></span><button class="hhelp" data-help-topic="serial" title="这是什么?点开看帮助" data-i18n-title="这是什么?点开看帮助" aria-label="帮助" data-i18n-aria="帮助"><svg class="ico" aria-hidden="true"><use href="#i-help"></use></svg></button></div>
|
|
670
|
-
<div
|
|
670
|
+
<div class="hive-scene-tools" role="toolbar" aria-label="蜂巢视图控制" data-i18n-aria="蜂巢视图控制">
|
|
671
|
+
<div class="hive-view-switch" role="group" aria-label="视图模式" data-i18n-aria="视图模式">
|
|
672
|
+
<button type="button" class="hive-view-btn active" data-hive-view="3d" aria-pressed="true" data-i18n="3D 场景">3D 场景</button>
|
|
673
|
+
<button type="button" class="hive-view-btn" data-hive-view="2d" aria-pressed="false" data-i18n="2D 列表">2D 列表</button>
|
|
674
|
+
</div>
|
|
675
|
+
<span class="hive-scene-hint" data-i18n="拖动空白处平移 · 滚轮缩放">拖动空白处平移 · 滚轮缩放</span>
|
|
676
|
+
<span class="hive-scene-spacer"></span>
|
|
677
|
+
<button type="button" class="hive-scene-btn" data-hive-scene-action="zoom-out" aria-label="缩小" title="缩小">−</button>
|
|
678
|
+
<button type="button" class="hive-scene-btn" data-hive-scene-action="zoom-in" aria-label="放大" title="放大">+</button>
|
|
679
|
+
<button type="button" class="hive-scene-btn hive-scene-reset" data-hive-scene-action="reset" data-i18n="复位视角">复位视角</button>
|
|
680
|
+
</div>
|
|
681
|
+
<div id="rd-hive-viewport" class="hive-viewport" data-i18n-aria="蜂巢流程 3D 场景" aria-label="蜂巢流程 3D 场景">
|
|
682
|
+
<div id="rd-hive-cells" class="hive-cells hive-3d"></div>
|
|
683
|
+
</div>
|
|
671
684
|
</div>
|
|
672
685
|
<!-- 运行中指挥信箱:renderDirector 只认活跃 run,渲染时摘掉 hidden;
|
|
673
686
|
与检查器的迷你指挥坞不同屏(详情上下文检查器让位),这里是带附件的完整版 -->
|
|
@@ -1083,7 +1096,7 @@
|
|
|
1083
1096
|
<div id="eb-cands" class="list"></div>
|
|
1084
1097
|
<div class="input-row" style="margin-top:10px">
|
|
1085
1098
|
<button id="eb-run-btn" class="primary" onclick="evalbenchRun()" data-i18n="开始评测">开始评测</button>
|
|
1086
|
-
<button class="ghost" onclick="evalbenchCancel()" data-i18n="停止">停止</button>
|
|
1099
|
+
<button id="eb-stop-btn" class="ghost" onclick="evalbenchCancel()" data-i18n="停止">停止</button>
|
|
1087
1100
|
<span id="eb-progress" class="hint"></span>
|
|
1088
1101
|
</div>
|
|
1089
1102
|
<div id="eb-msg" class="msg"></div>
|
|
@@ -1096,6 +1109,14 @@
|
|
|
1096
1109
|
<span id="eb-auto-msg" class="hint"></span>
|
|
1097
1110
|
</div>
|
|
1098
1111
|
</div>
|
|
1112
|
+
<div class="field"><label data-i18n="评测反哺(实测分影响选路)">评测反哺(实测分影响选路)</label>
|
|
1113
|
+
<label class="toggle" style="margin-top:6px"><input id="eb-feedback-enabled" type="checkbox" checked> <span data-i18n="14 天内实测分作为软信号参与模型链排序(±4.5 封顶,只动排序;健康/冷却/协议等硬约束照常一票否决)">14 天内实测分作为软信号参与模型链排序(±4.5 封顶,只动排序;健康/冷却/协议等硬约束照常一票否决)</span></label>
|
|
1114
|
+
<div class="input-row" style="margin-top:6px">
|
|
1115
|
+
<button class="ghost small" onclick="saveBenchFeedback()" data-i18n="保存">保存</button>
|
|
1116
|
+
<span id="eb-feedback-msg" class="hint"></span>
|
|
1117
|
+
</div>
|
|
1118
|
+
<div id="eb-feedback-status" class="hint" style="margin-top:4px"></div>
|
|
1119
|
+
</div>
|
|
1099
1120
|
<h3 data-i18n="能力榜" class="sec-title">能力榜</h3>
|
|
1100
1121
|
<div class="input-row" id="eb-trend" style="align-items:center;gap:8px"></div>
|
|
1101
1122
|
<div class="input-row" style="margin:6px 0">
|
|
@@ -1246,6 +1267,14 @@
|
|
|
1246
1267
|
<p id="su-note" class="hint"></p>
|
|
1247
1268
|
<p id="su-progress" class="hint"></p>
|
|
1248
1269
|
<p class="hint" data-i18n="升级会通过 npm 拉取最新版并自动执行(日志可在运行记录里实时查看);完成后服务会自动重启,页面会自动重连。开发仓库(git clone)模式不提供自动升级,请用 git pull。">升级会通过 npm 拉取最新版并自动执行(日志可在运行记录里实时查看);完成后服务会自动重启,页面会自动重连。开发仓库(git clone)模式不提供自动升级,请用 git pull。</p>
|
|
1270
|
+
<h3 data-i18n="交流与支持" class="sec-title">交流与支持</h3>
|
|
1271
|
+
<p class="hint"><span data-i18n="GitHub 开源地址">GitHub 开源地址</span>:<a href="https://github.com/Vercel-By-WXP/CodeBee" target="_blank" rel="noopener">github.com/Vercel-By-WXP/CodeBee</a><span data-i18n="(觉得有用就点个 Star)">(觉得有用就点个 Star)</span></p>
|
|
1272
|
+
<div class="qr-row">
|
|
1273
|
+
<figure class="qr-card"><img src="assets/community-qr.png" alt="Codebee 沟通交流1群 QQ 群二维码(群号 923647047)" loading="lazy"><figcaption class="hint" data-i18n="QQ 交流群(群号 923647047)">QQ 交流群(群号 923647047)</figcaption></figure>
|
|
1274
|
+
<figure class="qr-card"><img src="assets/donate-qr.jpg" alt="微信支付收款码" loading="lazy"><figcaption class="hint" data-i18n="微信支付">微信支付</figcaption></figure>
|
|
1275
|
+
<figure class="qr-card"><img src="assets/donate-alipay.jpg" alt="支付宝收款码(支持信用卡 / 花呗)" loading="lazy"><figcaption class="hint" data-i18n="支付宝支付">支付宝支付</figcaption></figure>
|
|
1276
|
+
</div>
|
|
1277
|
+
<p class="hint" data-i18n="如果 CodeBee 帮你赚到了稿费、省下了时间,欢迎请作者喝杯咖啡~">如果 CodeBee 帮你赚到了稿费、省下了时间,欢迎请作者喝杯咖啡~</p>
|
|
1249
1278
|
<h3 data-i18n="帮助改进 CodeBee" class="sec-title">帮助改进 CodeBee</h3>
|
|
1250
1279
|
<label class="toggle"><input id="set-telemetry" type="checkbox" onchange="saveTelemetry(this.checked)"> <span data-i18n="发送匿名错误报告(帮助我们发现和修复问题)">发送匿名错误报告(帮助我们发现和修复问题)</span></label>
|
|
1251
1280
|
<p data-i18n="只上报失败原因码、供应商/模型名与脱敏后的错误摘录——绝不上传任务内容、章节正文、API 密钥和本机路径;关闭后立即停止一切上报。" class="hint">只上报失败原因码、供应商/模型名与脱敏后的错误摘录——绝不上传任务内容、章节正文、API 密钥和本机路径;关闭后立即停止一切上报。</p>
|
package/app/ui/manifest.json
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "CodeBee · 多智能体编排台",
|
|
3
|
-
"short_name": "CodeBee",
|
|
4
|
-
"description": "All agents, one hive. 一句话目标,自动拆解、路由、执行、验证与跨厂商评审。",
|
|
5
|
-
"start_url": "/",
|
|
6
|
-
"scope": "/",
|
|
7
|
-
"display": "standalone",
|
|
8
|
-
"orientation": "portrait-primary",
|
|
9
|
-
"background_color": "#0f1115",
|
|
10
|
-
"theme_color": "#6d5df6",
|
|
11
|
-
"icons": [
|
|
12
|
-
{ "src": "icons/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" },
|
|
13
|
-
{ "src": "icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any" },
|
|
14
|
-
{ "src": "icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
|
|
15
|
-
]
|
|
16
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "CodeBee · 多智能体编排台",
|
|
3
|
+
"short_name": "CodeBee",
|
|
4
|
+
"description": "All agents, one hive. 一句话目标,自动拆解、路由、执行、验证与跨厂商评审。",
|
|
5
|
+
"start_url": "/",
|
|
6
|
+
"scope": "/",
|
|
7
|
+
"display": "standalone",
|
|
8
|
+
"orientation": "portrait-primary",
|
|
9
|
+
"background_color": "#0f1115",
|
|
10
|
+
"theme_color": "#6d5df6",
|
|
11
|
+
"icons": [
|
|
12
|
+
{ "src": "icons/icon-192.png", "sizes": "192x192", "type": "image/png", "purpose": "any" },
|
|
13
|
+
{ "src": "icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "any" },
|
|
14
|
+
{ "src": "icons/icon-512.png", "sizes": "512x512", "type": "image/png", "purpose": "maskable" }
|
|
15
|
+
]
|
|
16
|
+
}
|