codebee 0.1.95 → 0.1.97

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 (144) hide show
  1. package/CHANGELOG.md +733 -720
  2. package/LICENSE +21 -21
  3. package/README.md +516 -509
  4. package/app/core/acceptance.py +100 -100
  5. package/app/core/agent_context.py +118 -0
  6. package/app/core/aiflavor.py +197 -197
  7. package/app/core/analytics.py +38 -38
  8. package/app/core/artifacts.py +148 -148
  9. package/app/core/assets.py +110 -110
  10. package/app/core/attachments.py +623 -623
  11. package/app/core/audit.py +30 -30
  12. package/app/core/backup.py +470 -470
  13. package/app/core/beekeeper.py +183 -183
  14. package/app/core/benchstore.py +102 -95
  15. package/app/core/board.py +246 -209
  16. package/app/core/bookmeta.py +1036 -1036
  17. package/app/core/bookmeta_catalog.py +180 -180
  18. package/app/core/branching.py +137 -137
  19. package/app/core/builtin_agent.py +2055 -1680
  20. package/app/core/capability.py +144 -144
  21. package/app/core/chaptersafe.py +32 -32
  22. package/app/core/checkpoints.py +648 -0
  23. package/app/core/cleanup.py +303 -303
  24. package/app/core/compaction.py +201 -201
  25. package/app/core/contracts.py +255 -255
  26. package/app/core/covergen.py +356 -356
  27. package/app/core/defectretro.py +43 -43
  28. package/app/core/diagnostics.py +114 -114
  29. package/app/core/dispatch.py +198 -191
  30. package/app/core/dispatch_log.py +128 -128
  31. package/app/core/env_scrub.py +85 -85
  32. package/app/core/errorlog.py +137 -137
  33. package/app/core/eval_matrix.py +82 -0
  34. package/app/core/evalbench.py +184 -91
  35. package/app/core/evaluation.py +174 -174
  36. package/app/core/failure_notify.py +290 -290
  37. package/app/core/flow_graph.py +33 -0
  38. package/app/core/goal_service.py +167 -167
  39. package/app/core/health.py +389 -389
  40. package/app/core/history.py +38 -38
  41. package/app/core/hooks.py +162 -162
  42. package/app/core/jobs.py +25 -4
  43. package/app/core/knowledge_pipeline.py +86 -0
  44. package/app/core/manager.py +2232 -2232
  45. package/app/core/mcp_client.py +200 -29
  46. package/app/core/mocks.py +64 -64
  47. package/app/core/notify.py +201 -201
  48. package/app/core/novel_quality.py +181 -189
  49. package/app/core/openapi.py +177 -154
  50. package/app/core/operations.py +228 -228
  51. package/app/core/paihang.py +145 -145
  52. package/app/core/pipeline.py +319 -59
  53. package/app/core/planner.py +17 -11
  54. package/app/core/policy.py +84 -0
  55. package/app/core/portguard.py +111 -111
  56. package/app/core/presence.py +77 -77
  57. package/app/core/preview.py +293 -293
  58. package/app/core/project_memory.py +139 -0
  59. package/app/core/prompt_guard.py +78 -78
  60. package/app/core/publish/__init__.py +7 -7
  61. package/app/core/publish/auto.py +106 -22
  62. package/app/core/publish/browser.py +694 -655
  63. package/app/core/publish/chaprows.py +138 -0
  64. package/app/core/publish/fanqie.py +212 -165
  65. package/app/core/publish/flow.py +832 -640
  66. package/app/core/publish/flows-fanqie-calibrated.json +361 -336
  67. package/app/core/publish/ledger.py +51 -2
  68. package/app/core/publish/manager.py +1150 -1118
  69. package/app/core/publish/qimao.py +176 -176
  70. package/app/core/publish/volumes.py +108 -0
  71. package/app/core/publish/ws.py +139 -139
  72. package/app/core/quality_gate.py +194 -194
  73. package/app/core/redact.py +38 -38
  74. package/app/core/repeat_guard.py +129 -129
  75. package/app/core/retrieval.py +137 -137
  76. package/app/core/router.py +398 -398
  77. package/app/core/runner.py +2239 -2238
  78. package/app/core/selfupdate.py +384 -384
  79. package/app/core/session_log.py +161 -161
  80. package/app/core/sessions.py +312 -312
  81. package/app/core/settings.py +33 -5
  82. package/app/core/settings_schema.py +282 -271
  83. package/app/core/share_page.py +114 -114
  84. package/app/core/skill_scan.py +139 -139
  85. package/app/core/skillpacks/fanqie-novel.md +8 -6
  86. package/app/core/skillpacks/market/character-bible.md +66 -66
  87. package/app/core/skillpacks/market/code-risk-checklist.md +58 -58
  88. package/app/core/skillpacks/market/git-workflow.md +57 -57
  89. package/app/core/skillpacks/market/release-notes.md +72 -72
  90. package/app/core/skillpacks/market/weekly-report.md +71 -71
  91. package/app/core/skillpacks/market/worldview-consistency.md +70 -70
  92. package/app/core/skillpacks/qimao-signing.md +14 -11
  93. package/app/core/skills.py +32 -21
  94. package/app/core/step_runner.py +132 -132
  95. package/app/core/store.py +24 -0
  96. package/app/core/story_tracking.py +275 -275
  97. package/app/core/task_compile.py +199 -199
  98. package/app/core/telemetry.py +292 -292
  99. package/app/core/tlsctx.py +64 -64
  100. package/app/core/token_meter.py +147 -147
  101. package/app/core/tool_outputs.py +107 -0
  102. package/app/core/tracing.py +207 -144
  103. package/app/core/upstream.py +41 -41
  104. package/app/core/usage.py +1038 -1038
  105. package/app/core/volumes.py +389 -389
  106. package/app/core/webhooks.py +89 -0
  107. package/app/core/wxdigest.py +865 -858
  108. package/app/core/zentao.py +2692 -2692
  109. package/app/main.py +179 -10
  110. package/app/mcp_server.py +244 -244
  111. package/app/pick_dialog.py +110 -110
  112. package/app/ui/app.js +563 -21
  113. package/app/ui/artdiff.js +74 -74
  114. package/app/ui/assets/community-qr.png +0 -0
  115. package/app/ui/assets/donate-alipay.jpg +0 -0
  116. package/app/ui/assets/donate-qr.jpg +0 -0
  117. package/app/ui/assets/workbench-reference.png +0 -0
  118. package/app/ui/board.css +451 -666
  119. package/app/ui/board.html +165 -162
  120. package/app/ui/board.js +509 -305
  121. package/app/ui/hive3d.js +242 -0
  122. package/app/ui/i18n.js +125 -9
  123. package/app/ui/icons/bee.svg +79 -79
  124. package/app/ui/index.html +60 -3
  125. package/app/ui/manifest.json +16 -16
  126. package/app/ui/qrcode.js +2297 -2297
  127. package/app/ui/style.css +189 -9
  128. package/bin/tutti.js +147 -147
  129. package/package.json +49 -48
  130. package/tools/wx_reader.py +261 -261
  131. package/app/.playwright-cli/console-2026-09-23T08-26-03-635Z.log +0 -88
  132. package/app/.playwright-cli/page-2026-09-23T08-26-03-845Z.yml +0 -126
  133. package/app/.playwright-cli/page-2026-09-23T08-29-44-203Z.png +0 -0
  134. package/app/.playwright-cli/page-2026-09-23T08-35-42-046Z.yml +0 -210
  135. package/app/.playwright-cli/page-2026-09-23T08-36-52-858Z.png +0 -0
  136. package/app/.playwright-cli/page-2026-09-23T08-37-33-938Z.png +0 -0
  137. package/app/.playwright-cli/run-detail-after.png +0 -0
  138. package/app/output/_createbook_body.json +0 -1
  139. package/app/output/_probe_fq_click.py +0 -50
  140. package/app/output/_probe_fq_form.py +0 -42
  141. package/app/output/_probe_fq_modal.py +0 -55
  142. package/app/output/_probe_fq_points.py +0 -71
  143. package/app/output/_probe_fq_submit.py +0 -34
  144. package/app/output/_probe_fq_watch.py +0 -62
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,32 @@
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 id="rd-hive-cells" class="hive-cells"></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 hive-mode-3d" data-i18n-aria="蜂巢流程 3D 场景" aria-label="蜂巢流程 3D 场景">
682
+ <img class="hive-reference" src="assets/workbench-reference.png" alt="协作工作台参考场景" data-i18n-alt="协作工作台参考场景" decoding="async">
683
+ <canvas id="rd-hive-gl" class="hive-gl" aria-hidden="true"></canvas>
684
+ <div id="rd-hive-overlay" class="hive-gl-overlay" aria-hidden="true"></div>
685
+ <div id="rd-hive-cells" class="hive-cells"></div>
686
+ </div>
687
+ <dialog id="hive-log-dialog" class="hive-detail-dialog" aria-labelledby="hive-log-title">
688
+ <div class="hive-detail-head">
689
+ <h3 id="hive-log-title"></h3>
690
+ <button id="hive-log-close" class="hive-detail-close" type="button" data-i18n="关闭">关闭</button>
691
+ </div>
692
+ <div id="hive-log-meta" class="hive-detail-meta"></div>
693
+ <pre id="hive-log-text" class="hive-detail-log"></pre>
694
+ <p id="hive-log-error" class="hive-detail-error"></p>
695
+ </dialog>
671
696
  </div>
