codebee 0.1.66 → 0.1.68
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 +543 -520
- package/LICENSE +21 -21
- package/README.md +11 -7
- package/app/.playwright-cli/console-2026-09-23T08-26-03-635Z.log +88 -0
- package/app/.playwright-cli/page-2026-09-23T08-26-03-845Z.yml +126 -0
- 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 +210 -0
- 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/core/acceptance.py +100 -0
- package/app/core/aiflavor.py +197 -197
- package/app/core/artifacts.py +148 -148
- package/app/core/assets.py +110 -0
- package/app/core/attachments.py +623 -532
- package/app/core/automation.py +758 -758
- package/app/core/backup.py +470 -470
- package/app/core/beekeeper.py +183 -183
- package/app/core/board.py +209 -209
- package/app/core/bookmeta.py +930 -796
- package/app/core/bookmeta_catalog.py +180 -180
- package/app/core/branching.py +137 -137
- package/app/core/builtin_agent.py +1234 -1234
- package/app/core/capability.py +144 -144
- package/app/core/catalog.py +42 -0
- package/app/core/chaptersafe.py +32 -32
- package/app/core/cleanup.py +303 -303
- package/app/core/compaction.py +201 -201
- package/app/core/covergen.py +356 -356
- package/app/core/defectretro.py +43 -0
- package/app/core/diagnostics.py +114 -114
- package/app/core/dispatch.py +173 -173
- package/app/core/dispatch_log.py +128 -113
- package/app/core/env_scrub.py +85 -85
- package/app/core/error_codes.py +23 -23
- package/app/core/errorlog.py +137 -137
- package/app/core/evaluation.py +174 -174
- package/app/core/failure_notify.py +290 -290
- package/app/core/flows.py +48 -2
- package/app/core/goal_service.py +167 -167
- package/app/core/health.py +374 -374
- package/app/core/history.py +38 -38
- package/app/core/hooks.py +162 -162
- package/app/core/jobs.py +46 -26
- package/app/core/knowledge.py +57 -3
- package/app/core/manager.py +2122 -2115
- package/app/core/market.py +362 -362
- package/app/core/market_remote.py +124 -26
- package/app/core/mocks.py +64 -64
- package/app/core/modelhub.py +51 -3
- package/app/core/notify.py +106 -106
- package/app/core/operations.py +228 -0
- package/app/core/paihang.py +138 -109
- package/app/core/paths.py +2 -2
- package/app/core/pipeline.py +221 -12
- package/app/core/planner.py +6 -1
- package/app/core/portguard.py +111 -111
- package/app/core/preview.py +293 -293
- package/app/core/publish/__init__.py +7 -7
- package/app/core/publish/auto.py +367 -367
- package/app/core/publish/browser.py +539 -533
- package/app/core/publish/fanqie.py +159 -128
- package/app/core/publish/flow.py +440 -432
- package/app/core/publish/flows-fanqie-calibrated.json +332 -332
- package/app/core/publish/flows-qimao-calibrated.json +7 -3
- package/app/core/publish/ledger.py +203 -198
- package/app/core/publish/manager.py +692 -623
- package/app/core/publish/qimao.py +141 -141
- package/app/core/publish/ws.py +139 -139
- package/app/core/redact.py +38 -38
- package/app/core/repeat_guard.py +129 -129
- package/app/core/revisions.py +51 -0
- package/app/core/router.py +398 -398
- package/app/core/runner.py +2067 -2050
- 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 +149 -149
- package/app/core/settings_schema.py +262 -262
- package/app/core/share_page.py +114 -114
- package/app/core/skill_scan.py +122 -114
- package/app/core/skillpacks/fanqie-novel.md +80 -80
- 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/skills.py +109 -2
- package/app/core/step_runner.py +132 -132
- package/app/core/store.py +278 -41
- 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 +144 -0
- package/app/core/upstream.py +41 -41
- package/app/core/usage.py +862 -858
- package/app/core/volumes.py +389 -355
- package/app/core/wxdigest.py +858 -858
- package/app/core/zentao.py +2465 -2447
- package/app/main.py +2981 -2838
- package/app/pick_dialog.py +110 -110
- package/app/ui/app.js +14399 -13994
- package/app/ui/artdiff.js +74 -0
- package/app/ui/board.html +162 -162
- package/app/ui/board.js +305 -305
- package/app/ui/i18n.js +2770 -2716
- package/app/ui/icons/bee.svg +79 -79
- package/app/ui/index.html +6 -0
- package/app/ui/manifest.json +16 -16
- package/app/ui/qrcode.js +2297 -2297
- package/app/ui/style.css +96 -24
- package/bin/tutti.js +147 -147
- package/package.json +46 -46
- package/tools/wx_reader.py +261 -261
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2026 scwuxinping
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 scwuxinping
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
|
|
11
11
|
**AI 是引擎,你的经验是方向盘。** CodeBee 为你指挥一支跨厂商的执笔/编码小队:
|
|
12
12
|
统一调度本机已装的 AI 编码 CLI(Codex CLI、Claude Code、Qwen Code、OpenCode、Aider、
|
|
13
|
-
Kimi Code、MiMo Code、Grok Build、Pi、DeepSeek Harness
|
|
13
|
+
Kimi Code、MiMo Code、Grok Build、Pi、DeepSeek Harness、Gemini CLI、CodeBuddy CLI、
|
|
14
|
+
Trae Agent……),提供
|
|
14
15
|
**目标 → 自动拆解 → 智能路由 → 执行 → 客观验证 → 跨厂商评审 → 自动修复/换将 → 汇总报告**
|
|
15
16
|
的完整闭环。你不在时它们自动推进、自我打磨;需要你拍板的地方——质量闸门、任务分支的
|
|
16
17
|
采纳与丢弃——它们会亮起「待裁决」等你,绝不静默替你决定。
|
|
@@ -121,9 +122,9 @@ OpenCode / Continue / Cursor / Trae 十种工具的配置,一次带入全部
|
|
|
121
122
|
|
|
122
123
|
### 更多内置能力
|
|
123
124
|
|
|
124
|
-
- **
|
|
125
|
-
|
|
126
|
-
|
|
125
|
+
- **17 种任务类型**:直接执行、代码、小说、连载小说、自媒体文章、短视频脚本、
|
|
126
|
+
文档、翻译、扫榜选材、缺陷复盘、调研报告、演讲稿、工作汇报、商务邮件、技术方案、简历、标书编制;
|
|
127
|
+
全部支持自定义流程(引擎 / 评审维度 / 阈值 / 轮数 / 提示词覆盖);
|
|
127
128
|
- **质量闸门与裁决**:评审失败≠0 分照过、降级大纲不开写、超时但已落盘的稿件照常
|
|
128
129
|
送评审;需要人拍板的事项进「待裁决」队列(徽章 + 提示音),`tools/bee.py`
|
|
129
130
|
命令行不开浏览器也能过裁决;
|
|
@@ -228,7 +229,7 @@ python tools\bee.py discard <task> :: 否决——删除任务分支(需输
|
|
|
228
229
|
## 任务类型与自定义流程
|
|
229
230
|
|
|
230
231
|
主表单的「类型」下拉即流程列表,点「管理」可新增/编辑自定义流程(引擎、评审维度、
|
|
231
|
-
阈值、轮数、产出文件名、起草/评审提示词覆盖)。内置
|
|
232
|
+
阈值、轮数、产出文件名、起草/评审提示词覆盖)。内置 17 种;禅道工单是自动转成
|
|
232
233
|
`code` 修复任务的集成入口,不另占菜单类型:
|
|
233
234
|
|
|
234
235
|
| 类型 | 引擎 | 流程 |
|
|
@@ -241,10 +242,12 @@ python tools\bee.py discard <task> :: 否决——删除任务分支(需输
|
|
|
241
242
|
| 🎬 短视频脚本 | review | 画面 + 口播 + 字幕/音效 → 多维评审 → 修订 → 发布门禁 |
|
|
242
243
|
| 📝 文档 | review | 起草 → 多维评审(准确性/结构/表达/实用)→ 修订 → 门禁 |
|
|
243
244
|
| 🌐 翻译 | review | 起草 → 多维评审(忠实度/流畅度/术语/风格)→ 修订 → 门禁 |
|
|
244
|
-
| 📈 扫榜选材 | direct |
|
|
245
|
+
| 📈 扫榜选材 | direct | 抓七猫/番茄/起点/纵横四平台榜单 → 跨平台题材/人设/切入点洞察 |
|
|
246
|
+
| 🕓 缺陷复盘 | direct | 读禅道/Jira 导出 → 产品/开发/测试三视角复盘报告 |
|
|
245
247
|
| 🔍 调研报告 | review | 起草 → 多维评审(全面性/深度/论据/结论)→ 修订 → 门禁 |
|
|
246
248
|
| 🎤 演讲稿 | review | 起草 → 多维评审(主题/结构/感染力/语言)→ 修订 → 门禁 |
|
|
247
249
|
| 📅 工作汇报 / ✉️ 商务邮件 / 📋 技术方案 / 📄 简历 | review | 各自专属角色、交付约束与评审维度 |
|
|
250
|
+
| 📑 标书编制 | review | 招标文件对齐评分点 → 多维评审(应答/合规/针对性)→ 修订 → 门禁 |
|
|
248
251
|
|
|
249
252
|
三种引擎:
|
|
250
253
|
- **direct 引擎**:单智能体直接执行目标,保留会话上下文,适合问答、探索和无需评审链的快捷任务;
|
|
@@ -425,7 +428,8 @@ CLI 默认冒烟、供应商可达性、wire 适配、单模型生成、绑定
|
|
|
425
428
|
CodeBee 编排运行时用哪个供应商 / 模型统一在「CLI 绑定」页配置;
|
|
426
429
|
- **编排开关**:决定哪些 CLI 参与任务路由。
|
|
427
430
|
|
|
428
|
-
Kimi Code / MiMo Code / Grok Build / Pi / DeepSeek Harness
|
|
431
|
+
Kimi Code / MiMo Code / Grok Build / Pi / DeepSeek Harness / Gemini CLI / CodeBuddy CLI /
|
|
432
|
+
Trae Agent 的安装命令已内置(均取自
|
|
429
433
|
各工具官方渠道)。若某个条目的安装命令缺失,直接编辑 `data/catalog.json` 补上
|
|
430
434
|
`install` 字段保存后点"重新加载 catalog"即可;点"恢复默认 catalog"可回滚。
|
|
431
435
|
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
[ 154ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8766/board.html:0
|
|
2
|
+
[ 4086ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
3
|
+
[ 8084ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
4
|
+
[ 12084ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
5
|
+
[ 16071ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
6
|
+
[ 20083ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
7
|
+
[ 24080ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
8
|
+
[ 28074ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
9
|
+
[ 32078ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
10
|
+
[ 36084ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
11
|
+
[ 40087ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
12
|
+
[ 44075ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
13
|
+
[ 48074ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
14
|
+
[ 52070ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
15
|
+
[ 56083ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
16
|
+
[ 60070ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
17
|
+
[ 64074ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
18
|
+
[ 68084ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
19
|
+
[ 72076ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
20
|
+
[ 76083ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
21
|
+
[ 80075ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
22
|
+
[ 84072ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
23
|
+
[ 88077ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
24
|
+
[ 92073ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
25
|
+
[ 96084ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
26
|
+
[ 100086ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
27
|
+
[ 104085ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
28
|
+
[ 108083ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
29
|
+
[ 112083ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
30
|
+
[ 116076ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
31
|
+
[ 120074ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
32
|
+
[ 124084ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
33
|
+
[ 128080ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
34
|
+
[ 132074ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
35
|
+
[ 136074ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
36
|
+
[ 140070ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
37
|
+
[ 144080ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
38
|
+
[ 148075ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
39
|
+
[ 152077ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
40
|
+
[ 156075ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
41
|
+
[ 160072ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
42
|
+
[ 164074ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
43
|
+
[ 168083ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
44
|
+
[ 172076ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
45
|
+
[ 176073ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
46
|
+
[ 180085ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
47
|
+
[ 184071ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
48
|
+
[ 188079ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
49
|
+
[ 192075ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
50
|
+
[ 196085ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
51
|
+
[ 200073ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
52
|
+
[ 204080ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
53
|
+
[ 208077ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
54
|
+
[ 212074ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
55
|
+
[ 216084ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
56
|
+
[ 220077ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
57
|
+
[ 224077ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
58
|
+
[ 228079ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
59
|
+
[ 232072ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
60
|
+
[ 236083ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
61
|
+
[ 240069ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
62
|
+
[ 244077ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
63
|
+
[ 248085ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
64
|
+
[ 252072ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
65
|
+
[ 256073ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
66
|
+
[ 260078ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
67
|
+
[ 264072ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
68
|
+
[ 268074ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
69
|
+
[ 272082ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
70
|
+
[ 276076ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
71
|
+
[ 280075ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
72
|
+
[ 284079ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
73
|
+
[ 288083ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
74
|
+
[ 292069ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
75
|
+
[ 296083ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
76
|
+
[ 300075ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
77
|
+
[ 304077ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
78
|
+
[ 308074ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
79
|
+
[ 312079ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
80
|
+
[ 316074ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
81
|
+
[ 320076ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
82
|
+
[ 324084ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
83
|
+
[ 328076ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
84
|
+
[ 332080ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
85
|
+
[ 336077ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
86
|
+
[ 340085ms] [ERROR] Failed to load resource: net::ERR_CONNECTION_REFUSED @ http://127.0.0.1:8766/api/board:0
|
|
87
|
+
[ 438049ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8766/board.html:0
|
|
88
|
+
[ 578323ms] [VERBOSE] [DOM] Password field is not contained in a form: (More info: https://goo.gl/9p2vKq) %o @ http://127.0.0.1:8766/board.html:0
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
- generic [active] [ref=e1]:
|
|
2
|
+
- banner [ref=e2]:
|
|
3
|
+
- generic [ref=e8]:
|
|
4
|
+
- generic [ref=e9]: CODEBEE / OPERATIONS
|
|
5
|
+
- generic [ref=e10]: 任务驾驶舱
|
|
6
|
+
- generic [ref=e11]:
|
|
7
|
+
- generic [ref=e13]: 实时监控
|
|
8
|
+
- generic [ref=e14]: /
|
|
9
|
+
- generic [ref=e15]: 已同步 · 16:26:03
|
|
10
|
+
- generic [ref=e16]:
|
|
11
|
+
- generic "执行池占用" [ref=e17]: 蜂巢 0/12 · 对话 0/4
|
|
12
|
+
- generic [ref=e18]: "--:--:--"
|
|
13
|
+
- main [ref=e19]:
|
|
14
|
+
- generic [ref=e20]:
|
|
15
|
+
- text: OPERATIONS / STATUS
|
|
16
|
+
- generic [ref=e21]:
|
|
17
|
+
- generic [ref=e22]: 蜂群状态
|
|
18
|
+
- generic [ref=e25]:
|
|
19
|
+
- generic [ref=e26]:
|
|
20
|
+
- heading "蜂群待命" [level=1] [ref=e27]
|
|
21
|
+
- paragraph [ref=e28]: 没有正在运行的任务,新任务在主界面创建后会实时出现在这里
|
|
22
|
+
- generic [ref=e29]:
|
|
23
|
+
- strong [ref=e30]: "0"
|
|
24
|
+
- generic [ref=e31]: 个活动单元
|
|
25
|
+
- generic [ref=e32]:
|
|
26
|
+
- generic [ref=e33]: 系统状态良好
|
|
27
|
+
- generic [ref=e36]: 实时聚合 · 每 4 秒刷新
|
|
28
|
+
- generic [ref=e44]:
|
|
29
|
+
- strong [ref=e45]: "0"
|
|
30
|
+
- generic [ref=e46]: ACTIVE
|
|
31
|
+
- generic [ref=e47]:
|
|
32
|
+
- generic [ref=e48]: 执行池
|
|
33
|
+
- generic [ref=e50]:
|
|
34
|
+
- strong [ref=e51]: "0"
|
|
35
|
+
- generic [ref=e52]: /
|
|
36
|
+
- generic [ref=e53]: "12"
|
|
37
|
+
- emphasis [ref=e54]: 在线槽位
|
|
38
|
+
- generic [ref=e56]:
|
|
39
|
+
- generic [ref=e57]: 队列等待
|
|
40
|
+
- generic [ref=e58]: "0"
|
|
41
|
+
- generic [ref=e59]:
|
|
42
|
+
- generic [ref=e60]: 今日成功率
|
|
43
|
+
- generic [ref=e61]: —
|
|
44
|
+
- region "核心指标" [ref=e62]:
|
|
45
|
+
- generic [ref=e63]:
|
|
46
|
+
- generic [ref=e64]: 运行中
|
|
47
|
+
- generic [ref=e67]: "0"
|
|
48
|
+
- generic [ref=e68]:
|
|
49
|
+
- generic [ref=e69]: 当前活动
|
|
50
|
+
- generic [ref=e70]: LIVE
|
|
51
|
+
- generic [ref=e71]:
|
|
52
|
+
- generic [ref=e72]: 排队中
|
|
53
|
+
- generic [ref=e75]: "0"
|
|
54
|
+
- generic [ref=e76]:
|
|
55
|
+
- generic [ref=e77]: 等待调度
|
|
56
|
+
- generic [ref=e78]: QUEUE
|
|
57
|
+
- generic [ref=e79]:
|
|
58
|
+
- generic [ref=e80]: 今日完成
|
|
59
|
+
- generic [ref=e83]: "0"
|
|
60
|
+
- generic [ref=e84]:
|
|
61
|
+
- generic [ref=e85]: 完成运行
|
|
62
|
+
- generic [ref=e86]: DONE
|
|
63
|
+
- generic [ref=e87]:
|
|
64
|
+
- generic [ref=e88]: 今日失败
|
|
65
|
+
- generic [ref=e91]: "0"
|
|
66
|
+
- generic [ref=e92]:
|
|
67
|
+
- generic [ref=e93]: 需要关注
|
|
68
|
+
- generic [ref=e94]: ALERT
|
|
69
|
+
- generic [ref=e95]:
|
|
70
|
+
- generic [ref=e96]: 今日 tokens
|
|
71
|
+
- generic [ref=e99]: "0"
|
|
72
|
+
- generic [ref=e100]:
|
|
73
|
+
- generic [ref=e101]: 模型消耗
|
|
74
|
+
- generic [ref=e102]: USAGE
|
|
75
|
+
- generic [ref=e103]:
|
|
76
|
+
- generic [ref=e104]: 今日成本
|
|
77
|
+
- generic [ref=e107]: $0.000
|
|
78
|
+
- generic [ref=e108]:
|
|
79
|
+
- generic [ref=e109]: 运行成本
|
|
80
|
+
- generic [ref=e110]: COST
|
|
81
|
+
- generic [ref=e111]:
|
|
82
|
+
- generic [ref=e112]:
|
|
83
|
+
- generic [ref=e113]:
|
|
84
|
+
- generic [ref=e114]:
|
|
85
|
+
- generic [ref=e115]: 实时任务流
|
|
86
|
+
- heading "运行中任务" [level=2] [ref=e118]
|
|
87
|
+
- generic [ref=e119]:
|
|
88
|
+
- generic [ref=e120]: 0 ACTIVE
|
|
89
|
+
- generic [ref=e121]: 监控中
|
|
90
|
+
- generic [ref=e122]:
|
|
91
|
+
- text: NO ACTIVE RUNS
|
|
92
|
+
- generic [ref=e127]: "0"
|
|
93
|
+
- generic [ref=e128]: 队列已清空
|
|
94
|
+
- generic [ref=e129]: 等待新的任务接入蜂巢
|
|
95
|
+
- generic [ref=e130]:
|
|
96
|
+
- generic [ref=e131]: 工作池就绪
|
|
97
|
+
- generic [ref=e134]: 监控在线
|
|
98
|
+
- complementary [ref=e137]:
|
|
99
|
+
- generic [ref=e138]:
|
|
100
|
+
- generic [ref=e139]:
|
|
101
|
+
- generic [ref=e140]:
|
|
102
|
+
- generic [ref=e141]: 资源脉冲
|
|
103
|
+
- heading "近 7 日 tokens" [level=3] [ref=e144]
|
|
104
|
+
- generic [ref=e145]: 7 DAYS
|
|
105
|
+
- generic [ref=e146]:
|
|
106
|
+
- generic "2026-09-17 · 0" [ref=e147]: 09-17
|
|
107
|
+
- generic "2026-09-18 · 0" [ref=e150]: 09-18
|
|
108
|
+
- generic "2026-09-19 · 0" [ref=e153]: 09-19
|
|
109
|
+
- generic "2026-09-20 · 0" [ref=e156]: 09-20
|
|
110
|
+
- generic "2026-09-21 · 0" [ref=e159]: 09-21
|
|
111
|
+
- generic "2026-09-22 · 0" [ref=e162]: 09-22
|
|
112
|
+
- generic "2026-09-23 · 0" [ref=e165]: 09-23
|
|
113
|
+
- generic [ref=e168]:
|
|
114
|
+
- generic [ref=e169]:
|
|
115
|
+
- generic [ref=e170]:
|
|
116
|
+
- generic [ref=e171]: 模型分布
|
|
117
|
+
- heading "近 7 日模型 TOP5" [level=3] [ref=e174]
|
|
118
|
+
- generic [ref=e175]: TOP 5
|
|
119
|
+
- generic [ref=e176]: 暂无调用记录
|
|
120
|
+
- generic [ref=e178]:
|
|
121
|
+
- generic [ref=e179]:
|
|
122
|
+
- generic [ref=e180]:
|
|
123
|
+
- generic [ref=e181]: 事件日志
|
|
124
|
+
- heading "最近动态" [level=3] [ref=e184]
|
|
125
|
+
- generic [ref=e185]: 0 条事件
|
|
126
|
+
- generic [ref=e186]: 还没有已完成的运行
|
|
Binary file
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
- generic [active] [ref=f3e1]:
|
|
2
|
+
- banner [ref=f3e2]:
|
|
3
|
+
- generic [ref=f3e8]:
|
|
4
|
+
- generic [ref=f3e9]: CODEBEE / OPERATIONS
|
|
5
|
+
- generic [ref=f3e10]: 任务驾驶舱
|
|
6
|
+
- generic [ref=f3e11]:
|
|
7
|
+
- generic [ref=f3e13]: 实时监控
|
|
8
|
+
- generic [ref=f3e14]: /
|
|
9
|
+
- generic [ref=f3e15]: 已同步 · 16:30:00
|
|
10
|
+
- generic [ref=f3e16]:
|
|
11
|
+
- generic "执行池占用" [ref=f3e17]: 蜂巢 3/5 · 对话 0/4
|
|
12
|
+
- generic [ref=f3e18]: "--:--:--"
|
|
13
|
+
- main [ref=f3e19]:
|
|
14
|
+
- generic [ref=f3e20]:
|
|
15
|
+
- text: OPERATIONS / STATUS
|
|
16
|
+
- generic [ref=f3e21]:
|
|
17
|
+
- generic [ref=f3e22]: 蜂群状态
|
|
18
|
+
- generic [ref=f3e25]:
|
|
19
|
+
- generic [ref=f3e26]:
|
|
20
|
+
- heading "蜂群运行中" [level=1] [ref=f3e27]
|
|
21
|
+
- paragraph [ref=f3e28]: 当前有 3 个任务正在并行执行
|
|
22
|
+
- generic [ref=f3e29]:
|
|
23
|
+
- strong [ref=f3e30]: "3"
|
|
24
|
+
- generic [ref=f3e31]: 个活动单元
|
|
25
|
+
- generic [ref=f3e32]:
|
|
26
|
+
- generic [ref=f3e33]: 系统状态良好
|
|
27
|
+
- generic [ref=f3e36]: 实时聚合 · 每 4 秒刷新
|
|
28
|
+
- generic [ref=f3e44]:
|
|
29
|
+
- strong [ref=f3e45]: "3"
|
|
30
|
+
- generic [ref=f3e46]: ACTIVE
|
|
31
|
+
- generic [ref=f3e47]:
|
|
32
|
+
- generic [ref=f3e48]: 执行池
|
|
33
|
+
- generic [ref=f3e50]:
|
|
34
|
+
- strong [ref=f3e51]: "3"
|
|
35
|
+
- generic [ref=f3e52]: /
|
|
36
|
+
- generic [ref=f3e53]: "5"
|
|
37
|
+
- emphasis [ref=f3e54]: 在线槽位
|
|
38
|
+
- generic [ref=f3e56]:
|
|
39
|
+
- generic [ref=f3e57]: 队列等待
|
|
40
|
+
- generic [ref=f3e58]: "0"
|
|
41
|
+
- generic [ref=f3e59]:
|
|
42
|
+
- generic [ref=f3e60]: 今日成功率
|
|
43
|
+
- generic [ref=f3e61]: 42%
|
|
44
|
+
- region "核心指标" [ref=f3e62]:
|
|
45
|
+
- generic [ref=f3e63]:
|
|
46
|
+
- generic [ref=f3e64]: 运行中
|
|
47
|
+
- generic [ref=f3e67]: "3"
|
|
48
|
+
- generic [ref=f3e68]:
|
|
49
|
+
- generic [ref=f3e69]: 当前活动
|
|
50
|
+
- generic [ref=f3e70]: LIVE
|
|
51
|
+
- generic [ref=f3e71]:
|
|
52
|
+
- generic [ref=f3e72]: 排队中
|
|
53
|
+
- generic [ref=f3e75]: "0"
|
|
54
|
+
- generic [ref=f3e76]:
|
|
55
|
+
- generic [ref=f3e77]: 等待调度
|
|
56
|
+
- generic [ref=f3e78]: QUEUE
|
|
57
|
+
- generic [ref=f3e79]:
|
|
58
|
+
- generic [ref=f3e80]: 今日完成
|
|
59
|
+
- generic [ref=f3e83]: "11"
|
|
60
|
+
- generic [ref=f3e84]:
|
|
61
|
+
- generic [ref=f3e85]: 完成运行
|
|
62
|
+
- generic [ref=f3e86]: DONE
|
|
63
|
+
- generic [ref=f3e87]:
|
|
64
|
+
- generic [ref=f3e88]: 今日失败
|
|
65
|
+
- generic [ref=f3e91]: "15"
|
|
66
|
+
- generic [ref=f3e92]:
|
|
67
|
+
- generic [ref=f3e93]: 需要关注
|
|
68
|
+
- generic [ref=f3e94]: ALERT
|
|
69
|
+
- generic [ref=f3e95]:
|
|
70
|
+
- generic [ref=f3e96]: 今日 tokens
|
|
71
|
+
- generic [ref=f3e99]: 1.78亿
|
|
72
|
+
- generic [ref=f3e100]:
|
|
73
|
+
- generic [ref=f3e101]: 模型消耗
|
|
74
|
+
- generic [ref=f3e102]: USAGE
|
|
75
|
+
- generic [ref=f3e103]:
|
|
76
|
+
- generic [ref=f3e104]: 今日成本
|
|
77
|
+
- generic [ref=f3e107]: $39.95
|
|
78
|
+
- generic [ref=f3e108]:
|
|
79
|
+
- generic [ref=f3e109]: 运行成本
|
|
80
|
+
- generic [ref=f3e110]: COST
|
|
81
|
+
- generic [ref=f3e111]:
|
|
82
|
+
- generic [ref=f3e112]:
|
|
83
|
+
- generic [ref=f3e113]:
|
|
84
|
+
- generic [ref=f3e114]:
|
|
85
|
+
- generic [ref=f3e115]: 实时任务流
|
|
86
|
+
- heading "运行中任务" [level=2] [ref=f3e118]
|
|
87
|
+
- generic [ref=f3e119]:
|
|
88
|
+
- generic [ref=f3e120]: 3 ACTIVE
|
|
89
|
+
- generic [ref=f3e121]: 监控中
|
|
90
|
+
- generic [ref=f3e122]:
|
|
91
|
+
- generic [ref=f3e123]:
|
|
92
|
+
- generic [ref=f3e124]:
|
|
93
|
+
- generic [ref=f3e125]: Code
|
|
94
|
+
- generic [ref=f3e126]: ZenTao backend coupon management attribute refactor
|
|
95
|
+
- generic [ref=f3e127]: 06:51
|
|
96
|
+
- generic [ref=f3e128]:
|
|
97
|
+
- generic [ref=f3e129]: glm-5.3-flash
|
|
98
|
+
- generic [ref=f3e130]: Bigmodel - API Key
|
|
99
|
+
- generic [ref=f3e131]: Claude Code
|
|
100
|
+
- generic [ref=f3e134]:
|
|
101
|
+
- generic [ref=f3e135]: "#1"
|
|
102
|
+
- generic [ref=f3e136]: Claude Code
|
|
103
|
+
- generic [ref=f3e137]: Running
|
|
104
|
+
- generic [ref=f3e138]: 预估 17:20 · 进度≈40%
|
|
105
|
+
- text: LIVE
|
|
106
|
+
- generic [ref=f3e139]:
|
|
107
|
+
- generic [ref=f3e140]:
|
|
108
|
+
- generic [ref=f3e141]: Docs
|
|
109
|
+
- generic [ref=f3e142]: Knowledge base weekly cleanup 09-23 00:30
|
|
110
|
+
- generic [ref=f3e143]: 08:11
|
|
111
|
+
- generic [ref=f3e144]:
|
|
112
|
+
- generic [ref=f3e145]: glm-5.3-flash
|
|
113
|
+
- generic [ref=f3e146]: Bigmodel - API Key
|
|
114
|
+
- generic [ref=f3e147]: Claude Code
|
|
115
|
+
- generic [ref=f3e150]:
|
|
116
|
+
- generic [ref=f3e151]: "#1"
|
|
117
|
+
- generic [ref=f3e152]: Claude Code
|
|
118
|
+
- generic [ref=f3e153]: Running
|
|
119
|
+
- generic [ref=f3e154]: 预估 15:20 · 进度≈53%
|
|
120
|
+
- text: LIVE
|
|
121
|
+
- generic [ref=f3e155]:
|
|
122
|
+
- generic [ref=f3e156]:
|
|
123
|
+
- generic [ref=f3e157]: Novel
|
|
124
|
+
- generic [ref=f3e158]: Choose a popular novel direction and generate an outline
|
|
125
|
+
- generic [ref=f3e159]: 09:11
|
|
126
|
+
- generic [ref=f3e160]:
|
|
127
|
+
- generic [ref=f3e161]: glm-5.3-flash
|
|
128
|
+
- generic [ref=f3e162]: Bigmodel - API Key
|
|
129
|
+
- generic [ref=f3e163]: Claude Code
|
|
130
|
+
- generic [ref=f3e173]:
|
|
131
|
+
- generic [ref=f3e174]: "#8"
|
|
132
|
+
- generic [ref=f3e175]: Claude Code
|
|
133
|
+
- generic [ref=f3e176]: Running
|
|
134
|
+
- generic [ref=f3e177]: 预估 17:20 · 进度≈53%
|
|
135
|
+
- text: LIVE
|
|
136
|
+
- text: NO ACTIVE RUNS
|
|
137
|
+
- complementary [ref=f3e178]:
|
|
138
|
+
- generic [ref=f3e179]:
|
|
139
|
+
- generic [ref=f3e180]:
|
|
140
|
+
- generic [ref=f3e181]:
|
|
141
|
+
- generic [ref=f3e182]: 资源脉冲
|
|
142
|
+
- heading "近 7 日 tokens" [level=3] [ref=f3e185]
|
|
143
|
+
- generic [ref=f3e186]: 7 DAYS
|
|
144
|
+
- generic [ref=f3e187]:
|
|
145
|
+
- generic "2026-09-17 · 0" [ref=f3e188]: 09-17
|
|
146
|
+
- generic "2026-09-18 · 0" [ref=f3e191]: 09-18
|
|
147
|
+
- generic "2026-09-19 · 2500.0万" [ref=f3e194]: 09-19
|
|
148
|
+
- generic "2026-09-20 · 0" [ref=f3e197]: 09-20
|
|
149
|
+
- generic "2026-09-21 · 5600.0万" [ref=f3e200]: 09-21
|
|
150
|
+
- generic "2026-09-22 · 9600.0万" [ref=f3e203]: 09-22
|
|
151
|
+
- generic "2026-09-23 · 9700.0万" [ref=f3e206]: 09-23
|
|
152
|
+
- generic [ref=f3e209]:
|
|
153
|
+
- generic [ref=f3e210]:
|
|
154
|
+
- generic [ref=f3e211]:
|
|
155
|
+
- generic [ref=f3e212]: 模型分布
|
|
156
|
+
- heading "近 7 日模型 TOP5" [level=3] [ref=f3e215]
|
|
157
|
+
- generic [ref=f3e216]: TOP 5
|
|
158
|
+
- generic [ref=f3e217]:
|
|
159
|
+
- generic [ref=f3e218]:
|
|
160
|
+
- generic "glm-5.3-flash" [ref=f3e219]
|
|
161
|
+
- generic [ref=f3e222]: 1962.5万
|
|
162
|
+
- generic [ref=f3e223]:
|
|
163
|
+
- generic "(default)" [ref=f3e224]
|
|
164
|
+
- generic [ref=f3e227]: 1134.0万
|
|
165
|
+
- generic [ref=f3e228]:
|
|
166
|
+
- generic "deepseek-v4.1-flash" [ref=f3e229]
|
|
167
|
+
- generic [ref=f3e232]: 652.0万
|
|
168
|
+
- generic [ref=f3e233]:
|
|
169
|
+
- generic "[opencode]deepseek-v4" [ref=f3e234]
|
|
170
|
+
- generic [ref=f3e237]: 467.0万
|
|
171
|
+
- generic [ref=f3e238]:
|
|
172
|
+
- generic "gemini-3.8-flash" [ref=f3e239]
|
|
173
|
+
- generic [ref=f3e242]: 278.0万
|
|
174
|
+
- generic [ref=f3e243]:
|
|
175
|
+
- generic [ref=f3e244]:
|
|
176
|
+
- generic [ref=f3e245]:
|
|
177
|
+
- generic [ref=f3e246]: 事件日志
|
|
178
|
+
- heading "最近动态" [level=3] [ref=f3e249]
|
|
179
|
+
- generic [ref=f3e250]: 10 条事件
|
|
180
|
+
- generic [ref=f3e251]:
|
|
181
|
+
- generic [ref=f3e252]:
|
|
182
|
+
- generic "ZenTao backend coupon management" [ref=f3e254]
|
|
183
|
+
- generic [ref=f3e255]: 01:18 · 15:30
|
|
184
|
+
- generic [ref=f3e256]:
|
|
185
|
+
- generic "Knowledge base weekly cleanup" [ref=f3e258]
|
|
186
|
+
- generic [ref=f3e259]: 02:00 · 15:30
|
|
187
|
+
- generic [ref=f3e260]:
|
|
188
|
+
- generic "Novel outline generation" [ref=f3e262]
|
|
189
|
+
- generic [ref=f3e263]: 02:42 · 15:30
|
|
190
|
+
- generic [ref=f3e264]:
|
|
191
|
+
- generic "ZenTao backend coupon management" [ref=f3e266]
|
|
192
|
+
- generic [ref=f3e267]: 03:24 · 15:30
|
|
193
|
+
- generic [ref=f3e268]:
|
|
194
|
+
- generic "Knowledge base weekly cleanup" [ref=f3e270]
|
|
195
|
+
- generic [ref=f3e271]: 04:06 · 15:30
|
|
196
|
+
- generic [ref=f3e272]:
|
|
197
|
+
- generic "Novel outline generation" [ref=f3e274]
|
|
198
|
+
- generic [ref=f3e275]: 04:48 · 15:30
|
|
199
|
+
- generic [ref=f3e276]:
|
|
200
|
+
- generic "ZenTao backend coupon management" [ref=f3e278]
|
|
201
|
+
- generic [ref=f3e279]: 05:30 · 15:30
|
|
202
|
+
- generic [ref=f3e280]:
|
|
203
|
+
- generic "Knowledge base weekly cleanup" [ref=f3e282]
|
|
204
|
+
- generic [ref=f3e283]: 06:12 · 15:30
|
|
205
|
+
- generic [ref=f3e284]:
|
|
206
|
+
- generic "Novel outline generation" [ref=f3e286]
|
|
207
|
+
- generic [ref=f3e287]: 06:54 · 15:30
|
|
208
|
+
- generic [ref=f3e288]:
|
|
209
|
+
- generic "ZenTao backend coupon management" [ref=f3e290]
|
|
210
|
+
- generic [ref=f3e291]: 07:36 · 15:30
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
# -*- coding: utf-8 -*-
|
|
2
|
+
"""Run acceptance matrix and evidence normalization.
|
|
3
|
+
|
|
4
|
+
The matrix keeps correctness, performance, boundary behavior, exception
|
|
5
|
+
handling, readability and security as separate conclusions. Missing evidence
|
|
6
|
+
is reported as ``not_evaluated``/``unknown`` rather than being inferred from a
|
|
7
|
+
successful process exit.
|
|
8
|
+
"""
|
|
9
|
+
from __future__ import annotations
|
|
10
|
+
|
|
11
|
+
import time
|
|
12
|
+
|
|
13
|
+
CASES = ("correctness", "performance", "boundary", "exception",
|
|
14
|
+
"readability", "security")
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def _case(name, status, evidence=None, reason=""):
|
|
18
|
+
return {"case": name, "status": status,
|
|
19
|
+
"evidence": [evidence] if isinstance(evidence, dict) else [],
|
|
20
|
+
"reason": str(reason or "")[:300]}
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
def _quality_verdict(run):
|
|
24
|
+
verdict = run.get("verdict") or {}
|
|
25
|
+
for key in ("pass", "publishable", "verify_pass"):
|
|
26
|
+
if isinstance(verdict.get(key), bool):
|
|
27
|
+
return verdict.get(key), key
|
|
28
|
+
return None, ""
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
def evaluate_run(run, task=None):
|
|
32
|
+
"""Build a deterministic acceptance result from persisted run evidence."""
|
|
33
|
+
run = run or {}
|
|
34
|
+
task = task or {}
|
|
35
|
+
status = str(run.get("status") or "")
|
|
36
|
+
verdict = run.get("verdict") or {}
|
|
37
|
+
out = []
|
|
38
|
+
|
|
39
|
+
correct, source = _quality_verdict(run)
|
|
40
|
+
if status in ("failed", "timeout", "cancelled"):
|
|
41
|
+
out.append(_case("correctness", "unknown",
|
|
42
|
+
{"source": "run.status", "value": status},
|
|
43
|
+
"任务终态未形成可判定的质量结论"))
|
|
44
|
+
elif correct is not None:
|
|
45
|
+
out.append(_case("correctness", "passed" if correct else "failed",
|
|
46
|
+
{"source": "run.verdict", "field": source,
|
|
47
|
+
"value": bool(correct)}))
|
|
48
|
+
else:
|
|
49
|
+
out.append(_case("correctness", "not_evaluated", reason="缺少验证或质量门证据"))
|
|
50
|
+
|
|
51
|
+
duration = run.get("duration_s")
|
|
52
|
+
if duration is None and run.get("started_at") and run.get("ended_at"):
|
|
53
|
+
duration = "recorded"
|
|
54
|
+
has_duration = isinstance(duration, (int, float)) and duration >= 0
|
|
55
|
+
has_usage = any(isinstance(run.get(key), (int, float)) and run.get(key) > 0
|
|
56
|
+
for key in ("tokens", "cost_usd"))
|
|
57
|
+
if has_duration or has_usage:
|
|
58
|
+
out.append(_case("performance", "passed", {
|
|
59
|
+
"source": "run.metrics", "duration_s": duration,
|
|
60
|
+
"tokens": run.get("tokens", 0), "cost_usd": run.get("cost_usd", 0),
|
|
61
|
+
}, "仅表示性能数据已记录,不代表达到业务阈值"))
|
|
62
|
+
else:
|
|
63
|
+
out.append(_case("performance", "not_evaluated", reason="缺少耗时或用量证据"))
|
|
64
|
+
|
|
65
|
+
boundary = verdict.get("boundary_checks")
|
|
66
|
+
if isinstance(boundary, list) and boundary and all(
|
|
67
|
+
isinstance(x, dict) and isinstance(x.get("passed"), bool) for x in boundary):
|
|
68
|
+
failed = [x for x in boundary if x.get("passed") is False]
|
|
69
|
+
out.append(_case("boundary", "failed" if failed else "passed",
|
|
70
|
+
{"source": "run.verdict.boundary_checks", "count": len(boundary),
|
|
71
|
+
"failed": len(failed)}))
|
|
72
|
+
else:
|
|
73
|
+
out.append(_case("boundary", "not_evaluated", reason="当前任务未声明边界检查证据"))
|
|
74
|
+
|
|
75
|
+
exception = verdict.get("exception")
|
|
76
|
+
if isinstance(exception, bool):
|
|
77
|
+
out.append(_case("exception", "passed" if exception else "failed",
|
|
78
|
+
{"source": "run.verdict.exception", "value": exception}))
|
|
79
|
+
elif status in ("failed", "timeout"):
|
|
80
|
+
out.append(_case("exception", "failed" if status in ("failed", "timeout") else "unknown",
|
|
81
|
+
{"source": "run.error", "status": status,
|
|
82
|
+
"error": str(run.get("error") or "")[:300]}))
|
|
83
|
+
elif status == "cancelled":
|
|
84
|
+
out.append(_case("exception", "unknown",
|
|
85
|
+
{"source": "run.status", "value": status}))
|
|
86
|
+
else:
|
|
87
|
+
out.append(_case("exception", "not_evaluated", reason="缺少独立异常处理证据"))
|
|
88
|
+
|
|
89
|
+
for name, key in (("readability", "readability"), ("security", "security")):
|
|
90
|
+
value = verdict.get(key)
|
|
91
|
+
if isinstance(value, bool):
|
|
92
|
+
out.append(_case(name, "passed" if value else "failed",
|
|
93
|
+
{"source": "run.verdict.%s" % key, "value": value}))
|
|
94
|
+
else:
|
|
95
|
+
out.append(_case(name, "not_evaluated", reason="未提供独立 %s 证据" % name))
|
|
96
|
+
|
|
97
|
+
# 总体通过要求六个维度都有明确通过证据;缺证据不能被两个局部绿灯掩盖。
|
|
98
|
+
return {"version": 1, "evaluated_at": time.time(),
|
|
99
|
+
"passed": bool(out and all(x["status"] == "passed" for x in out)),
|
|
100
|
+
"cases": out}
|