codebee 0.1.100 → 0.1.102

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/app/ui/style.css CHANGED
@@ -3888,6 +3888,10 @@ body.inspector-open #run-detail #rd-log.rd-logdrawer {
3888
3888
  .rd-checkpoints-head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
3889
3889
  .rd-checkpoints-head strong { margin-right: auto; }
3890
3890
  .rd-checkpoint-row, .rd-memory-row { padding: 9px 0; border-top: 1px solid var(--border); }
3891
+ .rd-checkpoint-steps { margin: 8px 0 12px; padding: 10px; border: 1px solid var(--border); border-radius: 10px; }
3892
+ .rd-checkpoint-step { display: flex; justify-content: space-between; align-items: center; gap: 8px; padding: 5px 0; border-top: 1px dashed var(--border); font-size: 12px; }
3893
+ .rd-checkpoint-step > :first-child { overflow-wrap: anywhere; }
3894
+ .rd-acp-plan-entry { padding-left: 14px; color: var(--muted); }
3891
3895
  .rd-checkpoint-row > strong { margin-right: 8px; overflow-wrap: anywhere; }
3892
3896
  .rd-checkpoint-row pre, .rd-memory-row pre {
3893
3897
  max-height: 240px; overflow: auto; white-space: pre-wrap; overflow-wrap: anywhere;
@@ -7194,8 +7198,15 @@ main.browser-page-active #page-settings > #sub-browser .browser-shell {
7194
7198
  .hive-scene-page-label { white-space: nowrap; font-family: var(--mono); }
7195
7199
  .hive-viewport {
7196
7200
  position: relative; width: 100%; aspect-ratio: 2848 / 1600; overflow: hidden;
7197
- container-type: inline-size; border: 1px solid var(--border); border-radius: 12px;
7198
- background: #d4e7f7; cursor: grab; touch-action: pan-y;
7201
+ container-type: inline-size; isolation: isolate;
7202
+ border: 1px solid color-mix(in srgb, #6aa9d2 30%, var(--border)); border-radius: 16px;
7203
+ background: radial-gradient(ellipse at 50% 22%, #eef8ff 0%, #dcecf8 58%, #c9dfef 100%);
7204
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.82), 0 18px 46px rgba(17,55,83,.12);
7205
+ cursor: grab; touch-action: pan-y;
7206
+ }
7207
+ .hive-viewport::after {
7208
+ position: absolute; inset: 0; z-index: 3; border-radius: inherit; pointer-events: none;
7209
+ content: ""; box-shadow: inset 0 0 0 1px rgba(255,255,255,.28), inset 0 -34px 56px rgba(18,61,91,.055);
7199
7210
  }
7200
7211
  .hive-viewport.is-dragging { cursor: grabbing; }
7201
7212
  .hive-reference-layer { position: absolute; inset: 0; transform-origin: center; }
@@ -7204,33 +7215,53 @@ main.browser-page-active #page-settings > #sub-browser .browser-shell {
7204
7215
  .hive-gl { display: none; }
7205
7216
  .hive-gl-overlay { position: absolute; inset: 0; pointer-events: none; }
7206
7217
  #rd-hive-viewport.hive-mode-3d #rd-hive-cells { display: none; }
7218
+ #rd-hive-viewport.hive-mode-live3d #rd-hive-cells { display: none !important; }
7207
7219
  #rd-hive-viewport.hive-mode-2d { height: auto; aspect-ratio: auto; overflow: visible; border: 0; border-radius: 0; background: transparent; cursor: auto; }
7208
7220
  #rd-hive-viewport.hive-mode-2d .hive-reference-layer { display: none; }
7209
7221
  .hg-badge {
7210
7222
  position: absolute; transform: translate(-50%, -50%); width: 10.8%; height: 7.6%;
7211
- display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .4cqw;
7212
- padding: .3cqw; border: 0; border-radius: 1.4cqw; pointer-events: auto; cursor: pointer;
7213
- color: #101c29; background: rgba(255,255,255,.98); box-shadow: 0 .35cqw .9cqw rgba(14,55,88,.22);
7223
+ display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .36cqw;
7224
+ padding: .3cqw; border: 1px solid rgba(142,224,247,.42); border-radius: .78cqw; pointer-events: auto; cursor: pointer;
7225
+ color: #effbff; background: linear-gradient(142deg, rgba(14,43,63,.98), rgba(8,61,83,.97));
7226
+ box-shadow: inset 0 1px 0 rgba(224,250,255,.18), 0 .42cqw 1.1cqw rgba(2,20,37,.30);
7214
7227
  text-align: center; font-family: "Microsoft YaHei", sans-serif;
7215
7228
  }
7216
- .hg-badge .hg-name { font-size: 1.25cqw; font-weight: 800; line-height: 1.15; white-space: nowrap; }
7217
- .hg-badge .hg-meta { font-size: .58cqw; color: #536d7d; line-height: 1; white-space: nowrap; }
7229
+ .hg-badge::before {
7230
+ position: absolute; top: 15%; left: 8%; width: .3cqw; height: .3cqw; min-width: 3px; min-height: 3px;
7231
+ border-radius: 50%; content: ""; background: #6c8a9c; box-shadow: 0 0 .35cqw rgba(91,223,245,.25);
7232
+ }
7233
+ .hg-badge .hg-name { font-size: 1.12cqw; font-weight: 750; letter-spacing: .01em; line-height: 1.15; white-space: nowrap; }
7234
+ .hg-badge .hg-meta { font-size: .62cqw; color: #a9cfdd; line-height: 1; white-space: nowrap; }
7218
7235
  .hg-badge:disabled { cursor: default; opacity: 1; }
7219
- .hg-badge:hover:not(:disabled), .hg-badge:focus-visible { outline: .12cqw solid #71eaf9; outline-offset: .2cqw; }
7220
- .hg-badge.hg-active { box-shadow: 0 0 1.1cqw rgba(0, 236, 255, .65); }
7236
+ .hg-badge:hover:not(:disabled), .hg-badge:focus-visible { outline: .12cqw solid #71eaf9; outline-offset: .16cqw; }
7237
+ .hg-badge.hg-active {
7238
+ border-color: rgba(90,245,225,.85);
7239
+ box-shadow: inset 0 1px 0 rgba(224,250,255,.18), 0 .42cqw 1.1cqw rgba(2,20,37,.30), 0 0 1.15cqw rgba(0,236,255,.38);
7240
+ }
7241
+ .hg-badge.hg-active::before { background: #5df4c7; box-shadow: 0 0 .42cqw rgba(93,244,199,.9); }
7221
7242
  .hg-monitor {
7222
7243
  position: absolute; display: grid; grid-template-columns: 1fr auto; grid-template-rows: auto auto 1fr;
7223
- padding: .12cqw .3cqw; gap: .08cqw .18cqw; overflow: hidden; border: 0; border-radius: 0;
7224
- pointer-events: auto; cursor: pointer; text-align: left; color: #d8f9ff; background: #06244a;
7225
- font-family: var(--mono); font-size: .57cqw; line-height: 1.15;
7244
+ padding: .12cqw .3cqw; gap: .08cqw .18cqw; overflow: hidden;
7245
+ border: 1px solid rgba(115,202,229,.46); border-radius: .26cqw;
7246
+ pointer-events: auto; cursor: pointer; text-align: left; color: #d8f9ff;
7247
+ background: linear-gradient(160deg, #0b3048 0%, #061a2b 72%, #082236 100%);
7248
+ box-shadow: inset 0 1px 0 rgba(204,248,255,.13), 0 1px 3px rgba(0,12,24,.26);
7249
+ font-family: var(--mono); font-size: .68cqw; line-height: 1.15;
7250
+ }
7251
+ .hg-monitor::before {
7252
+ position: absolute; top: .18cqw; right: .22cqw; width: .24cqw; height: .24cqw; min-width: 2px; min-height: 2px;
7253
+ border-radius: 50%; content: ""; background: #58e3bd; box-shadow: 0 0 .28cqw rgba(88,227,189,.5);
7226
7254
  }
7227
7255
  .hg-monitor:disabled { opacity: 1; cursor: default; }
7228
- .hg-monitor:hover:not(:disabled), .hg-monitor:focus-visible { outline: .12cqw solid #91f6ff; outline-offset: .1cqw; z-index: 1; }
7229
- .hg-monitor-role { grid-column: 1 / -1; font-size: .69cqw; line-height: 1.16; font-weight: 700; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
7230
- .hg-monitor-status { color: #94deee; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
7231
- .hg-monitor-time { grid-column: 2; grid-row: 2; color: #9dd8e4; white-space: nowrap; }
7232
- .hg-monitor-tail { grid-column: 1 / -1; color: #b3e7f2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
7233
- .hg-monitor.st-running { box-shadow: inset 0 -.1cqw #52edf5; }
7256
+ .hg-monitor:hover:not(:disabled), .hg-monitor:focus-visible { outline: .12cqw solid #91f6ff; outline-offset: .08cqw; z-index: 1; }
7257
+ .hg-monitor-role { grid-column: 1 / -1; font-size: .82cqw; line-height: 1.16; font-weight: 700; letter-spacing: .005em; color: #edfaff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
7258
+ .hg-monitor-status { font-size: .64cqw; color: #94deee; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
7259
+ .hg-monitor-time { grid-column: 2; grid-row: 2; font-size: .60cqw; color: #9dd8e4; white-space: nowrap; }
7260
+ .hg-monitor-tail { grid-column: 1 / -1; font-size: .62cqw; color: #b3e7f2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
7261
+ .hg-monitor.st-running { border-color: rgba(78,239,244,.82); box-shadow: inset 0 -.1cqw #52edf5, inset 0 1px 0 rgba(204,248,255,.13), 0 1px 3px rgba(0,12,24,.26); }
7262
+ .hg-monitor.st-queued::before { background: #7e99aa; box-shadow: none; }
7263
+ .hg-monitor.st-done::before { background: #78f2ae; box-shadow: 0 0 .28cqw rgba(120,242,174,.45); }
7264
+ .hg-monitor.st-failed::before, .hg-monitor.st-timeout::before { background: #ff777b; box-shadow: 0 0 .28cqw rgba(255,119,123,.5); }
7234
7265
  .hg-monitor.st-running .hg-monitor-status { color: #5cf5fc; }
7235
7266
  .hg-monitor.st-done .hg-monitor-status { color: #99f3bf; }
7236
7267
  .hg-monitor.st-failed .hg-monitor-status, .hg-monitor.st-timeout .hg-monitor-status { color: #ffa2a2; }
@@ -7276,3 +7307,502 @@ main.browser-page-active #page-settings > #sub-browser .browser-shell {
7276
7307
  .pb-chip input { margin: 0; }
7277
7308
  .pb-pend-btns { display: flex; gap: 8px; margin-top: 6px; }
7278
7309
  .pb-vol { font-size: 11px; color: var(--accent, #4a7dbe); margin-top: 5px; font-weight: 600; }
7310
+ .pb-vol-sel { display: inline-flex; align-items: center; gap: 4px; cursor: pointer;
7311
+ color: inherit; user-select: none; }
7312
+ .pb-vol-sel:hover, .pb-vol-sel.on { color: var(--text); }
7313
+ .pb-vol-sel input { margin: 0; accent-color: var(--accent, #4a7dbe); }
7314
+
7315
+
7316
+ /* Procedural WebGL hive renderer: canvas is the live 3D layer, DOM controls stay accessible above it. */
7317
+ #rd-hive-viewport .hive-gl-live {
7318
+ display: block;
7319
+ position: absolute;
7320
+ inset: 0;
7321
+ width: 100%;
7322
+ height: 100%;
7323
+ z-index: 0;
7324
+ touch-action: none;
7325
+ }
7326
+ #rd-hive-viewport .hive-reference-layer { z-index: 1; pointer-events: none; }
7327
+ #rd-hive-viewport .hive-gl-overlay { pointer-events: none; }
7328
+ #rd-hive-viewport .hive-gl-overlay button { pointer-events: auto; }
7329
+ #rd-hive-viewport.hive-mode-2d .hive-gl-live { display: none; }
7330
+ #rd-hive-viewport.hive-mode-3d .hive-reference { display: none; }
7331
+ #rd-hive-viewport.hive-mode-3d .hive-reference-layer { pointer-events: none; }
7332
+ /* Stage-card top is projected from the 3D wall by hive3d.js; do not pin it to a screen-space row. */
7333
+ #rd-hive-viewport.hive-mode-3d .hg-monitor { top: auto; }
7334
+ @media (prefers-reduced-motion: reduce) {
7335
+ #rd-hive-viewport .hive-gl-live { scroll-behavior: auto; }
7336
+ }
7337
+
7338
+ #rd-hive-viewport .hive-gl-live[hidden] { display: none !important; }
7339
+
7340
+
7341
+ /* Visual calibration pass: reduce floating task labels so the room and desks read first. */
7342
+ #rd-hive-viewport.hive-mode-3d {
7343
+ background: linear-gradient(180deg, #e9f4fc 0%, #d7e9f7 54%, #c9dceb 100%);
7344
+ }
7345
+ #rd-hive-viewport .hive-reference-layer {
7346
+ z-index: 2;
7347
+ overflow: hidden;
7348
+ }
7349
+ #rd-hive-viewport .hg-badge {
7350
+ width: 10.6%;
7351
+ height: 6.6%;
7352
+ padding: .24cqw;
7353
+ border-radius: 1.15cqw;
7354
+ box-shadow: 0 .22cqw .55cqw rgba(14,55,88,.17);
7355
+ }
7356
+ #rd-hive-viewport .hg-badge .hg-name {
7357
+ font-size: clamp(10px, 1.05cqw, 17px);
7358
+ }
7359
+ #rd-hive-viewport .hg-badge .hg-meta {
7360
+ font-size: clamp(7px, .48cqw, 10px);
7361
+ }
7362
+ #rd-hive-viewport .hg-monitor {
7363
+ background: rgba(4, 28, 55, .88);
7364
+ border: 1px solid rgba(121, 225, 246, .28);
7365
+ border-radius: 3px;
7366
+ padding: 2px 4px;
7367
+ font-size: clamp(6px, .45cqw, 9px);
7368
+ line-height: 1.2;
7369
+ box-shadow: 0 2px 6px rgba(4, 24, 45, .12);
7370
+ backdrop-filter: blur(2px);
7371
+ }
7372
+ #rd-hive-viewport .hg-monitor-role {
7373
+ font-size: clamp(6px, .52cqw, 10px);
7374
+ }
7375
+ #rd-hive-viewport .hg-monitor-tail {
7376
+ opacity: .8;
7377
+ }
7378
+ #rd-hive-viewport .hg-monitor.st-idle {
7379
+ background: rgba(7, 38, 66, .58);
7380
+ border-color: rgba(255,255,255,.16);
7381
+ opacity: .84;
7382
+ }
7383
+ #rd-hive-viewport .hg-monitor:disabled {
7384
+ opacity: .42;
7385
+ }
7386
+ @media (max-width: 760px) {
7387
+ #rd-hive-viewport .hg-monitor { display: none; }
7388
+ #rd-hive-viewport .hg-badge { width: 14%; }
7389
+ }
7390
+
7391
+
7392
+ /* True projected-screen labels: type must fit inside compact physical monitor bounds. */
7393
+ #rd-hive-viewport .hg-monitor {
7394
+ box-sizing: border-box;
7395
+ min-width: 0;
7396
+ min-height: 0;
7397
+ padding: 1px 2px;
7398
+ gap: 0;
7399
+ grid-template-rows: auto auto minmax(0, 1fr);
7400
+ border: 1px solid rgba(121, 225, 246, .20);
7401
+ border-radius: 2px;
7402
+ background: rgba(2, 19, 39, .93);
7403
+ box-shadow: none;
7404
+ backdrop-filter: none;
7405
+ line-height: 1.05;
7406
+ }
7407
+ #rd-hive-viewport .hg-monitor-role {
7408
+ min-width: 0;
7409
+ font-size: clamp(5px, .43cqw, 9px);
7410
+ line-height: 1.05;
7411
+ }
7412
+ #rd-hive-viewport .hg-monitor-status,
7413
+ #rd-hive-viewport .hg-monitor-time {
7414
+ font-size: clamp(4px, .35cqw, 7px);
7415
+ line-height: 1.05;
7416
+ }
7417
+ #rd-hive-viewport .hg-monitor-tail {
7418
+ min-width: 0;
7419
+ font-size: clamp(4px, .34cqw, 6px);
7420
+ line-height: 1.05;
7421
+ }
7422
+ #rd-hive-viewport .hg-monitor.st-idle {
7423
+ background: rgba(2, 19, 39, .88);
7424
+ }
7425
+
7426
+
7427
+ /* Workflow arrows are DOM overlays anchored to projected wall-panel edges. */
7428
+ #rd-hive-viewport .hg-flow-link {
7429
+ position: absolute;
7430
+ z-index: 1;
7431
+ display: block;
7432
+ height: 2px;
7433
+ border-radius: 2px;
7434
+ pointer-events: none;
7435
+ transform-origin: left center;
7436
+ background: linear-gradient(90deg, rgba(99, 237, 255, .62), rgba(99, 237, 255, .95));
7437
+ box-shadow: 0 0 5px rgba(72, 226, 255, .5);
7438
+ }
7439
+ #rd-hive-viewport .hg-flow-link::after {
7440
+ content: "";
7441
+ position: absolute;
7442
+ right: 0;
7443
+ top: -3px;
7444
+ width: 7px;
7445
+ height: 7px;
7446
+ border-top: 2px solid #72efff;
7447
+ border-right: 2px solid #72efff;
7448
+ transform: rotate(45deg);
7449
+ filter: drop-shadow(0 0 2px rgba(83, 233, 255, .65));
7450
+ }
7451
+
7452
+
7453
+ /* Premium Hive3D finish: give the glass studio a deep, cinematic frame and legible hardware UI. */
7454
+ #rd-hive-viewport.hive-mode-3d {
7455
+ background:
7456
+ radial-gradient(ellipse at 50% 34%, rgba(24, 83, 112, .36) 0%, rgba(9, 25, 44, .18) 46%, transparent 74%),
7457
+ linear-gradient(180deg, #071725 0%, #091a2b 54%, #06111e 100%);
7458
+ border: 1px solid rgba(98, 200, 226, .22);
7459
+ box-shadow: inset 0 1px 0 rgba(214, 246, 255, .06), 0 24px 72px rgba(0, 0, 0, .24);
7460
+ }
7461
+ #rd-hive-viewport .hg-badge {
7462
+ box-sizing: border-box;
7463
+ background: linear-gradient(145deg, rgba(12, 36, 54, .98), rgba(5, 20, 34, .98)) !important;
7464
+ color: #e8f8ff !important;
7465
+ border: 1px solid rgba(107, 225, 239, .45) !important;
7466
+ border-radius: 7px;
7467
+ box-shadow: inset 0 1px 0 rgba(227, 251, 255, .10), 0 5px 14px rgba(0, 8, 20, .32) !important;
7468
+ text-shadow: 0 1px 8px rgba(66, 190, 225, .12);
7469
+ }
7470
+ #rd-hive-viewport .hg-badge .hg-name {
7471
+ color: #f0fbff !important;
7472
+ letter-spacing: .025em;
7473
+ font-weight: 750;
7474
+ }
7475
+ #rd-hive-viewport .hg-badge .hg-meta { color: #8dbdce !important; }
7476
+ #rd-hive-viewport .hg-badge.hg-active {
7477
+ border-color: rgba(87, 247, 213, .92) !important;
7478
+ box-shadow: inset 0 0 0 1px rgba(87, 247, 213, .10), 0 0 18px rgba(0, 225, 220, .18), 0 5px 14px rgba(0, 8, 20, .32) !important;
7479
+ }
7480
+ #rd-hive-viewport .hg-room-sign {
7481
+ position: absolute;
7482
+ z-index: 2;
7483
+ display: flex;
7484
+ align-items: center;
7485
+ justify-content: space-evenly;
7486
+ gap: clamp(4px, .42cqw, 8px);
7487
+ padding: 0 clamp(4px, .45cqw, 9px);
7488
+ box-sizing: border-box;
7489
+ overflow: hidden;
7490
+ pointer-events: none;
7491
+ white-space: nowrap;
7492
+ color: #e8fbff;
7493
+ font-family: Inter, ui-sans-serif, system-ui, sans-serif;
7494
+ text-shadow: 0 0 9px rgba(37, 187, 220, .18);
7495
+ }
7496
+ #rd-hive-viewport .hg-room-kicker {
7497
+ color: #79b7c9;
7498
+ font-size: clamp(5px, .48cqw, 9px);
7499
+ font-weight: 800;
7500
+ letter-spacing: .12em;
7501
+ }
7502
+ #rd-hive-viewport .hg-room-title {
7503
+ color: #f0fcff;
7504
+ font-size: clamp(7px, .72cqw, 13px);
7505
+ font-weight: 850;
7506
+ letter-spacing: .045em;
7507
+ }
7508
+ #rd-hive-viewport .hg-room-live {
7509
+ color: #72e8ca;
7510
+ font-size: clamp(5px, .44cqw, 8px);
7511
+ font-weight: 750;
7512
+ letter-spacing: .025em;
7513
+ }
7514
+ #rd-hive-viewport .hg-monitor {
7515
+ border-radius: 3px;
7516
+ border-color: rgba(77, 202, 229, .42);
7517
+ background: linear-gradient(145deg, rgba(5, 27, 43, .97), rgba(2, 13, 25, .98));
7518
+ box-shadow: inset 0 1px 0 rgba(209, 247, 255, .06), 0 2px 7px rgba(0, 8, 18, .18);
7519
+ }
7520
+ #rd-hive-viewport .hg-monitor-role { color: #edfbff; }
7521
+ #rd-hive-viewport .hg-monitor-status,
7522
+ #rd-hive-viewport .hg-monitor-time { color: #87d7e7; }
7523
+ #rd-hive-viewport .hg-monitor-tail { color: #b0dae5; opacity: .92; }
7524
+ #rd-hive-viewport .hg-monitor.st-running {
7525
+ border-color: rgba(76, 243, 220, .95);
7526
+ box-shadow: inset 0 0 0 1px rgba(76, 243, 220, .12), 0 0 8px rgba(31, 210, 211, .15);
7527
+ }
7528
+
7529
+
7530
+ /* Second calibration: the wall identity should read at a glance without overpowering the stages. */
7531
+ #rd-hive-viewport .hg-room-kicker { font-size: clamp(6px, .55cqw, 10px); }
7532
+ #rd-hive-viewport .hg-room-title { font-size: clamp(8px, .88cqw, 15px); letter-spacing: .055em; }
7533
+ #rd-hive-viewport .hg-room-live { font-size: clamp(6px, .50cqw, 9px); }
7534
+
7535
+
7536
+ /* Readability pass: task labels remain useful at a glance at the shipped scene size. */
7537
+ #rd-hive-viewport .hg-monitor-role {
7538
+ font-size: clamp(6px, .56cqw, 10px);
7539
+ line-height: 1.08;
7540
+ }
7541
+ #rd-hive-viewport .hg-monitor-status,
7542
+ #rd-hive-viewport .hg-monitor-time {
7543
+ font-size: clamp(5px, .40cqw, 7px);
7544
+ line-height: 1.05;
7545
+ }
7546
+ #rd-hive-viewport .hg-monitor-tail {
7547
+ font-size: clamp(5px, .38cqw, 7px);
7548
+ line-height: 1.05;
7549
+ }
7550
+
7551
+
7552
+ /* Reference-match pass: high-key blue office, white phase pills, and cyan flow rails. */
7553
+ #rd-hive-viewport.hive-mode-3d {
7554
+ background: linear-gradient(180deg, #eaf5ff 0%, #dcecf9 58%, #cfe1ef 100%) !important;
7555
+ border: 1px solid rgba(112, 164, 203, .38) !important;
7556
+ border-radius: 12px;
7557
+ box-shadow: inset 0 1px 0 rgba(255,255,255,.92), 0 16px 36px rgba(33, 80, 119, .14) !important;
7558
+ }
7559
+ #rd-hive-viewport .hg-badge {
7560
+ box-sizing: border-box;
7561
+ background: linear-gradient(180deg, #ffffff 0%, #f5f9ff 100%) !important;
7562
+ color: #12283e !important;
7563
+ border: 1px solid rgba(118, 171, 207, .72) !important;
7564
+ border-radius: 1.25cqw;
7565
+ box-shadow: inset 0 1px 0 #fff, 0 3px 0 rgba(25, 58, 88, .12), 0 7px 15px rgba(24, 62, 97, .20) !important;
7566
+ text-shadow: none !important;
7567
+ }
7568
+ #rd-hive-viewport .hg-badge::before {
7569
+ width: clamp(4px, .35cqw, 6px);
7570
+ height: clamp(4px, .35cqw, 6px);
7571
+ min-width: 0;
7572
+ min-height: 0;
7573
+ background: #38c7e8;
7574
+ box-shadow: 0 0 7px rgba(57, 206, 236, .48);
7575
+ }
7576
+ #rd-hive-viewport .hg-badge .hg-name {
7577
+ color: #142e49 !important;
7578
+ font-weight: 760;
7579
+ letter-spacing: 0;
7580
+ }
7581
+ #rd-hive-viewport .hg-badge .hg-meta {
7582
+ color: #58748c !important;
7583
+ font-weight: 600;
7584
+ }
7585
+ #rd-hive-viewport .hg-badge.hg-active {
7586
+ border-color: #58d4ee !important;
7587
+ box-shadow: inset 0 0 0 1px rgba(76, 209, 238, .28), 0 0 0 2px rgba(87, 211, 239, .26), 0 6px 14px rgba(23, 89, 130, .19) !important;
7588
+ }
7589
+ #rd-hive-viewport .hg-badge.hg-active::before {
7590
+ background: #18c8a1;
7591
+ box-shadow: 0 0 7px rgba(24, 200, 161, .70);
7592
+ }
7593
+ #rd-hive-viewport .hg-flow-link {
7594
+ height: 3px;
7595
+ background: linear-gradient(90deg, rgba(74, 229, 255, .70), #55eaff);
7596
+ box-shadow: 0 0 6px rgba(40, 224, 255, .68);
7597
+ }
7598
+ #rd-hive-viewport .hg-flow-link::after {
7599
+ top: -3px;
7600
+ border-color: #64eeff;
7601
+ filter: drop-shadow(0 0 3px rgba(59, 221, 255, .72));
7602
+ }
7603
+ #rd-hive-viewport .hg-monitor {
7604
+ background: linear-gradient(145deg, #06213a 0%, #00162a 100%) !important;
7605
+ border: 1px solid rgba(112, 195, 232, .48) !important;
7606
+ border-radius: 2px;
7607
+ box-shadow: inset 0 1px 0 rgba(209, 244, 255, .13), 0 2px 5px rgba(8, 35, 59, .17) !important;
7608
+ }
7609
+ #rd-hive-viewport .hg-monitor:disabled {
7610
+ opacity: .98 !important;
7611
+ }
7612
+ #rd-hive-viewport .hg-monitor-role {
7613
+ color: #f0fbff !important;
7614
+ }
7615
+ #rd-hive-viewport .hg-monitor-status,
7616
+ #rd-hive-viewport .hg-monitor-time {
7617
+ color: #8fe5f4 !important;
7618
+ }
7619
+ #rd-hive-viewport .hg-monitor-tail {
7620
+ color: #60dcf3 !important;
7621
+ opacity: 1;
7622
+ }
7623
+
7624
+
7625
+ /* Reference geometry finishing: taller white phase pills and illuminated monitor baselines. */
7626
+ #rd-hive-viewport .hg-badge {
7627
+ width: 10.8% !important;
7628
+ height: clamp(42px, 4.5cqw, 54px) !important;
7629
+ padding: 4px 6px !important;
7630
+ border-radius: 12px !important;
7631
+ gap: 3px !important;
7632
+ }
7633
+ #rd-hive-viewport .hg-badge .hg-name {
7634
+ font-size: clamp(11px, .98cqw, 15px) !important;
7635
+ line-height: 1.15 !important;
7636
+ }
7637
+ #rd-hive-viewport .hg-badge .hg-meta {
7638
+ font-size: clamp(7px, .54cqw, 9px) !important;
7639
+ line-height: 1 !important;
7640
+ }
7641
+ #rd-hive-viewport .hg-monitor {
7642
+ position: absolute;
7643
+ }
7644
+ #rd-hive-viewport .hg-monitor::after {
7645
+ position: absolute;
7646
+ content: "";
7647
+ left: 4%;
7648
+ right: 4%;
7649
+ bottom: 2px;
7650
+ height: 2px;
7651
+ border-radius: 2px;
7652
+ background: linear-gradient(90deg, #31cce9, #a0f5ff);
7653
+ box-shadow: 0 0 5px rgba(42, 222, 255, .58);
7654
+ pointer-events: none;
7655
+ }
7656
+
7657
+
7658
+ /* High-fidelity default view: use the shipped rendered reference as the scene plate,
7659
+ while clickable HTML controls on the six phase cards and fourteen monitors stay live. */
7660
+ #rd-hive-viewport.hive-mode-3d .hive-reference {
7661
+ display: block !important;
7662
+ z-index: 0;
7663
+ object-fit: contain;
7664
+ }
7665
+ #rd-hive-viewport.hive-mode-live3d .hive-reference {
7666
+ display: none !important;
7667
+ }
7668
+ #rd-hive-viewport .hive-reference-artboard {
7669
+ position: absolute;
7670
+ inset: 0;
7671
+ transform-origin: 50% 50%;
7672
+ will-change: transform;
7673
+ }
7674
+ #rd-hive-viewport.hive-mode-3d .hive-gl-live {
7675
+ z-index: 0;
7676
+ }
7677
+ #rd-hive-viewport.hive-mode-3d .hg-badge {
7678
+ width: 10.74% !important;
7679
+ height: 7.57% !important;
7680
+ padding: 2px 4px !important;
7681
+ gap: 2px !important;
7682
+ border-radius: 1.15cqw !important;
7683
+ background: linear-gradient(180deg, #fff 0%, #f6faff 100%) !important;
7684
+ border: 1px solid rgba(120, 171, 207, .78) !important;
7685
+ box-shadow: inset 0 1px 0 #fff, 0 3px 0 rgba(25, 58, 88, .12), 0 7px 15px rgba(24, 62, 97, .19) !important;
7686
+ color: #142e49 !important;
7687
+ }
7688
+ #rd-hive-viewport.hive-mode-3d .hg-badge .hg-name {
7689
+ color: #142e49 !important;
7690
+ font-size: clamp(10px, .98cqw, 15px) !important;
7691
+ line-height: 1.08 !important;
7692
+ }
7693
+ #rd-hive-viewport.hive-mode-3d .hg-badge .hg-meta {
7694
+ color: #58748c !important;
7695
+ font-size: clamp(6px, .49cqw, 8px) !important;
7696
+ line-height: 1 !important;
7697
+ }
7698
+ #rd-hive-viewport.hive-mode-3d .hg-flow-link {
7699
+ display: none !important;
7700
+ }
7701
+ #rd-hive-viewport.hive-mode-3d .hg-monitor {
7702
+ padding: 1px 2px;
7703
+ border-radius: 3px;
7704
+ background: linear-gradient(180deg, #06213a 0%, #001327 100%);
7705
+ border: 1px solid rgba(101, 194, 233, .58);
7706
+ box-shadow: inset 0 1px 0 rgba(215, 247, 255, .14), 0 2px 4px rgba(0, 18, 35, .22);
7707
+ opacity: 1;
7708
+ }
7709
+ #rd-hive-viewport.hive-mode-3d .hg-monitor-role {
7710
+ font-size: clamp(5px, .53cqw, 8px);
7711
+ line-height: 1.03;
7712
+ color: #f0fbff;
7713
+ }
7714
+ #rd-hive-viewport.hive-mode-3d .hg-monitor-status,
7715
+ #rd-hive-viewport.hive-mode-3d .hg-monitor-time {
7716
+ font-size: clamp(4px, .35cqw, 6px);
7717
+ line-height: 1;
7718
+ color: #6cdbf5;
7719
+ }
7720
+ #rd-hive-viewport.hive-mode-3d .hg-monitor-tail {
7721
+ font-size: clamp(4px, .34cqw, 6px);
7722
+ line-height: 1;
7723
+ color: #87e8f7;
7724
+ }
7725
+ #rd-hive-viewport.hive-mode-3d .hg-monitor::after {
7726
+ height: 2px;
7727
+ bottom: 1px;
7728
+ opacity: .92;
7729
+ }
7730
+ #rd-hive-viewport.hive-mode-3d .hg-monitor:disabled {
7731
+ opacity: 1 !important;
7732
+ }
7733
+ #rd-hive-viewport.hive-mode-live3d {
7734
+ background: linear-gradient(180deg, #eaf5ff 0%, #dcecf9 58%, #cfe1ef 100%);
7735
+ }
7736
+ #rd-hive-viewport.hive-mode-live3d .hg-badge {
7737
+ background: linear-gradient(180deg, #fff 0%, #f5f9ff 100%);
7738
+ color: #142e49;
7739
+ border: 1px solid rgba(118, 171, 207, .72);
7740
+ }
7741
+
7742
+ /* In real WebGL mode the monitor glass/face is rendered in 3D. Keep DOM text overlays
7743
+ transparent so foreground robots correctly occlude the physical screen through depth testing. */
7744
+ #rd-hive-viewport.hive-mode-live3d .hg-monitor {
7745
+ background: transparent !important;
7746
+ border-color: rgba(94, 207, 235, .24) !important;
7747
+ box-shadow: none !important;
7748
+ backdrop-filter: none !important;
7749
+ }
7750
+ #rd-hive-viewport.hive-mode-live3d .hg-monitor::after { display: none !important; }
7751
+ #rd-hive-viewport.hive-mode-live3d .hg-monitor-role,
7752
+ #rd-hive-viewport.hive-mode-live3d .hg-monitor-status,
7753
+ #rd-hive-viewport.hive-mode-live3d .hg-monitor-time,
7754
+ #rd-hive-viewport.hive-mode-live3d .hg-monitor-tail {
7755
+ text-shadow: 0 1px 2px rgba(0, 12, 24, .92);
7756
+ }
7757
+
7758
+ /* Fullscreen applies to the reference artwork, live WebGL and 2D fallback alike. */
7759
+ .hive-scene-stage { min-width: 0; }
7760
+ .hive-scene-fullscreen { min-width: 64px; }
7761
+ .hive-scene-stage:fullscreen,
7762
+ .hive-scene-stage.is-fullscreen {
7763
+ display: flex; flex-direction: column; gap: 8px;
7764
+ width: 100vw; height: 100vh; min-width: 0; max-width: none;
7765
+ margin: 0; padding: 12px 16px 16px; box-sizing: border-box; overflow: hidden;
7766
+ border: 0; border-radius: 0; background: #eaf3fa; color: #183750;
7767
+ }
7768
+ .hive-scene-stage:fullscreen .hive-scene-tools,
7769
+ .hive-scene-stage.is-fullscreen .hive-scene-tools {
7770
+ flex: 0 0 auto; flex-wrap: wrap; width: 100%; min-height: 38px;
7771
+ margin: 0; gap: 8px; box-sizing: border-box;
7772
+ }
7773
+ .hive-scene-stage:fullscreen .hive-viewport,
7774
+ .hive-scene-stage.is-fullscreen .hive-viewport {
7775
+ flex: 1 1 auto; width: 100%; height: auto; min-height: 0;
7776
+ aspect-ratio: auto; border-radius: 12px;
7777
+ }
7778
+ .hive-scene-stage:fullscreen .hive-viewport .hive-reference,
7779
+ .hive-scene-stage.is-fullscreen .hive-viewport .hive-reference {
7780
+ object-fit: contain; background: #eaf3fa;
7781
+ }
7782
+ .hive-scene-stage:fullscreen .hive-viewport.hive-mode-2d,
7783
+ .hive-scene-stage.is-fullscreen .hive-viewport.hive-mode-2d {
7784
+ flex: 1 1 auto; height: auto; min-height: 0; overflow: auto;
7785
+ }
7786
+ @media (max-width: 680px) {
7787
+ .hive-scene-stage:fullscreen,
7788
+ .hive-scene-stage.is-fullscreen { padding: 8px; gap: 6px; }
7789
+ .hive-scene-stage:fullscreen .hive-scene-tools,
7790
+ .hive-scene-stage.is-fullscreen .hive-scene-tools { gap: 5px; }
7791
+ .hive-scene-stage:fullscreen .hive-scene-hint,
7792
+ .hive-scene-stage.is-fullscreen .hive-scene-hint { display: none; }
7793
+ }
7794
+
7795
+ /* ---- 步骤行窄主列折行(追加于文件尾防并行重排) ----
7796
+ * 步骤行定宽列总和 ≈783px(序号26+角色92+执行者118+st-model 77+st-prov 200+耗时42
7797
+ * +状态chip 44+日志按钮60+8间隙96+内边距28),浏览器缩放/窄窗/检查器打开都会把
7798
+ * 主列压到 783 以下——行放不下就溢出 .step(min-width:auto),传导到
7799
+ * #rd-pane-steps 长出横向滚动条(1010 实案:150% 缩放下 CLI 日志按钮被右缘切半)。
7800
+ * 用容器查询按「面板实际宽度」而非视口折行:≤820px 时与 ≤900 移动端同款允许换行,
7801
+ * role/who 允许收缩(本就带省略号);宽主列保持单行形态不动。容器查询 Edge 105+,
7802
+ * 老浏览器忽略整段=维持现状,优雅降级。 */
7803
+ #rd-steps { container-type: inline-size; }
7804
+ @container (max-width: 820px) {
7805
+ .step { flex-wrap: wrap; row-gap: 6px; }
7806
+ .step .role { flex: 0 1 92px; }
7807
+ .step .who { flex: 0 1 118px; }
7808
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "codebee",
3
- "version": "0.1.100",
3
+ "version": "0.1.102",
4
4
  "description": "CodeBee · 多智能体编排台 — 统一编排本机 AI 编码 CLI(Codex / Claude Code / QwenCode / OpenCode / Aider…):目标→拆解→路由→执行→验证→跨厂商评审→修复→报告。纯 Python 标准库实现,本地 Web UI。",
5
5
  "license": "MIT",
6
6
  "bin": {