@codemem/server 0.26.1 → 0.27.0
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/dist/index.js +594 -51
- package/dist/index.js.map +1 -1
- package/dist/routes/sync.d.ts.map +1 -1
- package/package.json +2 -2
- package/static/app.js +4160 -3398
- package/static/index.html +330 -1
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;
|
|
@@ -636,6 +858,28 @@
|
|
|
636
858
|
justify-content: flex-end;
|
|
637
859
|
}
|
|
638
860
|
|
|
861
|
+
.feed-inspector {
|
|
862
|
+
display: flex;
|
|
863
|
+
flex-direction: column;
|
|
864
|
+
align-items: flex-start;
|
|
865
|
+
gap: 12px;
|
|
866
|
+
margin-bottom: var(--sp-4);
|
|
867
|
+
}
|
|
868
|
+
|
|
869
|
+
.feed-inspector-button {
|
|
870
|
+
min-height: 30px;
|
|
871
|
+
padding: 4px 10px;
|
|
872
|
+
border-color: var(--border);
|
|
873
|
+
background: transparent;
|
|
874
|
+
color: var(--text-secondary);
|
|
875
|
+
white-space: nowrap;
|
|
876
|
+
}
|
|
877
|
+
.feed-inspector-button:hover {
|
|
878
|
+
background: var(--surface-2);
|
|
879
|
+
border-color: var(--border-hover);
|
|
880
|
+
color: var(--text-primary);
|
|
881
|
+
}
|
|
882
|
+
|
|
639
883
|
.feed-search {
|
|
640
884
|
min-width: 200px;
|
|
641
885
|
flex: 1;
|
|
@@ -653,6 +897,28 @@
|
|
|
653
897
|
.feed-search::placeholder { color: var(--text-tertiary); }
|
|
654
898
|
.feed-search:focus { border-color: var(--accent); box-shadow: 0 0 0 3px var(--focus-ring); }
|
|
655
899
|
|
|
900
|
+
.feed-inspector-files {
|
|
901
|
+
width: 100%;
|
|
902
|
+
margin-top: 8px;
|
|
903
|
+
min-height: 84px;
|
|
904
|
+
padding: 10px var(--sp-3);
|
|
905
|
+
border-radius: var(--radius-md);
|
|
906
|
+
border: 1px solid var(--border);
|
|
907
|
+
background: var(--input-bg);
|
|
908
|
+
color: var(--text-primary);
|
|
909
|
+
font-family: var(--font-mono);
|
|
910
|
+
font-size: 12px;
|
|
911
|
+
line-height: 1.45;
|
|
912
|
+
resize: vertical;
|
|
913
|
+
outline: none;
|
|
914
|
+
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
915
|
+
}
|
|
916
|
+
.feed-inspector-files::placeholder { color: var(--text-tertiary); }
|
|
917
|
+
.feed-inspector-files:focus {
|
|
918
|
+
border-color: var(--accent);
|
|
919
|
+
box-shadow: 0 0 0 3px var(--focus-ring);
|
|
920
|
+
}
|
|
921
|
+
|
|
656
922
|
.feed-toggle {
|
|
657
923
|
display: inline-flex;
|
|
658
924
|
gap: 2px;
|
|
@@ -1077,6 +1343,8 @@
|
|
|
1077
1343
|
.peer-actions { display: flex; gap: 6px; }
|
|
1078
1344
|
.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
1345
|
.peer-actions button:hover { border-color: var(--border-hover); background: var(--surface-2); }
|
|
1346
|
+
.peer-actions button.danger { color: var(--accent-warm); border-color: color-mix(in srgb, var(--accent-warm) 36%, var(--border)); }
|
|
1347
|
+
.peer-actions button.danger:hover { background: var(--accent-warm-subtle); border-color: var(--accent-warm); }
|
|
1080
1348
|
.peer-card,
|
|
1081
1349
|
.actor-row,
|
|
1082
1350
|
.peer-scope-input,
|
|
@@ -1688,7 +1956,7 @@
|
|
|
1688
1956
|
.settings-advanced-toolbar {
|
|
1689
1957
|
display: flex;
|
|
1690
1958
|
align-items: center;
|
|
1691
|
-
gap:
|
|
1959
|
+
gap: 10px;
|
|
1692
1960
|
padding: var(--sp-2) var(--sp-3);
|
|
1693
1961
|
border: 1px solid var(--border);
|
|
1694
1962
|
border-radius: var(--radius-sm);
|
|
@@ -1759,6 +2027,62 @@
|
|
|
1759
2027
|
.field-checkbox { flex-direction: row; align-items: center; gap: 8px; }
|
|
1760
2028
|
.field-checkbox input[type="checkbox"] { width: 14px; height: 14px; margin: 0; }
|
|
1761
2029
|
.field-checkbox label { margin: 0; }
|
|
2030
|
+
.settings-switch-row {
|
|
2031
|
+
display: inline-flex;
|
|
2032
|
+
align-items: center;
|
|
2033
|
+
justify-content: flex-start;
|
|
2034
|
+
gap: 10px;
|
|
2035
|
+
flex: 0 1 auto;
|
|
2036
|
+
}
|
|
2037
|
+
.settings-switch-copy {
|
|
2038
|
+
color: var(--text-primary);
|
|
2039
|
+
line-height: 1.35;
|
|
2040
|
+
cursor: pointer;
|
|
2041
|
+
}
|
|
2042
|
+
.settings-switch {
|
|
2043
|
+
width: 34px;
|
|
2044
|
+
height: 20px;
|
|
2045
|
+
border: 1px solid color-mix(in srgb, var(--text-tertiary) 42%, var(--control-border));
|
|
2046
|
+
border-radius: var(--radius-pill);
|
|
2047
|
+
background: color-mix(in srgb, var(--surface-1) 82%, var(--surface-0));
|
|
2048
|
+
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--text-tertiary) 8%, transparent);
|
|
2049
|
+
cursor: pointer;
|
|
2050
|
+
flex-shrink: 0;
|
|
2051
|
+
padding: 1px;
|
|
2052
|
+
transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
|
|
2053
|
+
}
|
|
2054
|
+
.settings-switch:hover {
|
|
2055
|
+
border-color: color-mix(in srgb, var(--accent) 38%, var(--control-hover-border));
|
|
2056
|
+
}
|
|
2057
|
+
.settings-switch:focus-visible {
|
|
2058
|
+
outline: 2px solid var(--accent);
|
|
2059
|
+
outline-offset: 2px;
|
|
2060
|
+
}
|
|
2061
|
+
.settings-switch[data-state="checked"] {
|
|
2062
|
+
background: color-mix(in srgb, var(--accent) 18%, var(--surface-1));
|
|
2063
|
+
border-color: color-mix(in srgb, var(--accent) 54%, var(--control-hover-border));
|
|
2064
|
+
box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 30%, transparent);
|
|
2065
|
+
}
|
|
2066
|
+
.settings-switch:disabled {
|
|
2067
|
+
opacity: 0.55;
|
|
2068
|
+
cursor: not-allowed;
|
|
2069
|
+
}
|
|
2070
|
+
.settings-switch-thumb {
|
|
2071
|
+
display: block;
|
|
2072
|
+
width: 16px;
|
|
2073
|
+
height: 16px;
|
|
2074
|
+
border-radius: 50%;
|
|
2075
|
+
background: color-mix(in srgb, var(--surface-0) 88%, white);
|
|
2076
|
+
border: 1px solid color-mix(in srgb, var(--text-tertiary) 24%, transparent);
|
|
2077
|
+
box-shadow: 0 1px 2px rgba(0, 0, 0, 0.35);
|
|
2078
|
+
transition: transform 0.15s ease, background 0.15s ease;
|
|
2079
|
+
transform: translateX(0);
|
|
2080
|
+
}
|
|
2081
|
+
.settings-switch[data-state="checked"] .settings-switch-thumb {
|
|
2082
|
+
transform: translateX(14px);
|
|
2083
|
+
background: color-mix(in srgb, var(--accent) 88%, white);
|
|
2084
|
+
border-color: color-mix(in srgb, var(--accent) 42%, transparent);
|
|
2085
|
+
}
|
|
1762
2086
|
.cm-checkbox {
|
|
1763
2087
|
appearance: none;
|
|
1764
2088
|
width: 16px;
|
|
@@ -1987,6 +2311,7 @@
|
|
|
1987
2311
|
<button class="tab-btn active" id="tabBtn-feed">Feed</button>
|
|
1988
2312
|
<button class="tab-btn" id="tabBtn-health">Health</button>
|
|
1989
2313
|
<button class="tab-btn" id="tabBtn-sync">Sync</button>
|
|
2314
|
+
<button class="tab-btn" id="tabBtn-coordinator-admin">Coordinator Admin</button>
|
|
1990
2315
|
</nav>
|
|
1991
2316
|
<div class="app-notice" id="globalNotice" hidden aria-live="polite"></div>
|
|
1992
2317
|
<div class="viewer-reconnect-overlay" id="viewerReconnectOverlay" hidden>
|
|
@@ -2348,6 +2673,10 @@
|
|
|
2348
2673
|
</div>
|
|
2349
2674
|
</div>
|
|
2350
2675
|
|
|
2676
|
+
<div class="tab-panel" id="tab-coordinator-admin" hidden>
|
|
2677
|
+
<div id="coordinatorAdminMount"></div>
|
|
2678
|
+
</div>
|
|
2679
|
+
|
|
2351
2680
|
<script src="/assets/app.js"></script>
|
|
2352
2681
|
</body>
|
|
2353
2682
|
</html>
|