agentacta 2026.3.12 → 2026.3.27
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/README.md +16 -2
- package/config.js +2 -0
- package/db.js +12 -0
- package/delta-attribution-context.js +57 -0
- package/index.js +93 -13
- package/indexer.js +31 -4
- package/insights.js +260 -0
- package/package.json +4 -1
- package/project-attribution.js +443 -0
- package/public/app.js +313 -22
- package/public/index.html +13 -10
- package/public/style.css +197 -16
package/public/style.css
CHANGED
|
@@ -197,7 +197,12 @@ body.cmdk-open {
|
|
|
197
197
|
display: flex;
|
|
198
198
|
align-items: center;
|
|
199
199
|
justify-content: space-between;
|
|
200
|
-
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.sidebar-header-actions {
|
|
203
|
+
display: flex;
|
|
204
|
+
align-items: center;
|
|
205
|
+
gap: 6px;
|
|
201
206
|
}
|
|
202
207
|
|
|
203
208
|
.sidebar h1 {
|
|
@@ -233,6 +238,13 @@ body.cmdk-open {
|
|
|
233
238
|
color: var(--text-primary);
|
|
234
239
|
}
|
|
235
240
|
|
|
241
|
+
.theme-toggle.active,
|
|
242
|
+
.theme-toggle-mobile.active {
|
|
243
|
+
color: var(--accent);
|
|
244
|
+
border-color: color-mix(in srgb, var(--accent) 40%, transparent);
|
|
245
|
+
background: color-mix(in srgb, var(--accent) 10%, var(--bg-elevated));
|
|
246
|
+
}
|
|
247
|
+
|
|
236
248
|
.theme-toggle svg,
|
|
237
249
|
.theme-toggle-mobile svg {
|
|
238
250
|
width: 16px;
|
|
@@ -605,6 +617,28 @@ body.cmdk-open {
|
|
|
605
617
|
border-radius: 10px;
|
|
606
618
|
}
|
|
607
619
|
|
|
620
|
+
.signal-tag {
|
|
621
|
+
display: inline-flex;
|
|
622
|
+
align-items: center;
|
|
623
|
+
gap: 6px;
|
|
624
|
+
font-size: 11px;
|
|
625
|
+
font-weight: 500;
|
|
626
|
+
color: var(--text-secondary);
|
|
627
|
+
white-space: nowrap;
|
|
628
|
+
}
|
|
629
|
+
.signal-dot {
|
|
630
|
+
width: 7px;
|
|
631
|
+
height: 7px;
|
|
632
|
+
border-radius: 50%;
|
|
633
|
+
flex-shrink: 0;
|
|
634
|
+
}
|
|
635
|
+
.signal-amber .signal-dot { background: var(--amber); }
|
|
636
|
+
.signal-red .signal-dot { background: var(--red); }
|
|
637
|
+
.signal-purple .signal-dot { background: var(--purple); }
|
|
638
|
+
.signal-teal .signal-dot { background: var(--teal); }
|
|
639
|
+
.signal-accent .signal-dot { background: var(--accent); }
|
|
640
|
+
.signal-muted .signal-dot { background: var(--text-tertiary); }
|
|
641
|
+
|
|
608
642
|
.session-type {
|
|
609
643
|
font-size: 11px;
|
|
610
644
|
font-weight: 500;
|
|
@@ -623,6 +657,8 @@ body.cmdk-open {
|
|
|
623
657
|
|
|
624
658
|
.session-meta {
|
|
625
659
|
display: flex;
|
|
660
|
+
align-items: center;
|
|
661
|
+
justify-content: space-between;
|
|
626
662
|
gap: var(--space-lg);
|
|
627
663
|
margin-top: var(--space-sm);
|
|
628
664
|
font-size: 12px;
|
|
@@ -1511,22 +1547,25 @@ mark {
|
|
|
1511
1547
|
.sidebar {
|
|
1512
1548
|
position: fixed;
|
|
1513
1549
|
top: auto;
|
|
1514
|
-
bottom:
|
|
1515
|
-
left:
|
|
1516
|
-
right:
|
|
1517
|
-
|
|
1550
|
+
bottom: calc(24px + env(safe-area-inset-bottom, 0px));
|
|
1551
|
+
left: 50%;
|
|
1552
|
+
right: auto;
|
|
1553
|
+
transform: translateX(-50%);
|
|
1554
|
+
width: auto;
|
|
1518
1555
|
height: auto;
|
|
1519
1556
|
border-right: none;
|
|
1520
|
-
border
|
|
1521
|
-
|
|
1522
|
-
padding
|
|
1557
|
+
border: 1px solid var(--border-default);
|
|
1558
|
+
border-radius: 999px;
|
|
1559
|
+
padding: 8px 12px;
|
|
1523
1560
|
display: flex;
|
|
1524
1561
|
flex-direction: row;
|
|
1525
|
-
|
|
1562
|
+
align-items: center;
|
|
1563
|
+
overflow: visible;
|
|
1526
1564
|
z-index: 100;
|
|
1527
1565
|
background: var(--bg-surface);
|
|
1528
1566
|
backdrop-filter: blur(20px);
|
|
1529
1567
|
-webkit-backdrop-filter: blur(20px);
|
|
1568
|
+
box-shadow: 0 8px 32px rgba(0,0,0,0.28);
|
|
1530
1569
|
}
|
|
1531
1570
|
|
|
1532
1571
|
.sidebar-header { display: none; }
|
|
@@ -1535,29 +1574,30 @@ mark {
|
|
|
1535
1574
|
display: flex;
|
|
1536
1575
|
}
|
|
1537
1576
|
|
|
1577
|
+
.sidebar-header, .cmdk-trigger { display: none; }
|
|
1578
|
+
|
|
1538
1579
|
.nav-section {
|
|
1539
1580
|
display: flex;
|
|
1540
1581
|
flex-direction: row;
|
|
1541
|
-
width: 100%;
|
|
1542
1582
|
padding: 0;
|
|
1543
|
-
gap:
|
|
1583
|
+
gap: 2px;
|
|
1544
1584
|
}
|
|
1545
1585
|
|
|
1546
1586
|
.nav-item {
|
|
1547
|
-
flex:
|
|
1587
|
+
flex: none;
|
|
1548
1588
|
flex-direction: column;
|
|
1549
1589
|
align-items: center;
|
|
1550
1590
|
justify-content: center;
|
|
1551
|
-
padding:
|
|
1591
|
+
padding: 7px 14px 5px;
|
|
1552
1592
|
font-size: 10px;
|
|
1553
1593
|
gap: 3px;
|
|
1554
|
-
border-radius:
|
|
1594
|
+
border-radius: 999px;
|
|
1555
1595
|
letter-spacing: 0.02em;
|
|
1556
1596
|
}
|
|
1557
1597
|
|
|
1558
1598
|
.nav-item::before { display: none; }
|
|
1559
1599
|
|
|
1560
|
-
.nav-item svg { width:
|
|
1600
|
+
.nav-item svg { width: 20px; height: 20px; }
|
|
1561
1601
|
|
|
1562
1602
|
.nav-item.active {
|
|
1563
1603
|
color: var(--accent);
|
|
@@ -1568,7 +1608,7 @@ mark {
|
|
|
1568
1608
|
margin-left: 0;
|
|
1569
1609
|
padding: var(--space-xl) var(--space-lg);
|
|
1570
1610
|
padding-top: calc(var(--space-xl) + env(safe-area-inset-top, 0px));
|
|
1571
|
-
padding-bottom: calc(
|
|
1611
|
+
padding-bottom: calc(100px + max(env(safe-area-inset-bottom, 0px), 20px));
|
|
1572
1612
|
max-width: 100%;
|
|
1573
1613
|
}
|
|
1574
1614
|
|
|
@@ -1911,3 +1951,144 @@ mark {
|
|
|
1911
1951
|
.cmdk-item-sub { display: none; }
|
|
1912
1952
|
.cmdk-item-meta { font-size: 10px; }
|
|
1913
1953
|
}
|
|
1954
|
+
|
|
1955
|
+
/* ── Insights ── */
|
|
1956
|
+
.settings-gear {
|
|
1957
|
+
background: none;
|
|
1958
|
+
border: none;
|
|
1959
|
+
cursor: pointer;
|
|
1960
|
+
padding: 4px;
|
|
1961
|
+
border-radius: var(--radius-sm);
|
|
1962
|
+
color: var(--text-muted);
|
|
1963
|
+
display: flex;
|
|
1964
|
+
align-items: center;
|
|
1965
|
+
justify-content: center;
|
|
1966
|
+
transition: color 0.15s, background 0.15s;
|
|
1967
|
+
}
|
|
1968
|
+
.settings-gear svg { width: 16px; height: 16px; }
|
|
1969
|
+
.settings-gear:hover { color: var(--text-primary); background: var(--hover-bg); }
|
|
1970
|
+
|
|
1971
|
+
.signal-lollipop-row {
|
|
1972
|
+
display: flex;
|
|
1973
|
+
flex-direction: column;
|
|
1974
|
+
margin-bottom: 8px;
|
|
1975
|
+
}
|
|
1976
|
+
.signal-lollipop-expandable {
|
|
1977
|
+
cursor: pointer;
|
|
1978
|
+
}
|
|
1979
|
+
.signal-lollipop-main {
|
|
1980
|
+
display: flex;
|
|
1981
|
+
align-items: center;
|
|
1982
|
+
gap: 10px;
|
|
1983
|
+
}
|
|
1984
|
+
.signal-bar-label {
|
|
1985
|
+
font-size: 13px;
|
|
1986
|
+
color: var(--text-secondary);
|
|
1987
|
+
width: 130px;
|
|
1988
|
+
flex-shrink: 0;
|
|
1989
|
+
}
|
|
1990
|
+
.signal-expand-hint {
|
|
1991
|
+
font-size: 11px;
|
|
1992
|
+
color: var(--text-tertiary);
|
|
1993
|
+
flex-shrink: 0;
|
|
1994
|
+
}
|
|
1995
|
+
.signal-lollipop-desc {
|
|
1996
|
+
display: none;
|
|
1997
|
+
font-size: 12px;
|
|
1998
|
+
color: var(--text-tertiary);
|
|
1999
|
+
padding: 5px 0 3px 0;
|
|
2000
|
+
line-height: 1.4;
|
|
2001
|
+
}
|
|
2002
|
+
.signal-lollipop-open .signal-lollipop-desc {
|
|
2003
|
+
display: block;
|
|
2004
|
+
}
|
|
2005
|
+
.signal-lollipop-open .signal-expand-hint {
|
|
2006
|
+
color: var(--text-secondary);
|
|
2007
|
+
}
|
|
2008
|
+
.signal-lollipop-track {
|
|
2009
|
+
flex: 1;
|
|
2010
|
+
height: 20px;
|
|
2011
|
+
}
|
|
2012
|
+
.signal-lollipop-svg {
|
|
2013
|
+
display: block;
|
|
2014
|
+
overflow: visible;
|
|
2015
|
+
}
|
|
2016
|
+
.signal-bar-count {
|
|
2017
|
+
font-size: 12px;
|
|
2018
|
+
font-variant-numeric: tabular-nums;
|
|
2019
|
+
color: var(--text-muted);
|
|
2020
|
+
width: 36px;
|
|
2021
|
+
text-align: right;
|
|
2022
|
+
flex-shrink: 0;
|
|
2023
|
+
}
|
|
2024
|
+
.stat-desc {
|
|
2025
|
+
font-size: 11px;
|
|
2026
|
+
color: var(--text-tertiary);
|
|
2027
|
+
margin-top: 4px;
|
|
2028
|
+
line-height: 1.3;
|
|
2029
|
+
}
|
|
2030
|
+
|
|
2031
|
+
.insight-row { cursor: pointer; }
|
|
2032
|
+
.insight-row:hover { background: var(--hover-bg); }
|
|
2033
|
+
.insight-callout {
|
|
2034
|
+
display: flex;
|
|
2035
|
+
align-items: flex-start;
|
|
2036
|
+
gap: 8px;
|
|
2037
|
+
padding: 8px 0;
|
|
2038
|
+
border-bottom: 1px solid var(--border-color);
|
|
2039
|
+
font-size: 13px;
|
|
2040
|
+
}
|
|
2041
|
+
.insight-callout:last-child { border-bottom: none; }
|
|
2042
|
+
.insight-detail { color: var(--text-secondary); }
|
|
2043
|
+
.insights-signals { margin-top: 8px; }
|
|
2044
|
+
|
|
2045
|
+
.confusion-badge {
|
|
2046
|
+
display: inline-flex;
|
|
2047
|
+
align-items: center;
|
|
2048
|
+
gap: 4px;
|
|
2049
|
+
padding: 1px 7px;
|
|
2050
|
+
border-radius: 999px;
|
|
2051
|
+
font-size: 11px;
|
|
2052
|
+
font-weight: 600;
|
|
2053
|
+
letter-spacing: 0.02em;
|
|
2054
|
+
}
|
|
2055
|
+
|
|
2056
|
+
.confusion-label {
|
|
2057
|
+
font-weight: 400;
|
|
2058
|
+
font-size: 10px;
|
|
2059
|
+
opacity: 0.7;
|
|
2060
|
+
text-transform: uppercase;
|
|
2061
|
+
letter-spacing: 0.04em;
|
|
2062
|
+
}
|
|
2063
|
+
|
|
2064
|
+
.confusion-issue-count {
|
|
2065
|
+
background: color-mix(in srgb, var(--text-tertiary) 15%, transparent);
|
|
2066
|
+
color: var(--text-secondary);
|
|
2067
|
+
}
|
|
2068
|
+
|
|
2069
|
+
.insight-scores {
|
|
2070
|
+
font-size: 11px;
|
|
2071
|
+
color: var(--text-tertiary);
|
|
2072
|
+
white-space: nowrap;
|
|
2073
|
+
text-transform: uppercase;
|
|
2074
|
+
letter-spacing: 0.05em;
|
|
2075
|
+
}
|
|
2076
|
+
|
|
2077
|
+
.insight-score-value {
|
|
2078
|
+
font-weight: 600;
|
|
2079
|
+
color: var(--text-secondary);
|
|
2080
|
+
}
|
|
2081
|
+
|
|
2082
|
+
.insight-signal-tags {
|
|
2083
|
+
display: flex;
|
|
2084
|
+
flex-wrap: wrap;
|
|
2085
|
+
gap: 5px;
|
|
2086
|
+
align-items: center;
|
|
2087
|
+
}
|
|
2088
|
+
.confusion-green { background: #dcfce7; color: #166534; }
|
|
2089
|
+
.confusion-yellow { background: #fef9c3; color: #854d0e; }
|
|
2090
|
+
.confusion-red { background: #fee2e2; color: #991b1b; }
|
|
2091
|
+
[data-theme="dark"] .confusion-green { background: #14532d; color: #86efac; }
|
|
2092
|
+
[data-theme="dark"] .confusion-yellow { background: #713f12; color: #fde68a; }
|
|
2093
|
+
[data-theme="dark"] .confusion-red { background: #7f1d1d; color: #fca5a5; }
|
|
2094
|
+
|