codebee 0.1.62 → 0.1.63

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.
Files changed (98) hide show
  1. package/CHANGELOG.md +499 -490
  2. package/LICENSE +21 -21
  3. package/README.md +484 -486
  4. package/app/.playwright-cli/console-2026-09-23T08-26-03-635Z.log +88 -0
  5. package/app/.playwright-cli/page-2026-09-23T08-26-03-845Z.yml +126 -0
  6. package/app/.playwright-cli/page-2026-09-23T08-29-44-203Z.png +0 -0
  7. package/app/.playwright-cli/page-2026-09-23T08-35-42-046Z.yml +210 -0
  8. package/app/.playwright-cli/page-2026-09-23T08-36-52-858Z.png +0 -0
  9. package/app/.playwright-cli/page-2026-09-23T08-37-33-938Z.png +0 -0
  10. package/app/.playwright-cli/run-detail-after.png +0 -0
  11. package/app/core/aiflavor.py +197 -197
  12. package/app/core/attachments.py +532 -532
  13. package/app/core/automation.py +758 -758
  14. package/app/core/backup.py +470 -470
  15. package/app/core/beekeeper.py +183 -183
  16. package/app/core/board.py +209 -209
  17. package/app/core/bookmeta_catalog.py +180 -180
  18. package/app/core/branching.py +137 -137
  19. package/app/core/builtin_agent.py +1191 -1191
  20. package/app/core/capability.py +144 -144
  21. package/app/core/catalog.py +19 -14
  22. package/app/core/chaptersafe.py +32 -32
  23. package/app/core/cleanup.py +303 -303
  24. package/app/core/compaction.py +186 -186
  25. package/app/core/covergen.py +356 -356
  26. package/app/core/diagnostics.py +114 -114
  27. package/app/core/dispatch.py +173 -173
  28. package/app/core/dispatch_log.py +113 -113
  29. package/app/core/env_scrub.py +85 -85
  30. package/app/core/error_codes.py +64 -64
  31. package/app/core/errorlog.py +137 -137
  32. package/app/core/flows.py +355 -355
  33. package/app/core/goal_service.py +167 -167
  34. package/app/core/health.py +341 -341
  35. package/app/core/history.py +38 -38
  36. package/app/core/hooks.py +156 -156
  37. package/app/core/jobs.py +1022 -1022
  38. package/app/core/manager.py +1996 -1996
  39. package/app/core/market.py +362 -362
  40. package/app/core/market_remote.py +66 -66
  41. package/app/core/mocks.py +64 -64
  42. package/app/core/modelhub.py +3266 -3266
  43. package/app/core/notify.py +106 -106
  44. package/app/core/paihang.py +109 -109
  45. package/app/core/paths.py +2 -2
  46. package/app/core/pipeline.py +4444 -4426
  47. package/app/core/planner.py +27 -27
  48. package/app/core/portguard.py +111 -111
  49. package/app/core/preview.py +293 -293
  50. package/app/core/publish/__init__.py +7 -7
  51. package/app/core/publish/auto.py +367 -367
  52. package/app/core/publish/browser.py +533 -533
  53. package/app/core/publish/fanqie.py +128 -128
  54. package/app/core/publish/flow.py +406 -406
  55. package/app/core/publish/ledger.py +198 -198
  56. package/app/core/publish/manager.py +590 -590
  57. package/app/core/publish/qimao.py +141 -141
  58. package/app/core/publish/ws.py +139 -139
  59. package/app/core/redact.py +38 -38
  60. package/app/core/repeat_guard.py +124 -124
  61. package/app/core/router.py +20 -3
  62. package/app/core/runner.py +2014 -1991
  63. package/app/core/selfupdate.py +384 -384
  64. package/app/core/session_log.py +161 -161
  65. package/app/core/sessions.py +312 -312
  66. package/app/core/settings.py +149 -149
  67. package/app/core/settings_schema.py +262 -262
  68. package/app/core/share_page.py +114 -114
  69. package/app/core/skill_scan.py +106 -106
  70. package/app/core/skillpacks/fanqie-novel.md +80 -80
  71. package/app/core/skillpacks/market/character-bible.md +66 -66
  72. package/app/core/skillpacks/market/code-risk-checklist.md +58 -58
  73. package/app/core/skillpacks/market/git-workflow.md +57 -57
  74. package/app/core/skillpacks/market/release-notes.md +72 -72
  75. package/app/core/skillpacks/market/weekly-report.md +71 -71
  76. package/app/core/skillpacks/market/worldview-consistency.md +70 -70
  77. package/app/core/step_runner.py +132 -132
  78. package/app/core/task_compile.py +199 -199
  79. package/app/core/telemetry.py +292 -292
  80. package/app/core/tlsctx.py +64 -64
  81. package/app/core/token_meter.py +147 -147
  82. package/app/core/volumes.py +355 -355
  83. package/app/core/wxdigest.py +858 -858
  84. package/app/core/zentao.py +2090 -2090
  85. package/app/main.py +2826 -2826
  86. package/app/pick_dialog.py +110 -110
  87. package/app/ui/app.js +13977 -13977
  88. package/app/ui/board.html +162 -162
  89. package/app/ui/board.js +305 -305
  90. package/app/ui/i18n.js +2711 -2711
  91. package/app/ui/icons/bee.svg +79 -79
  92. package/app/ui/index.html +1 -1
  93. package/app/ui/manifest.json +16 -16
  94. package/app/ui/qrcode.js +2297 -2297
  95. package/app/ui/style.css +6125 -6125
  96. package/bin/tutti.js +147 -147
  97. package/package.json +41 -41
  98. package/tools/wx_reader.py +261 -261
@@ -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
@@ -1073,7 +1073,7 @@
1073
1073
  </div>
1074
1074
  <p id="su-note" class="hint"></p>
1075
1075
  <p id="su-progress" class="hint"></p>
1076
- <p class="hint" data-i18n="升级会通过 npm 拉取最新版并自动执行(日志可在运行记录里实时查看);完成后服务会自动重启,页面会自动重连。开发仓库(git clone)模式不提供自动升级,请用 git pull。">升级会通过 npm 拉取最新版并自动执行(日志可在运行记录里实时查看);完成后服务会自动重启,页面会自动重连。开发仓库(git clone)模式不提供自动升级,请用 git pull。</p>
1076
+ <p class="hint" data-i18n="升级会通过 npm 拉取最新版并自动执行(日志可在运行记录里实时查看);完成后服务会自动重启,页面会自动重连。开发仓库(git clone)模式不提供自动升级,请用 git pull。">升级会通过 npm 拉取最新版并自动执行(日志可在运行记录里实时查看);完成后服务会自动重启,页面会自动重连。开发仓库(git clone)模式不提供自动升级,请用 git pull。</p>
1077
1077
  <h3 data-i18n="帮助改进 CodeBee" class="sec-title">帮助改进 CodeBee</h3>
1078
1078
  <label class="toggle"><input id="set-telemetry" type="checkbox" onchange="saveTelemetry(this.checked)"> <span data-i18n="发送匿名错误报告(帮助我们发现和修复问题)">发送匿名错误报告(帮助我们发现和修复问题)</span></label>
1079
1079
  <p data-i18n="只上报失败原因码、供应商/模型名与脱敏后的错误摘录——绝不上传任务内容、章节正文、API 密钥和本机路径;关闭后立即停止一切上报。" class="hint">只上报失败原因码、供应商/模型名与脱敏后的错误摘录——绝不上传任务内容、章节正文、API 密钥和本机路径;关闭后立即停止一切上报。</p>
@@ -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
+ }