ec-web 0.0.5 → 0.0.6

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.
@@ -313,6 +313,7 @@ tr:hover td { background: var(--bg2); }
313
313
  .msg-peers { width: 240px; border-right: 1px solid var(--border); flex-shrink: 0; }
314
314
  .msg-stream { flex: 1; padding: 0; }
315
315
  .msg-stream-body { padding: 12px; }
316
+ .msg-load-more, .sess-load-more { display: block; margin: 0 auto 14px; }
316
317
  .list-item {
317
318
  padding: 8px 12px; cursor: pointer; border-bottom: 1px solid var(--border);
318
319
  }
@@ -523,7 +524,9 @@ tr:hover td { background: var(--bg2); }
523
524
  .blk-tool { background: var(--bg2); border: 1px solid var(--border); border-radius: 8px; padding: 8px 10px; }
524
525
  .tool-head { cursor: pointer; font-size: 12px; }
525
526
  .blk-tool[open] .tool-head { margin-bottom: 4px; }
526
- .tool-params:empty { display: none; }
527
+ .tool-params { --collapse-fade-bg: var(--bg2); }
528
+ .tool-params-body { --collapse-preview-lines: 12; line-height: 1.5; }
529
+ .tool-params-body.is-collapsed { max-height: calc(var(--collapse-preview-lines) * 1.5em); }
527
530
  .tool-name { font-weight: 600; color: var(--accent); font-family: ui-monospace, "SF Mono", Consolas, monospace; }
528
531
  .tool-param { display: flex; gap: 8px; margin-top: 3px; font-size: 12px; align-items: baseline; }
529
532
  .tool-param .pk { color: var(--dim); flex-shrink: 0; min-width: 64px; }
@@ -533,17 +536,60 @@ tr:hover td { background: var(--bg2); }
533
536
  white-space: pre-wrap; display: block; flex: 1;
534
537
  }
535
538
 
536
- /* 工具结果块(默认展开,可折叠) */
539
+ /* 长结果与模型输出共用的折叠交互 */
537
540
  .blk-result { font-size: 12px; }
538
541
  .blk-result summary { cursor: pointer; color: var(--dim); }
539
542
  .blk-result.err summary { color: var(--red); }
543
+ .collapse-content { position: relative; }
544
+ .result-content { --collapse-fade-bg: var(--bg); margin-top: 6px; }
545
+ .collapse-content::after {
546
+ content: ''; position: absolute; right: 0; bottom: 0; left: 0; height: 36px;
547
+ display: none; pointer-events: none;
548
+ background: linear-gradient(to bottom, transparent, var(--collapse-fade-bg, var(--bg)));
549
+ }
550
+ .result-content::after { right: 1px; bottom: 1px; left: 1px; }
551
+ .collapse-content.is-collapsed::after { display: block; }
552
+ .collapse-body { overflow: hidden; transition: max-height .26s cubic-bezier(.2, .75, .25, 1); }
540
553
  .result-body {
541
- margin-top: 6px; padding: 8px 10px; background: var(--bg); border: 1px solid var(--border);
542
- border-radius: 6px; white-space: pre-wrap; word-break: break-word; max-height: 280px; overflow-y: auto;
554
+ --collapse-preview-lines: 12;
555
+ padding: 8px 10px; background: var(--bg); border: 1px solid var(--border);
556
+ border-radius: 6px; white-space: pre-wrap; word-break: break-word;
543
557
  font-family: ui-monospace, "SF Mono", Consolas, monospace; font-size: 11.5px; line-height: 1.5;
544
558
  }
559
+ .result-body.is-collapsed {
560
+ max-height: calc(var(--collapse-preview-lines) * 1.5em + 16px);
561
+ }
562
+ .model-output-body,
563
+ .user-input-body {
564
+ --collapse-preview-lines: 12;
565
+ white-space: pre-wrap; word-break: break-word; line-height: 1.55;
566
+ }
567
+ .model-output-body.is-collapsed,
568
+ .user-input-body.is-collapsed { max-height: calc(var(--collapse-preview-lines) * 1.55em); }
569
+ .chat-bubble.model-output-content { --collapse-fade-bg: var(--bg3); }
570
+ .chat-bubble.user-input-content { --collapse-fade-bg: var(--user-bubble-bg); }
571
+ .collapse-arrow-toggle {
572
+ position: absolute; bottom: 0; left: 42%; z-index: 1; display: inline-flex;
573
+ align-items: center; justify-content: center; width: 18px; height: 18px; padding: 0;
574
+ border: 0; border-radius: 50%; background: var(--collapse-fade-bg, var(--bg)); color: var(--dim); cursor: pointer;
575
+ box-shadow: 0 0 0 1px var(--collapse-fade-bg, var(--bg));
576
+ transition: color .16s ease, transform .16s ease;
577
+ }
578
+ .collapse-arrow-toggle:hover { color: var(--fg); }
579
+ .collapse-arrow-toggle:active { transform: translateY(1px); }
580
+ .collapse-arrow-toggle:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
581
+ .collapse-arrow-icon {
582
+ width: 6px; height: 6px; margin-top: -2px; border-right: 1.5px solid currentColor;
583
+ border-bottom: 1.5px solid currentColor; transform: rotate(45deg); transform-origin: center;
584
+ transition: transform .22s cubic-bezier(.2, .75, .25, 1);
585
+ }
586
+ .collapse-arrow-toggle[aria-expanded="true"] .collapse-arrow-icon { transform: rotate(225deg); }
545
587
  .blk-result.err .result-body { border-color: var(--red); }
