@codemem/server 0.26.0 → 0.26.2

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/static/index.html CHANGED
@@ -431,6 +431,228 @@
431
431
  margin-bottom: var(--sp-3);
432
432
  }
433
433
 
434
+ .coordinator-admin-shell {
435
+ display: grid;
436
+ gap: var(--sp-5);
437
+ }
438
+
439
+ .coordinator-admin-header,
440
+ .coordinator-admin-sections {
441
+ display: grid;
442
+ gap: var(--sp-3);
443
+ }
444
+
445
+ .coordinator-admin-summary-grid {
446
+ display: grid;
447
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
448
+ gap: var(--sp-3);
449
+ }
450
+
451
+ .coordinator-admin-summary-card {
452
+ border: 1px solid var(--border);
453
+ border-radius: var(--radius-md);
454
+ padding: var(--sp-3);
455
+ background: var(--surface-0);
456
+ display: grid;
457
+ gap: 6px;
458
+ }
459
+
460
+ .coordinator-admin-summary-card strong {
461
+ font-size: 16px;
462
+ line-height: 1.3;
463
+ }
464
+
465
+ .coordinator-admin-inline-warning {
466
+ border: 1px solid rgba(240, 180, 41, 0.28);
467
+ background: rgba(240, 180, 41, 0.08);
468
+ border-radius: var(--radius-md);
469
+ padding: var(--sp-3);
470
+ }
471
+
472
+ .coordinator-admin-inline-meta {
473
+ margin-top: -4px;
474
+ }
475
+
476
+ .coordinator-admin-context-line {
477
+ padding-top: var(--sp-2);
478
+ border-top: 1px solid var(--border);
479
+ }
480
+
481
+ .coordinator-admin-groups-context {
482
+ display: grid;
483
+ grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
484
+ gap: var(--sp-3);
485
+ }
486
+
487
+ .coordinator-admin-context-pair {
488
+ display: grid;
489
+ gap: 4px;
490
+ min-width: 0;
491
+ padding: var(--sp-2) 0;
492
+ }
493
+
494
+ .coordinator-admin-context-pair strong {
495
+ font-size: 16px;
496
+ line-height: 1.2;
497
+ }
498
+
499
+ .coordinator-admin-context-counts strong {
500
+ white-space: nowrap;
501
+ }
502
+
503
+ .coordinator-admin-tabs-list {
504
+ display: flex;
505
+ flex-wrap: wrap;
506
+ gap: var(--sp-2);
507
+ }
508
+
509
+ .coordinator-admin-tab-trigger {
510
+ border: 1px solid var(--border);
511
+ border-radius: var(--radius-pill);
512
+ background: var(--surface-0);
513
+ color: var(--text-secondary);
514
+ padding: var(--sp-2) var(--sp-3);
515
+ font: inherit;
516
+ cursor: pointer;
517
+ }
518
+
519
+ .coordinator-admin-tab-trigger[data-state="active"] {
520
+ background: var(--accent-subtle);
521
+ border-color: var(--control-border);
522
+ color: var(--accent);
523
+ }
524
+
525
+ .coordinator-admin-tab-trigger:disabled {
526
+ opacity: 0.55;
527
+ cursor: not-allowed;
528
+ }
529
+
530
+ .coordinator-admin-panel {
531
+ display: grid;
532
+ gap: var(--sp-3);
533
+ padding-top: var(--sp-2);
534
+ }
535
+
536
+ .coordinator-admin-panel h3 {
537
+ font-size: 18px;
538
+ line-height: 1.25;
539
+ margin: 0;
540
+ }
541
+
542
+ .coordinator-admin-form-grid {
543
+ display: grid;
544
+ gap: var(--sp-3);
545
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
546
+ }
547
+
548
+ .coordinator-admin-field {
549
+ display: grid;
550
+ gap: var(--sp-2);
551
+ }
552
+
553
+ .coordinator-admin-field > span {
554
+ font-size: 12px;
555
+ color: var(--text-secondary);
556
+ font-weight: 600;
557
+ }
558
+
559
+ .coordinator-admin-output {
560
+ min-height: 108px;
561
+ }
562
+
563
+ .coordinator-admin-warning-list {
564
+ color: var(--status-attention);
565
+ }
566
+
567
+ .coordinator-admin-groups-toolbar {
568
+ justify-content: flex-start;
569
+ flex-wrap: wrap;
570
+ align-items: center;
571
+ }
572
+
573
+ .coordinator-admin-primary-actions,
574
+ .coordinator-admin-secondary-actions {
575
+ display: inline-flex;
576
+ align-items: center;
577
+ gap: 12px;
578
+ }
579
+
580
+ .coordinator-admin-inline-filter {
581
+ display: inline-flex;
582
+ align-items: center;
583
+ gap: 6px;
584
+ }
585
+
586
+ .coordinator-admin-inline-filter .section-meta {
587
+ line-height: 1;
588
+ margin: 0;
589
+ }
590
+
591
+ .coordinator-admin-switch {
592
+ width: 34px;
593
+ height: 20px;
594
+ border: 1px solid color-mix(in srgb, var(--text-tertiary) 42%, var(--control-border));
595
+ border-radius: var(--radius-pill);
596
+ background: color-mix(in srgb, var(--surface-1) 82%, var(--surface-0));
597
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--text-tertiary) 8%, transparent);
598
+ cursor: pointer;
599
+ flex-shrink: 0;
600
+ padding: 1px;
601
+ transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
602
+ }
603
+
604
+ .coordinator-admin-switch:hover {
605
+ border-color: color-mix(in srgb, var(--accent) 38%, var(--control-hover-border));
606
+ }
607
+
608
+ .coordinator-admin-switch:focus-visible {
609
+ outline: 2px solid var(--accent);
610
+ outline-offset: 2px;
611
+ }
612
+
613
+ .coordinator-admin-switch[data-state="checked"] {
614
+ background: color-mix(in srgb, var(--accent) 18%, var(--surface-1));
615
+ border-color: color-mix(in srgb, var(--accent) 54%, var(--control-hover-border));
616
+ box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent);
617
+ }
618
+
619
+ .coordinator-admin-switch:disabled {
620
+ opacity: 0.55;
621
+ cursor: not-allowed;
622
+ }
623
+
624
+ .coordinator-admin-switch-thumb {
625
+ display: block;
626
+ width: 16px;
627
+ height: 16px;
628
+ border-radius: 50%;
629
+ background: color-mix(in srgb, var(--surface-0) 88%, white);
630
+ border: 1px solid color-mix(in srgb, var(--text-tertiary) 24%, transparent);
631
+ box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
632
+ transition: transform 0.15s ease, background 0.15s ease;
633
+ transform: translateX(0);
634
+ }
635
+
636
+ .coordinator-admin-switch[data-state="checked"] .coordinator-admin-switch-thumb {
637
+ transform: translateX(14px);
638
+ background: color-mix(in srgb, var(--accent) 88%, white);
639
+ border-color: color-mix(in srgb, var(--accent) 42%, transparent);
640
+ }
641
+
642
+ .coordinator-admin-count-copy {
643
+ margin-left: 2px;
644
+ }
645
+
646
+ .coordinator-admin-empty-state {
647
+ padding: var(--sp-3) 0 var(--sp-1);
648
+ }
649
+
650
+ .coordinator-admin-list {
651
+ padding-left: var(--sp-4);
652
+ display: grid;
653
+ gap: var(--sp-2);
654
+ }
655
+
434
656
  .section-header {
435
657
  display: flex;
436
658
  align-items: center;
@@ -1077,6 +1299,8 @@
1077
1299
  .peer-actions { display: flex; gap: 6px; }
1078
1300
  .peer-actions button { border: 1px solid var(--border); background: transparent; border-radius: var(--radius-pill); padding: 5px 10px; min-width: 28px; min-height: 28px; display: inline-flex; align-items: center; justify-content: center; font-family: var(--font-sans); font-size: 12px; cursor: pointer; color: var(--text-secondary); }
1079
1301
  .peer-actions button:hover { border-color: var(--border-hover); background: var(--surface-2); }
1302
+ .peer-actions button.danger { color: var(--accent-warm); border-color: color-mix(in srgb, var(--accent-warm) 36%, var(--border)); }
1303
+ .peer-actions button.danger:hover { background: var(--accent-warm-subtle); border-color: var(--accent-warm); }
1080
1304
  .peer-card,
1081
1305
  .actor-row,
1082
1306
  .peer-scope-input,
@@ -1987,6 +2211,7 @@
1987
2211
  <button class="tab-btn active" id="tabBtn-feed">Feed</button>
1988
2212
  <button class="tab-btn" id="tabBtn-health">Health</button>
1989
2213
  <button class="tab-btn" id="tabBtn-sync">Sync</button>
2214
+ <button class="tab-btn" id="tabBtn-coordinator-admin">Coordinator Admin</button>
1990
2215
  </nav>
1991
2216
  <div class="app-notice" id="globalNotice" hidden aria-live="polite"></div>
1992
2217
  <div class="viewer-reconnect-overlay" id="viewerReconnectOverlay" hidden>
@@ -2348,6 +2573,10 @@
2348
2573
  </div>
2349
2574
  </div>
2350
2575
 
2576
+ <div class="tab-panel" id="tab-coordinator-admin" hidden>
2577
+ <div id="coordinatorAdminMount"></div>
2578
+ </div>
2579
+
2351
2580
  <script src="/assets/app.js"></script>
2352
2581
  </body>
2353
2582
  </html>