672
697
  <!-- 运行中指挥信箱:renderDirector 只认活跃 run,渲染时摘掉 hidden;
673
698
  与检查器的迷你指挥坞不同屏(详情上下文检查器让位),这里是带附件的完整版 -->
@@ -687,6 +712,21 @@
687
712
  </div>
688
713
  </div>
689
714
  <div id="rd-pane-steps" class="rd-pane" role="tabpanel" aria-labelledby="rd-tab-steps" data-pane="steps">
715
+ <section id="rd-checkpoints" class="rd-checkpoints hidden" aria-live="polite">
716
+ <div class="rd-checkpoints-head">
717
+ <strong data-i18n="文件检查点">文件检查点</strong>
718
+ <button id="rd-checkpoints-load" type="button" class="ghost small" onclick="loadRunCheckpoints()" data-i18n="查看检查点">查看检查点</button>
719
+ <button id="rd-checkpoints-restore" type="button" class="danger small hidden" onclick="restoreRunCheckpoints()" data-i18n="恢复文件">恢复文件</button>
720
+ </div>
721
+ <div id="rd-checkpoints-body" class="hint"></div>
722
+ </section>
723
+ <section id="rd-project-memory" class="rd-project-memory hidden" aria-live="polite">
724
+ <div class="rd-checkpoints-head">
725
+ <strong data-i18n="项目记忆治理">项目记忆治理</strong>
726
+ <button id="rd-project-memory-refresh" type="button" class="ghost small" onclick="loadProjectMemory()" data-i18n="刷新记忆">刷新记忆</button>
727
+ </div>
728
+ <div id="rd-project-memory-body" class="hint"></div>
729
+ </section>
690
730
  <div id="rd-plan" class="hidden"></div>