546
588
 
589
+ @media (prefers-reduced-motion: reduce) {
590
+ .collapse-body, .collapse-arrow-toggle, .collapse-arrow-icon { transition: none; }
591
+ }
592
+
547
593
  /* Runner 子任务:每个 task 聚合成一个实时更新的生命周期条目 */
548
594
  .blk-subtask { padding: 9px 11px; border: 1px solid var(--border); border-radius: 6px; background: var(--bg2); }
549
595
  .subtask-main { display: grid; grid-template-columns: 8px max-content minmax(0, 1fr); align-items: center; gap: 8px; min-width: 0; }
@@ -608,39 +654,51 @@ tr:hover td { background: var(--bg2); }
608
654
  .usage-subpanel.active { display: flex; flex-direction: column; }
609
655
  #usage-overview { overflow-y: auto; padding: 16px; }
610
656
  .overview-filters {
657
+ display: flex;
658
+ align-items: center;
659
+ gap: 10px;
660
+ flex-wrap: wrap;
611
661
  margin-bottom: 16px;
612
662
  padding: 12px;
613
663
  background: var(--bg2);
614
664
  border: 1px solid var(--border);
615
665
  border-radius: 8px;
616
666
  }
617
- .ov-range-tabs {
667
+ .ov-range-tabs,
668
+ .exp-range-tabs {
618
669
  display: flex;
619
- gap: 8px;
670
+ gap: 2px;
671
+ width: fit-content;
672
+ max-width: 100%;
673
+ padding: 2px;
620
674
  flex-wrap: wrap;
621
- }
622
- .ov-range-btn {
623
- padding: 6px 14px;
624
- font-size: 12px;
625
- border: 1px solid var(--border);
626
675
  background: var(--bg3);
627
- color: var(--fg);
676
+ border-radius: 6px;
677
+ }
678
+ .ov-range-btn,
679
+ .exp-range-btn {
680
+ padding: 4px 12px;
681
+ border: none;
628
682
  border-radius: 5px;
683
+ background: transparent;
684
+ color: var(--dim);
629
685
  cursor: pointer;
630
- transition: all 0.2s;
686
+ font-family: inherit;
687
+ font-size: 12px;
688
+ font-weight: 600;
689
+ line-height: 1.4;
690
+ white-space: nowrap;
691
+ transition: background .16s ease, color .16s ease;
631
692
  }
632
- .ov-range-btn:hover {
633
- border-color: var(--accent);
693
+ .ov-range-btn:hover,
694
+ .exp-range-btn:hover { color: var(--fg); }
695
+ .ov-range-btn.active,
696
+ .exp-range-btn.active {
697
+ background: var(--bg2);
634
698
  color: var(--accent);
635
699
  }
636
- .ov-range-btn.active {
637
- background: var(--accent);
638
- color: white;
639
- border-color: var(--accent);
640
- }
641
700
  .ov-custom-date {
642
701
  display: none;
643
- margin-top: 12px;
644
702
  gap: 10px;
645
703
  align-items: center;
646
704
  }
@@ -2002,55 +2060,28 @@ tr.ag-disabled .ag-name { color: var(--dim); }
2002
2060
 
2003
2061
  /* ── Explorer time filters (类似总览的时间选择) ── */
2004
2062
  .exp-time-filters {
2063
+ display: flex;
2064
+ align-items: center;
2065
+ gap: 10px;
2066
+ flex-wrap: wrap;
2005
2067
  margin-bottom: 16px;
2006
2068
  padding: 12px;
2007
- background: var(--bg3);
2069
+ background: var(--bg2);
2008
2070
  border-radius: 8px;
2009
2071
  border: 1px solid var(--border);
2010
2072
  }
2011
2073
 
2012
- .exp-range-tabs {
2013
- display: flex;
2014
- gap: 8px;
2015
- flex-wrap: wrap;
2016
- margin-bottom: 8px;
2017
- }
2018
-
2019
- .exp-range-btn {
2020
- padding: 6px 12px;
2021
- font-size: 12px;
2022
- border: 1px solid var(--border);
2023
- background: var(--bg2);
2024
- color: var(--fg);
2025
- border-radius: 6px;
2026
- cursor: pointer;
2027
- transition: all 0.2s;
2028
- }
2029
-
2030
- .exp-range-btn:hover {
2031
- background: var(--bg3);
2032
- border-color: var(--accent);
2033
- }
2034
-
2035
- .exp-range-btn.active {
2036
- background: var(--accent);
2037
- color: white;
2038
- border-color: var(--accent);
2039
- }
2040
-
2041
2074
  .exp-custom-date {
2042
2075
  display: flex;
2043
- gap: 12px;
2044
- align-items: flex-end;
2076
+ gap: 10px;
2077
+ align-items: center;
2045
2078
  flex-wrap: wrap;
2046
- padding-top: 8px;
2047
- border-top: 1px solid var(--border);
2048
2079
  }
2049
2080
 
2050
2081
  .exp-custom-date label {
2051
2082
  display: flex;
2052
- flex-direction: column;
2053
- gap: 4px;
2083
+ align-items: center;
2084
+ gap: 6px;
2054
2085
  font-size: 12px;
2055
2086
  color: var(--dim);
2056
2087
  }
@@ -2080,6 +2111,11 @@ tr.ag-disabled .ag-name { color: var(--dim); }
2080
2111
  opacity: 0.9;
2081
2112
  }
2082
2113
 
2114
+ @media (max-width: 720px) {
2115
+ .ov-custom-date,
2116
+ .exp-custom-date { flex-basis: 100%; }
2117
+ }
2118
+
2083
2119
  /* ── Explorer filters (优化后的样式) ── */
2084
2120
  .explorer-filters {
2085
2121
  display: flex;
@@ -2088,7 +2124,7 @@ tr.ag-disabled .ag-name { color: var(--dim); }
2088
2124
  flex-wrap: wrap;
2089
2125
  margin-bottom: 16px;
2090
2126
  padding: 12px;
2091
- background: var(--bg3);
2127
+ background: var(--bg2);
2092
2128
  border-radius: 8px;
2093
2129
  border: 1px solid var(--border);
2094
2130
  }
@@ -2215,14 +2251,14 @@ tr.ag-disabled .ag-name { color: var(--dim); }
2215
2251
  .mon-toolbar { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
2216
2252
  .mon-toolbar-label { font-size: 12px; color: var(--dim); font-weight: 500; }
2217
2253
  .mon-range-tabs { display: flex; gap: 2px; background: var(--bg3); border-radius: 6px; padding: 2px; }
2218
- .mon-range { padding: 4px 12px; border: none; background: none; border-radius: 5px; font-size: 12px; font-family: inherit; color: var(--dim); cursor: pointer; }
2254
+ .mon-range { padding: 4px 12px; border: none; background: none; border-radius: 5px; font-family: inherit; font-size: 12px; font-weight: 600; line-height: 1.4; color: var(--dim); cursor: pointer; }
2219
2255
  .mon-range:hover { color: var(--fg); }
2220
- .mon-range.active { background: var(--accent); color: #fff; }
2221
- .mon-row2 { display: flex; gap: 14px; }
2256
+ .mon-range.active { background: var(--bg2); color: var(--accent); }
2257
+ .mon-row2 { display: flex; flex: 0 0 auto; gap: 14px; }
2222
2258
  .mon-chart { flex: 1; height: 250px; min-width: 0; background: var(--bg2); border: 1px solid var(--border); border-radius: 10px; padding: 6px; box-shadow: 0 1px 3px rgba(0,0,0,0.06); }
2223
2259
  @media (max-width: 900px) {
2224
2260
  .mon-row2 { flex-direction: column; }
2225
- .mon-chart { height: 190px; }
2261
+ .mon-chart { flex: 0 0 190px; height: 190px; }
2226
2262
  .mon-toolbar { flex-wrap: wrap; }
2227
2263
  }
2228
2264
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ec-web",
3
- "version": "0.0.5",
3
+ "version": "0.0.6",
4
4
  "description": "Web console and monitoring dashboard for EvolCore",
5
5
  "type": "module",
6
6
  "bin": {