codebee 0.1.72 → 0.1.74
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 +12 -0
- package/README.md +4 -4
- package/app/core/analytics.py +38 -0
- package/app/core/bookmeta.py +0 -14
- package/app/core/contracts.py +255 -0
- package/app/core/error_codes.py +9 -0
- package/app/core/flows.py +1 -1
- package/app/core/health.py +14 -1
- package/app/core/jobs.py +54 -1
- package/app/core/manager.py +106 -17
- package/app/core/market.py +2 -2
- package/app/core/modelhub.py +104 -9
- package/app/core/openapi.py +154 -0
- package/app/core/paihang.py +8 -1
- package/app/core/pipeline.py +41 -0
- package/app/core/planner.py +2 -0
- package/app/core/plugins.py +34 -0
- package/app/core/presence.py +77 -0
- package/app/core/publish/auto.py +11 -0
- package/app/core/publish/flow.py +54 -3
- package/app/core/publish/manager.py +215 -28
- package/app/core/publish/qimao.py +30 -0
- package/app/core/retrieval.py +137 -0
- package/app/core/runner.py +85 -2
- package/app/core/skillpacks/fanqie-novel.md +66 -48
- package/app/core/skillpacks/qimao-signing.md +70 -59
- package/app/core/store.py +72 -0
- package/app/core/story_tracking.py +241 -0
- package/app/main.py +205 -48
- package/app/mcp_server.py +75 -6
- package/app/ui/app.js +390 -101
- package/app/ui/i18n.js +36 -7
- package/app/ui/index.html +8 -3
- package/app/ui/style.css +7059 -7040
- package/package.json +1 -1
package/app/ui/i18n.js
CHANGED
|
@@ -743,6 +743,21 @@
|
|
|
743
743
|
"重命名任务": "Rename task",
|
|
744
744
|
"↻ 继续任务": "↻ Resume task",
|
|
745
745
|
"↻ 重写未达标章": "↻ Rewrite unqualified chapters",
|
|
746
|
+
"质量门禁未通过": "Quality gate not passed",
|
|
747
|
+
"重新评审": "Re-review",
|
|
748
|
+
"强制放行…": "Force publish…",
|
|
749
|
+
"「重新评审」只重写未达标章节并重新评审(已过线章节沿用成稿与评分),跑完后再来发布。": "“Re-review” rewrites only the unqualified chapters and reviews them again (qualified chapters keep their drafts and scores). Publish again once it finishes.",
|
|
750
|
+
"已发起重新评审(重写未达标章)——评审完成后再来发布": "Re-review started (rewriting unqualified chapters) — publish again after it finishes",
|
|
751
|
+
"发起重新评审失败:": "Failed to start re-review: ",
|
|
752
|
+
"任务正在运行/排队中,预计 {0} 自动续跑,暂不能重复发起评审;等这轮跑完再来点发布——若质量仍不达标,这里就能点「重新评审」(只重写未达标章)。": "The task is running or queued (auto-resumes around {0}), so a re-review can't be started right now; come back to publish after this run finishes — if quality still falls short, “Re-review” will be clickable here (it rewrites only the unqualified chapters).",
|
|
753
|
+
"任务正在运行/排队中,暂不能重复发起评审;等这轮跑完再来点发布——若质量仍不达标,这里就能点「重新评审」(只重写未达标章)。": "The task is running or queued, so a re-review can't be started right now; come back to publish after this run finishes — if quality still falls short, “Re-review” will be clickable here (it rewrites only the unqualified chapters).",
|
|
754
|
+
"任务运行/排队中,暂不能发起;等这轮跑完再试": "Task is running or queued — wait for this run to finish, then try again",
|
|
755
|
+
"强制放行:请输入人工复核原因(必填)": "Force publish: enter the manual review reason (required)",
|
|
756
|
+
"未填写人工复核原因,已取消强制放行": "No manual review reason entered — force publish cancelled",
|
|
757
|
+
"开始建书": "Start book creation",
|
|
758
|
+
"开始填稿": "Start drafting",
|
|
759
|
+
"开始发布": "Start publishing",
|
|
760
|
+
"结束进程": "Kill process",
|
|
746
761
|
"章节评审": "Chapter Reviews",
|
|
747
762
|
"达标": "passed",
|
|
748
763
|
"未达标": "missed",
|
|
@@ -985,6 +1000,9 @@
|
|
|
985
1000
|
"暂无供应商——点上方「导入」。": "No providers yet — click \"Import\" above.",
|
|
986
1001
|
"没有匹配「": "No matches for \"",
|
|
987
1002
|
"」的供应商。": "\".",
|
|
1003
|
+
"%1 个供应商已停用——点上方「已停用」查看。": "%1 provider(s) disabled — click \"Disabled\" above to show them.",
|
|
1004
|
+
"没有已停用的模型。": "No disabled models.",
|
|
1005
|
+
"%1 个模型已停用——点上方「已停用」查看。": "%1 model(s) disabled — click \"Disabled\" above to show them.",
|
|
988
1006
|
"没有可扫描的来源。": "No scannable sources.",
|
|
989
1007
|
"没有已归档任务": "No archived tasks",
|
|
990
1008
|
"请填写名称": "Please enter a name",
|
|
@@ -1314,7 +1332,7 @@
|
|
|
1314
1332
|
"启用中": "Enabled",
|
|
1315
1333
|
"设为主模型": "Set as primary model",
|
|
1316
1334
|
"单智能体直达(快)": "Single-agent direct (fast)",
|
|
1317
|
-
"抓四平台榜 → AI
|
|
1335
|
+
"抓四平台榜 → AI 选题洞察·附证据分级": "Scan four-platform rankings → AI topic insights with per-item evidence grading",
|
|
1318
1336
|
"新增函数补用例": "Add tests for new functions",
|
|
1319
1337
|
"同类加函数任务,只要verify_pass=false即不得因review_pass=true或高分判定通过;必须将verify失败原因作为修复输入。": "For similar add-a-function tasks, verify_pass=false blocks acceptance regardless of review_pass or high scores; the verify failure details are the input to the next fix.",
|
|
1320
1338
|
"凡主角获取越权信息或关键证据(系统记录、录音、账目),必须当章或前文落实来源链(人脉、留底、委托调查),并让角色当场追问一句'东西哪来的';无来源的特权查询与来历不明的证据一律禁止上稿。": "Whenever the protagonist obtains privileged information or key evidence (system records, recordings, ledgers), establish the source chain in the same or an earlier chapter and have a character ask \"where did this come from\" on the spot; unsourced privileged queries and evidence of unknown origin are banned from the manuscript.",
|
|
@@ -1611,7 +1629,7 @@
|
|
|
1611
1629
|
"经验包": "Packs",
|
|
1612
1630
|
"外部目录": "External catalog",
|
|
1613
1631
|
"市场视图": "Market view",
|
|
1614
|
-
"外部目录聚合公开生态:ZCode、Anthropic、Anthropic 官方技能、社区多端技能库(Codex / Gemini
|
|
1632
|
+
"外部目录聚合公开生态:ZCode、Anthropic、Anthropic 官方技能、社区多端技能库(Codex / Gemini 兼容)、ClawHub 与 CocoLoop。本平台只注入纯技能内容(文档型);插件包里的脚本、钩子或 MCP 组件会在安装时自动剥离并告知,绝不会被写入或执行。装好的技能不会单独「运行」,而是作为经验内容自动注入相关任务的提示词。": "External catalogs aggregate public ecosystems: ZCode, Anthropic, official Anthropic skills, a community multi-agent skill library (Codex / Gemini compatible), ClawHub, and CocoLoop. Only pure skill content (docs) is ever injected; scripts, hooks and MCP components are stripped at install time and reported — never written or executed. Installed skills are not run standalone: they become experience content auto-injected into the prompts of related tasks.",
|
|
1615
1633
|
"该插件无法从公开生态下载": "This plugin can't be fetched from the public ecosystem",
|
|
1616
1634
|
";已自动剥离脚本/钩子/MCP 文件:": "; stripped scripts/hooks/MCP files: ",
|
|
1617
1635
|
" 等 ": " and ",
|
|
@@ -2067,11 +2085,6 @@
|
|
|
2067
2085
|
"章节已就绪,创建作品还差开书资料。点平台按钮一键生成(书名/简介/标签/主角名),生成后逐字段复制进建书表单。": "Chapters are ready — what's missing is the signup data. Click a platform button to generate (title/synopsis/tags/protagonists) in one go, then copy each field into the signup form.",
|
|
2068
2086
|
"章节已就绪,创建作品还差开书资料": "Chapters are ready — what's missing is the signup data",
|
|
2069
2087
|
"继承自首批": "Inherited from batch 1",
|
|
2070
|
-
"回首批任务": "Go to first-batch task",
|
|
2071
|
-
"开书资料在首批任务上生成与维护": "Book-signup data is generated and maintained on the first-batch task",
|
|
2072
|
-
"首批任务还没生成开书资料": "The first-batch task hasn't generated book-signup data yet",
|
|
2073
|
-
"开书资料属于这本书,在首批任务上生成后整条连载链都能看到。": "Book-signup data belongs to the book itself — generate it once on the first batch and the whole serial chain can see it.",
|
|
2074
|
-
"找不到首批任务(可能已删除)": "First-batch task not found (it may have been deleted)",
|
|
2075
2088
|
"点平台卡片上的「生成」按钮,一键产出书名/简介/标签/主角名等建书资料,生成后逐字段复制进建书表单。": "Click “Generate” on a platform card to produce the signup data (title/synopsis/tags/protagonists) in one go, then copy each field into the signup form.",
|
|
2076
2089
|
"任务运行中,生成将在本轮结束后可用": "Task is running — generation unlocks after this round finishes",
|
|
2077
2090
|
"已生成": "Generated",
|
|
@@ -2823,6 +2836,22 @@
|
|
|
2823
2836
|
"推荐": "Recommended",
|
|
2824
2837
|
"摘要列表": "Digest list",
|
|
2825
2838
|
"操作失败": "Operation failed",
|
|
2839
|
+
"立即重试": "Retry now",
|
|
2840
|
+
"不等自动续跑的退避等待,马上接着跑;连载任务从断点继续,已完成章节不重写": "Skip the auto-resume backoff wait and continue right away; serial tasks resume from the breakpoint — finished chapters are never rewritten",
|
|
2841
|
+
"已跳过等待,马上继续": "Wait skipped — resuming now",
|
|
2842
|
+
"任务契约": "Task contract",
|
|
2843
|
+
"验收": "Acceptance",
|
|
2844
|
+
"审批": "Approval",
|
|
2845
|
+
"待审批": "Approval required",
|
|
2846
|
+
"已审批": "Approved",
|
|
2847
|
+
"无需审批": "No approval",
|
|
2848
|
+
"待验收": "Pending",
|
|
2849
|
+
"批准发布": "Approve release",
|
|
2850
|
+
"已批准发布": "Release approved",
|
|
2851
|
+
"标记通过": "Mark passed",
|
|
2852
|
+
"标记失败": "Mark failed",
|
|
2853
|
+
"证据说明(可空)": "Evidence note (optional)",
|
|
2854
|
+
"证据已记录": "Evidence recorded",
|
|
2826
2855
|
"新建任务": "New task",
|
|
2827
2856
|
"新建钩子": "New hook",
|
|
2828
2857
|
"正在删除任务…": "Deleting task…",
|
package/app/ui/index.html
CHANGED
|
@@ -481,6 +481,10 @@
|
|
|
481
481
|
<div class="field"><label data-i18n="任务标题">任务标题</label><input id="f-title" placeholder="可空,自动取目标首行" data-i18n-ph="可空,自动取目标首行"></div>
|
|
482
482
|
</div>
|
|
483
483
|
<div class="field"><label data-i18n="上下文">上下文</label><textarea id="f-context" rows="2" placeholder="背景信息、约束、相关文件(可空)" data-i18n-ph="背景信息、约束、相关文件(可空)"></textarea></div>
|
|
484
|
+
<div class="grid-2">
|
|
485
|
+
<div class="field"><label>验收标准(每行一条)</label><textarea id="f-acceptance" rows="3" placeholder="例如:测试全部通过 例如:产出文件存在"></textarea></div>
|
|
486
|
+
<div class="field"><label class="checkline"><input id="f-approval-required" type="checkbox"> 完成前需要人工审批</label><p class="hint">启用后,Git 合并和发布会等待审批记录。</p></div>
|
|
487
|
+
</div>
|
|
484
488
|
|
|
485
489
|
<div id="f-code-only">
|
|
486
490
|
<div class="field"><label data-i18n="验证命令">验证命令</label><input id="f-verify" placeholder="例:python -m pytest -q(可空=只评审)" data-i18n-ph="例:python -m pytest -q(可空=只评审)"></div>
|
|
@@ -544,6 +548,7 @@
|
|
|
544
548
|
<div class="rd-actions">
|
|
545
549
|
<button id="btn-pause" class="ghost hidden" data-i18n="暂停">暂停</button>
|
|
546
550
|
<button data-i18n="取消运行" id="btn-cancel" class="danger hidden">取消运行</button>
|
|
551
|
+
<button data-i18n="立即重试" id="btn-resume-now" class="primary hidden" data-i18n-title="不等自动续跑的退避等待,马上接着跑;连载任务从断点继续,已完成章节不重写" title="不等自动续跑的退避等待,马上接着跑;连载任务从断点继续,已完成章节不重写">立即重试</button>
|
|
547
552
|
<button data-i18n="↻ 继续任务" id="btn-retry" class="primary hidden" data-i18n-title="再跑一次这个任务;连载任务会断点续跑,已完成章节不重写" title="再跑一次这个任务;连载任务会断点续跑,已完成章节不重写">↻ 继续任务</button>
|
|
548
553
|
<button data-i18n="✎ 编辑重试" id="btn-editretry" class="ghost hidden" data-i18n-title="取回原任务的目标/目录/评审设置,修改后提交即重新开跑" title="取回原任务的目标/目录/评审设置,修改后提交即重新开跑">✎ 编辑重试</button>
|
|
549
554
|
<button data-i18n="继续连载" id="btn-continue" class="ghost hidden">继续连载</button>
|
|
@@ -893,8 +898,8 @@
|
|
|
893
898
|
<div class="panel wide">
|
|
894
899
|
<div class="panel-head"><h2 data-i18n="模型调度(可选)">模型调度(可选)</h2>
|
|
895
900
|
<button class="hhelp" data-help-topic="models" title="这是什么?点开看帮助" data-i18n-title="这是什么?点开看帮助" aria-label="帮助" data-i18n-aria="帮助"><svg class="ico" aria-hidden="true"><use href="#i-help"></use></svg></button>
|
|
896
|
-
<button id="btn-autobind" class="ghost small" onclick="autoBindAll()" data-i18n="生成推荐指定方案">生成推荐指定方案</button>
|
|
897
|
-
<button id="btn-saveall-bind" class="ghost small hidden" onclick="saveAllBindings()" data-i18n="全部保存">全部保存</button>
|
|
901
|
+
<div class="actions"><button id="btn-autobind" class="ghost small" onclick="autoBindAll()" data-i18n="生成推荐指定方案">生成推荐指定方案</button>
|
|
902
|
+
<button id="btn-saveall-bind" class="ghost small hidden" onclick="saveAllBindings()" data-i18n="全部保存">全部保存</button></div>
|
|
898
903
|
</div>
|
|
899
904
|
<p data-i18n="默认无需绑定:CodeBee 会按任务类型、步骤角色、难度、成本、协议兼容性和健康状态动态推荐厂商与模型,并在无可用供应商时回落 CLI 自身配置。只有需要固定厂商、模型或跨厂商降级顺序时才在这里指定;显式指定会覆盖自动推荐,但不改写 CLI 全局配置。" class="hint">默认无需绑定:CodeBee 会按任务类型、步骤角色、难度、成本、协议兼容性和健康状态动态推荐厂商与模型,并在无可用供应商时回落 CLI 自身配置。只有需要固定厂商、模型或跨厂商降级顺序时才在这里指定;显式指定会覆盖自动推荐,但不改写 CLI 全局配置。</p>
|
|
900
905
|
<div id="binding-list" class="cards"></div>
|
|
@@ -920,7 +925,7 @@
|
|
|
920
925
|
<div id="sub-knowledge" class="subpage hidden">
|
|
921
926
|
<div class="panel wide">
|
|
922
927
|
<div class="panel-head"><h2 data-i18n="知识库">知识库</h2>
|
|
923
|
-
<button class="ghost small" onclick="kbFormOpen(null)"><svg class="ico" aria-hidden="true"><use href="#i-plus"></use></svg><span data-i18n="新建条目">新建条目</span></button></div>
|
|
928
|
+
<div class="actions"><button class="ghost small" onclick="kbFormOpen(null)"><svg class="ico" aria-hidden="true"><use href="#i-plus"></use></svg><span data-i18n="新建条目">新建条目</span></button></div></div>
|
|
924
929
|
<p class="hint"><span data-i18n="运行产出自动整理成的可复用知识:">运行产出自动整理成的可复用知识:</span><span data-i18n="任务结束由编排者从产出材料自动提炼,默认直接转正参与注入;也可以手动新建——同时是你自己的知识管理库。条目按任务类型与相关性自动注入同类任务的规划与评审提示词。">任务结束由编排者从产出材料自动提炼,默认直接转正参与注入;也可以手动新建——同时是你自己的知识管理库。条目按任务类型与相关性自动注入同类任务的规划与评审提示词。</span></p>
|
|
925
930
|
<div class="kb-toolbar">
|
|
926
931
|
<input id="kb-search" data-i18n-ph="搜索标题 / 正文 / 标签" placeholder="搜索标题 / 正文 / 标签" oninput="kbSearch(this.value)">
|