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.
- package/dist/server.js +16 -1
- package/dist/sources/msg.js +188 -13
- package/dist/sources/session-codex.js +72 -6
- package/dist/sources/session.js +84 -11
- package/dist/sources/transcript-window.js +35 -0
- package/dist/static/app.js +171 -19
- package/dist/static/index.html +1 -1
- package/dist/static/style.css +98 -62
- package/package.json +1 -1
package/dist/static/style.css
CHANGED
|
@@ -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
|
|
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
|
-
|
|
542
|
-
|
|
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:
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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(--
|
|
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:
|
|
2044
|
-
align-items:
|
|
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
|
-
|
|
2053
|
-
gap:
|
|
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(--
|
|
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-
|
|
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(--
|
|
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
|
|