691
731
  <div id="rd-routing" class="rd-routing hidden"></div>
692
732
  <div id="rd-chapters" class="rd-chapters hidden"></div>
@@ -1083,7 +1123,7 @@
1083
1123
  <div id="eb-cands" class="list"></div>
1084
1124
  <div class="input-row" style="margin-top:10px">
1085
1125
  <button id="eb-run-btn" class="primary" onclick="evalbenchRun()" data-i18n="开始评测">开始评测</button>
1086
- <button class="ghost" onclick="evalbenchCancel()" data-i18n="停止">停止</button>
1126
+ <button id="eb-stop-btn" class="ghost" onclick="evalbenchCancel()" data-i18n="停止">停止</button>
1087
1127
  <span id="eb-progress" class="hint"></span>
1088
1128
  </div>
1089
1129
  <div id="eb-msg" class="msg"></div>
@@ -1096,6 +1136,14 @@
1096
1136
  <span id="eb-auto-msg" class="hint"></span>
1097
1137
  </div>
1098
1138
  </div>
1139
+ <div class="field"><label data-i18n="评测反哺(实测分影响选路)">评测反哺(实测分影响选路)</label>
1140
+ <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>
1141
+ <div class="input-row" style="margin-top:6px">
1142
+ <button class="ghost small" onclick="saveBenchFeedback()" data-i18n="保存">保存</button>
1143
+ <span id="eb-feedback-msg" class="hint"></span>
1144
+ </div>
1145
+ <div id="eb-feedback-status" class="hint" style="margin-top:4px"></div>
1146
+ </div>
1099
1147
  <h3 data-i18n="能力榜" class="sec-title">能力榜</h3>
