codebee 0.1.21 → 0.1.23
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 +183 -171
- package/README.md +32 -6
- package/app/core/aiflavor.py +63 -9
- package/app/core/knowledge.py +19 -7
- package/app/core/pipeline.py +146 -6
- package/app/core/portscan.py +188 -0
- package/app/core/router.py +57 -5
- package/app/core/skills.py +26 -47
- package/app/core/task_compile.py +87 -0
- package/app/main.py +42 -0
- package/app/pet.py +125 -28
- package/app/ui/app.js +264 -18
- package/app/ui/i18n.js +35 -0
- package/app/ui/index.html +1143 -1137
- package/app/ui/style.css +64 -0
- package/package.json +1 -1
package/app/ui/style.css
CHANGED
|
@@ -5392,3 +5392,67 @@ body.welcome-open { overflow: hidden; }
|
|
|
5392
5392
|
#rd-chat-voice.live { color: var(--bad); animation: cb-rise .6s ease infinite alternate; }
|
|
5393
5393
|
/* 设置导航标题保持单行,避免较长标题在手机抽屉里增高并把末尾入口推离视口。 */
|
|
5394
5394
|
.side-settings .set-item { white-space: nowrap; }
|
|
5395
|
+
|
|
5396
|
+
/* ---------------- 请求即时反馈(统一 api 写操作,追加于文件尾防并行重排) ---------------- */
|
|
5397
|
+
.request-progress {
|
|
5398
|
+
position: fixed; z-index: 320; top: 0; left: 0; width: 34%; height: 2px;
|
|
5399
|
+
background: var(--accent); opacity: 0; pointer-events: none;
|
|
5400
|
+
transform: translateX(-110%);
|
|
5401
|
+
}
|
|
5402
|
+
.request-progress.active {
|
|
5403
|
+
opacity: 1;
|
|
5404
|
+
animation: request-progress-run 1.15s ease-in-out infinite;
|
|
5405
|
+
}
|
|
5406
|
+
@keyframes request-progress-run {
|
|
5407
|
+
0% { transform: translateX(-110%); }
|
|
5408
|
+
70% { transform: translateX(185%); }
|
|
5409
|
+
100% { transform: translateX(300%); }
|
|
5410
|
+
}
|
|
5411
|
+
button.request-busy {
|
|
5412
|
+
position: relative; pointer-events: none; cursor: wait;
|
|
5413
|
+
}
|
|
5414
|
+
button.request-busy::after {
|
|
5415
|
+
content: ""; position: absolute; left: 50%; top: 50%; width: 14px; height: 14px;
|
|
5416
|
+
margin: -8px 0 0 -8px; border: 2px solid currentColor; border-right-color: transparent;
|
|
5417
|
+
border-radius: 50%; animation: request-busy-spin .7s linear infinite;
|
|
5418
|
+
}
|
|
5419
|
+
button.request-busy > * { opacity: .18; }
|
|
5420
|
+
@keyframes request-busy-spin { to { transform: rotate(360deg); } }
|
|
5421
|
+
@media (prefers-reduced-motion: reduce) {
|
|
5422
|
+
.request-progress.active { animation: none; transform: translateX(95%); }
|
|
5423
|
+
button.request-busy::after { animation-duration: 1.4s; }
|
|
5424
|
+
}
|
|
5425
|
+
|
|
5426
|
+
/* ---------------- 任务画像与调度审计(追加于文件尾) ----------------
|
|
5427
|
+
* 编译后的任务画像与实际路由默认只展示主选,候选评分按需展开。 */
|
|
5428
|
+
.rd-routing {
|
|
5429
|
+
margin: 0 0 16px; padding: 12px 14px;
|
|
5430
|
+
border: 1px solid var(--border); border-radius: var(--r-md);
|
|
5431
|
+
background: color-mix(in srgb, var(--panel) 82%, var(--panel2));
|
|
5432
|
+
min-width: 0; overflow: hidden;
|
|
5433
|
+
}
|
|
5434
|
+
.rd-routing-head, .rd-route-role-head {
|
|
5435
|
+
display: flex; align-items: baseline; gap: 10px; min-width: 0;
|
|
5436
|
+
}
|
|
5437
|
+
.rd-routing-head { margin-bottom: 6px; }
|
|
5438
|
+
.rd-routing-title { color: var(--text); font-size: 12.5px; font-weight: 700; }
|
|
5439
|
+
.rd-routing-spec { color: var(--muted); font-size: 11.5px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
5440
|
+
.rd-routing-caps { color: var(--muted); font-size: 11.5px; line-height: 1.5; overflow-wrap: anywhere; }
|
|
5441
|
+
.rd-routing-caps span { margin-right: 5px; }
|
|
5442
|
+
.rd-route-roles { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin-top: 10px; }
|
|
5443
|
+
.rd-route-role { min-width: 0; padding-top: 8px; border-top: 1px solid var(--border); }
|
|
5444
|
+
.rd-route-role-head b { color: var(--muted); font-size: 11px; font-weight: 600; }
|
|
5445
|
+
.rd-route-role-head span { color: var(--text); font-size: 12.5px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
5446
|
+
.rd-route-fallback { margin-top: 4px; color: var(--muted); font-size: 11px; overflow-wrap: anywhere; }
|
|
5447
|
+
.rd-route-selection { margin-top: 4px; color: var(--muted); font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
|
|
5448
|
+
.rd-route-candidates { margin-top: 6px; font-size: 11px; }
|
|
5449
|
+
.rd-route-candidates summary { cursor: pointer; color: var(--accent); user-select: none; }
|
|
5450
|
+
.rd-route-row { display: grid; grid-template-columns: 42px minmax(86px, 140px) minmax(0, 1fr); gap: 7px; align-items: baseline; margin-top: 5px; min-width: 0; }
|
|
5451
|
+
.rd-route-score { color: var(--text); font-family: var(--mono); text-align: right; }
|
|
5452
|
+
.rd-route-agent { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
|
|
5453
|
+
.rd-route-reason { color: var(--muted); min-width: 0; overflow-wrap: anywhere; }
|
|
5454
|
+
@media (max-width: 640px) {
|
|
5455
|
+
.rd-route-roles { grid-template-columns: 1fr; }
|
|
5456
|
+
.rd-route-row { grid-template-columns: 38px minmax(72px, 1fr); }
|
|
5457
|
+
.rd-route-reason { grid-column: 2; }
|
|
5458
|
+
}
|
package/package.json
CHANGED