codebee 0.1.34 → 0.1.36
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 +26 -5
- package/README.md +20 -0
- package/app/core/market.py +7 -2
- package/app/core/pipeline.py +3807 -3807
- package/app/core/portscan.py +66 -12
- package/app/core/skills.py +48 -3
- package/app/core/zentao.py +32 -7
- package/app/pet.py +46 -8
- package/app/ui/app.js +96 -33
- package/app/ui/i18n.js +14 -2
- package/app/ui/index.html +26 -22
- package/app/ui/style.css +40 -13
- package/package.json +1 -1
package/app/ui/index.html
CHANGED
|
@@ -305,6 +305,31 @@
|
|
|
305
305
|
<div id="cmp-quick" class="cmp-quick" role="group" aria-label="常用类型" data-i18n-aria="常用类型"></div>
|
|
306
306
|
<!-- 开跑前成本预估(refreshEstimate 填充;无同类样本时保持隐藏) -->
|
|
307
307
|
<p class="hint cmp-estimate hidden" id="cmp-estimate"></p>
|
|
308
|
+
<!-- 编排偏好贴输入框(用户拍板「放上来」:不再折叠进更多选项) -->
|
|
309
|
+
<div class="cmp-prefs" id="cmp-prefs">
|
|
310
|
+
<div class="field">
|
|
311
|
+
<label data-i18n="编排模式">编排模式</label>
|
|
312
|
+
<select id="f-mode">
|
|
313
|
+
<option data-i18n="自动(推荐):按任务类型与风险动态决定步骤" value="auto">自动(推荐):按任务类型与风险动态决定步骤</option>
|
|
314
|
+
<option data-i18n="快速:少步骤优先,先做确定性验收" value="fast">快速:少步骤优先,先做确定性验收</option>
|
|
315
|
+
<option data-i18n="专家:完整规划、多评审、失败修复与换将" value="expert">专家:完整规划、多评审、失败修复与换将</option>
|
|
316
|
+
<option data-i18n="手动:自行指定实现者与评审组" value="manual">手动:自行指定实现者与评审组</option>
|
|
317
|
+
</select>
|
|
318
|
+
</div>
|
|
319
|
+
<div class="field">
|
|
320
|
+
<label data-i18n="思考程度">思考程度</label>
|
|
321
|
+
<select id="f-thinking">
|
|
322
|
+
<option data-i18n="标准:平衡质量与速度" value="standard" selected>标准:平衡质量与速度</option>
|
|
323
|
+
<option data-i18n="自动:随任务难度调整" value="auto">自动:随任务难度调整</option>
|
|
324
|
+
<option data-i18n="快速:少推理、优先响应" value="low">快速:少推理、优先响应</option>
|
|
325
|
+
<option data-i18n="深度:更多推理与检查" value="high">深度:更多推理与检查</option>
|
|
326
|
+
</select>
|
|
327
|
+
</div>
|
|
328
|
+
<div id="f-direct-model" class="field hidden"><label data-i18n="对话模型(可选)">对话模型(可选)</label><div class="grid-2">
|
|
329
|
+
<select id="f-direct-provider" aria-label="对话厂商" data-i18n-aria="对话厂商"><option data-i18n="自动推荐">自动推荐</option></select>
|
|
330
|
+
<select id="f-direct-model-name" aria-label="对话模型" data-i18n-aria="对话模型"><option data-i18n="随厂商推荐">随厂商推荐</option></select>
|
|
331
|
+
</div><p class="hint" data-i18n="只对本次对话生效,不会修改全局绑定;指定渠道不可用时会明确报错。">只对本次对话生效,不会修改全局绑定;指定渠道不可用时会明确报错。</p></div>
|
|
332
|
+
</div>
|
|
308
333
|
<!-- 需求拷问采访卡(renderClarify 渲染;goal 模糊时出现,跳过=直接创建) -->
|
|
309
334
|
<div id="clarify-box" class="clarify-box hidden"></div>
|
|
310
335
|
<div class="field hidden" id="row-resume-session">
|
|
@@ -326,27 +351,6 @@
|
|
|
326
351
|
<div class="field"><label data-i18n="任务标题">任务标题</label><input id="f-title" placeholder="可空,自动取目标首行" data-i18n-ph="可空,自动取目标首行"></div>
|
|
327
352
|
</div>
|
|
328
353
|
<div class="field"><label data-i18n="上下文">上下文</label><textarea id="f-context" rows="2" placeholder="背景信息、约束、相关文件(可空)" data-i18n-ph="背景信息、约束、相关文件(可空)"></textarea></div>
|
|
329
|
-
<div class="field">
|
|
330
|
-
<label data-i18n="编排模式">编排模式</label>
|
|
331
|
-
<select id="f-mode">
|
|
332
|
-
<option data-i18n="自动(推荐):按任务类型与风险动态决定步骤" value="auto">自动(推荐):按任务类型与风险动态决定步骤</option>
|
|
333
|
-
<option data-i18n="快速:少步骤优先,先做确定性验收" value="fast">快速:少步骤优先,先做确定性验收</option>
|
|
334
|
-
<option data-i18n="专家:完整规划、多评审、失败修复与换将" value="expert">专家:完整规划、多评审、失败修复与换将</option>
|
|
335
|
-
<option data-i18n="手动:自行指定实现者与评审组" value="manual">手动:自行指定实现者与评审组</option>
|
|
336
|
-
</select>
|
|
337
|
-
</div>
|
|
338
|
-
<div class="grid-2">
|
|
339
|
-
<div class="field"><label data-i18n="思考程度">思考程度</label><select id="f-thinking">
|
|
340
|
-
<option data-i18n="标准:平衡质量与速度" value="standard" selected>标准:平衡质量与速度</option>
|
|
341
|
-
<option data-i18n="自动:随任务难度调整" value="auto">自动:随任务难度调整</option>
|
|
342
|
-
<option data-i18n="快速:少推理、优先响应" value="low">快速:少推理、优先响应</option>
|
|
343
|
-
<option data-i18n="深度:更多推理与检查" value="high">深度:更多推理与检查</option>
|
|
344
|
-
</select></div>
|
|
345
|
-
<div id="f-direct-model" class="field hidden"><label data-i18n="对话模型(可选)">对话模型(可选)</label><div class="grid-2">
|
|
346
|
-
<select id="f-direct-provider" aria-label="对话厂商" data-i18n-aria="对话厂商"><option data-i18n="自动推荐">自动推荐</option></select>
|
|
347
|
-
<select id="f-direct-model-name" aria-label="对话模型" data-i18n-aria="对话模型"><option data-i18n="随厂商推荐">随厂商推荐</option></select>
|
|
348
|
-
</div><p class="hint" data-i18n="只对本次对话生效,不会修改全局绑定;指定渠道不可用时会明确报错。">只对本次对话生效,不会修改全局绑定;指定渠道不可用时会明确报错。</p></div>
|
|
349
|
-
</div>
|
|
350
354
|
|
|
351
355
|
<div id="f-code-only">
|
|
352
356
|
<div class="field"><label data-i18n="验证命令">验证命令</label><input id="f-verify" placeholder="例:python -m pytest -q(可空=只评审)" data-i18n-ph="例:python -m pytest -q(可空=只评审)"></div>
|
|
@@ -797,7 +801,7 @@
|
|
|
797
801
|
<!-- 群摘要(正式设置子页:配置与摘要一体,替代原右下角悬浮蜜蜂坞) -->
|
|
798
802
|
<div id="sub-__wxdigest" class="subpage hidden">
|
|
799
803
|
<div class="panel wide">
|
|
800
|
-
<div class="panel-head"><h2 data-i18n="群摘要">群摘要</h2><span class="spacer"></span><button id="bee-scan-btn" class="ghost small" data-i18n
|
|
804
|
+
<div class="panel-head"><h2 data-i18n="群摘要">群摘要</h2><span class="spacer"></span><button id="bee-scan-btn" class="ghost small" data-i18n-title="立即扫描" title="立即扫描"><svg class="ico" aria-hidden="true"><use href="#i-refresh"></use></svg><span data-i18n="立即扫描">立即扫描</span></button></div>
|
|
801
805
|
<p class="hint" data-i18n="导出 txt 丢进监控文件夹,或开启微信直连由蜜蜂自动拉取;按间隔增量生成每群摘要。记录只存本地;摘要请求会发给当前绑定的模型,桌面小蜜蜂会提醒新摘要。">导出 txt 丢进监控文件夹,或开启微信直连由蜜蜂自动拉取;按间隔增量生成每群摘要。记录只存本地;摘要请求会发给当前绑定的模型,桌面小蜜蜂会提醒新摘要。</p>
|
|
802
806
|
<div id="bee-cfg" class="bee-cfg">
|
|
803
807
|
<label class="toggle"><input id="bee-enabled" type="checkbox"> <span data-i18n="启用定时扫描">启用定时扫描</span></label>
|
package/app/ui/style.css
CHANGED
|
@@ -5597,19 +5597,46 @@ button.request-busy > * { opacity: .18; }
|
|
|
5597
5597
|
#sub-__wxdigest .bee-list { max-height: 52vh; overflow: auto; }
|
|
5598
5598
|
#sub-__wxdigest .bee-groups-list { max-height: 240px; }
|
|
5599
5599
|
|
|
5600
|
-
/* 连载章节评审卡:均分徽标 + 逐项目标审稿(event_check
|
|
5600
|
+
/* 连载章节评审卡:均分徽标 + 逐项目标审稿(event_check)行级红绿。
|
|
5601
|
+
* 类名用 ch- 前缀——曾撞代码设置的 .cs-row(后加载覆盖成纵向卡片,
|
|
5602
|
+
* 设置页「代码设置」整列变居中竖排,2026-09-21 用户反馈)。 */
|
|
5601
5603
|
.rd-chapters { margin: 8px 0; }
|
|
5602
|
-
.
|
|
5604
|
+
.ch-row { border: 1px solid var(--border, rgba(128,128,128,.22)); border-radius: 8px;
|
|
5603
5605
|
padding: 8px 10px; margin: 6px 0; display: flex; flex-direction: column; gap: 4px; }
|
|
5604
|
-
.
|
|
5605
|
-
.
|
|
5606
|
-
.
|
|
5607
|
-
.
|
|
5608
|
-
.
|
|
5609
|
-
.
|
|
5606
|
+
.ch-row.fail { border-color: color-mix(in srgb, var(--bad) 45%, transparent); }
|
|
5607
|
+
.ch-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
|
|
5608
|
+
.ch-title { color: var(--muted); font-size: 12.5px; }
|
|
5609
|
+
.ch-meta { margin-left: auto; color: var(--muted); font-size: 12px; }
|
|
5610
|
+
.ch-dims { display: flex; gap: 6px; flex-wrap: wrap; }
|
|
5611
|
+
.ch-dim { font-size: 11.5px; padding: 1px 8px; border-radius: 999px;
|
|
5610
5612
|
background: color-mix(in srgb, var(--ok) 12%, transparent); }
|
|
5611
|
-
.
|
|
5612
|
-
.
|
|
5613
|
-
.
|
|
5614
|
-
.
|
|
5615
|
-
.
|
|
5613
|
+
.ch-dim.low { background: color-mix(in srgb, var(--bad) 14%, transparent); }
|
|
5614
|
+
.ch-evs { display: flex; flex-direction: column; gap: 2px; font-size: 12px; }
|
|
5615
|
+
.ch-ev { padding-left: 10px; border-left: 2px solid var(--border); color: var(--muted); }
|
|
5616
|
+
.ch-ev.ok { border-left-color: var(--ok); color: inherit; }
|
|
5617
|
+
.ch-ev.bad { border-left-color: var(--bad); color: inherit; }
|
|
5618
|
+
|
|
5619
|
+
/* composer 内编排偏好行:编排模式/思考程度/对话模型贴着输入框(2026-09-21
|
|
5620
|
+
* 用户拍板「放上来」,不再折叠进「更多选项」)。字段横向紧凑排布,窄屏换行。 */
|
|
5621
|
+
.cmp-prefs { display: flex; flex-wrap: wrap; gap: 8px 20px; padding: 6px 2px 2px; }
|
|
5622
|
+
.cmp-prefs > .field { display: flex; align-items: center; gap: 8px; flex: 1 1 260px;
|
|
5623
|
+
min-width: 0; margin: 0; }
|
|
5624
|
+
.cmp-prefs > .field > label { white-space: nowrap; flex: none; margin: 0;
|
|
5625
|
+
font-size: 12.5px; color: var(--muted); }
|
|
5626
|
+
.cmp-prefs > .field > select { flex: 1 1 auto; min-width: 0; width: auto; }
|
|
5627
|
+
/* 对话模型(可选)默认整行:label + 双下拉 + 说明文字 */
|
|
5628
|
+
.cmp-prefs > #f-direct-model { flex: 1 1 100%; align-items: center; }
|
|
5629
|
+
.cmp-prefs > #f-direct-model > .grid-2 { flex: 1 1 auto; min-width: 0; }
|
|
5630
|
+
.cmp-prefs > #f-direct-model > .hint { flex: 1 1 100%; margin: 0; }
|
|
5631
|
+
|
|
5632
|
+
/* 插件市场:内置/已安装/可安装分区标题与已装启停开关(对齐 ZCode 形态) */
|
|
5633
|
+
#mk-grid .sec-title { margin: 14px 0 6px; }
|
|
5634
|
+
.mk-sec { background: color-mix(in srgb, var(--accent) 12%, transparent); }
|
|
5635
|
+
.mk-card .switch { display: inline-flex; align-items: center; cursor: pointer; }
|
|
5636
|
+
.mk-card .switch input { appearance: none; width: 34px; height: 19px;
|
|
5637
|
+
border-radius: 999px; background: var(--border, rgba(128,128,128,.4));
|
|
5638
|
+
position: relative; cursor: pointer; transition: background .15s; margin: 0; }
|
|
5639
|
+
.mk-card .switch input:checked { background: var(--accent); }
|
|
5640
|
+
.mk-card .switch input::after { content: ""; position: absolute; top: 2px; left: 2px;
|
|
5641
|
+
width: 15px; height: 15px; border-radius: 50%; background: #fff; transition: left .15s; }
|
|
5642
|
+
.mk-card .switch input:checked::after { left: 17px; }
|
package/package.json
CHANGED