1100
1148
  <div class="input-row" id="eb-trend" style="align-items:center;gap:8px"></div>
1101
1149
  <div class="input-row" style="margin:6px 0">
@@ -1246,6 +1294,14 @@
1246
1294
  <p id="su-note" class="hint"></p>
1247
1295
  <p id="su-progress" class="hint"></p>
1248
1296
  <p class="hint" data-i18n="升级会通过 npm 拉取最新版并自动执行(日志可在运行记录里实时查看);完成后服务会自动重启,页面会自动重连。开发仓库(git clone)模式不提供自动升级,请用 git pull。">升级会通过 npm 拉取最新版并自动执行(日志可在运行记录里实时查看);完成后服务会自动重启,页面会自动重连。开发仓库(git clone)模式不提供自动升级,请用 git pull。</p>
1297
+ <h3 data-i18n="交流与支持" class="sec-title">交流与支持</h3>
1298
+ <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>
1299
+ <div class="qr-row">
1300
+ <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>
1301
+ <figure class="qr-card"><img src="assets/donate-qr.jpg" alt="微信支付收款码" loading="lazy"><figcaption class="hint" data-i18n="微信支付">微信支付</figcaption></figure>
1302
+ <figure class="qr-card"><img src="assets/donate-alipay.jpg" alt="支付宝收款码(支持信用卡 / 花呗)" loading="lazy"><figcaption class="hint" data-i18n="支付宝支付">支付宝支付</figcaption></figure>
1303
+ </div>
1304
+ <p class="hint" data-i18n="如果 CodeBee 帮你赚到了稿费、省下了时间,欢迎请作者喝杯咖啡~">如果 CodeBee 帮你赚到了稿费、省下了时间,欢迎请作者喝杯咖啡~</p>
1249
1305
  <h3 data-i18n="帮助改进 CodeBee" class="sec-title">帮助改进 CodeBee</h3>
1250
1306
  <label class="toggle"><input id="set-telemetry" type="checkbox" onchange="saveTelemetry(this.checked)"> <span data-i18n="发送匿名错误报告(帮助我们发现和修复问题)">发送匿名错误报告(帮助我们发现和修复问题)</span></label>
1251
1307
  <p data-i18n="只上报失败原因码、供应商/模型名与脱敏后的错误摘录——绝不上传任务内容、章节正文、API 密钥和本机路径;关闭后立即停止一切上报。" class="hint">只上报失败原因码、供应商/模型名与脱敏后的错误摘录——绝不上传任务内容、章节正文、API 密钥和本机路径;关闭后立即停止一切上报。</p>
@@ -1616,6 +1672,7 @@
1616
1672
  <script src="qrcode.js"></script>
1617
1673
  <script src="i18n.js"></script>
1618
1674
  <script src="artdiff.js"></script>
1675
+ <script src="hive3d.js"></script>
1619
1676
  <script src="app.js"></script>
1620
1677
  </body>
1621
1678
  </html>
@@ -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
+ }