agenttop 0.11.4 → 0.11.5
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 +35 -13
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -3082,7 +3082,18 @@ var sessions = [];
|
|
|
3082
3082
|
var refreshInFlight = false;
|
|
3083
3083
|
var listeners = /* @__PURE__ */ new Set();
|
|
3084
3084
|
var getCachedSessions = () => sessions;
|
|
3085
|
+
var hashSessions = (list) => {
|
|
3086
|
+
let h = "";
|
|
3087
|
+
for (const s of list) {
|
|
3088
|
+
h += `${s.sessionId}:${s.status}:${s.pid}:${s.lastActivity}:${s.usage.inputTokens}:${s.usage.outputTokens};`;
|
|
3089
|
+
}
|
|
3090
|
+
return h;
|
|
3091
|
+
};
|
|
3092
|
+
var lastHash = "";
|
|
3085
3093
|
var setCachedSessions = (next) => {
|
|
3094
|
+
const nextHash = hashSessions(next);
|
|
3095
|
+
if (nextHash === lastHash) return;
|
|
3096
|
+
lastHash = nextHash;
|
|
3086
3097
|
sessions = next;
|
|
3087
3098
|
for (const fn of listeners) fn(next);
|
|
3088
3099
|
};
|
|
@@ -3588,26 +3599,37 @@ var useSessions = (allUsers, filter, archivedIds, viewingArchive) => {
|
|
|
3588
3599
|
const [selectedIndex, setSelectedIndex] = useState11(0);
|
|
3589
3600
|
const [expandedKeys, setExpandedKeys] = useState11(/* @__PURE__ */ new Set());
|
|
3590
3601
|
const usageOverrides = useRef5(/* @__PURE__ */ new Map());
|
|
3591
|
-
const
|
|
3592
|
-
|
|
3593
|
-
|
|
3594
|
-
setSessions(filtered);
|
|
3595
|
-
triggerRefresh(allUsers);
|
|
3596
|
-
}, [allUsers, filter, archivedIds, viewingArchive]);
|
|
3597
|
-
useEffect6(() => {
|
|
3598
|
-
const unsubscribe = subscribe(() => {
|
|
3602
|
+
const lastSessionIdsRef = useRef5("");
|
|
3603
|
+
const updateSessions = useCallback3(
|
|
3604
|
+
(force) => {
|
|
3599
3605
|
const found = getCachedSessions();
|
|
3600
3606
|
const filtered = enrichAndFilter(found, usageOverrides.current, filter, archivedIds, viewingArchive);
|
|
3607
|
+
const key = filtered.map((s) => `${s.sessionId}:${s.status}:${s.lastActivity}`).join(",");
|
|
3608
|
+
if (!force && key === lastSessionIdsRef.current) return;
|
|
3609
|
+
lastSessionIdsRef.current = key;
|
|
3601
3610
|
setSessions(filtered);
|
|
3602
|
-
}
|
|
3611
|
+
},
|
|
3612
|
+
[filter, archivedIds, viewingArchive]
|
|
3613
|
+
);
|
|
3614
|
+
const refresh = useCallback3(() => {
|
|
3615
|
+
updateSessions(true);
|
|
3616
|
+
triggerRefresh(allUsers);
|
|
3617
|
+
}, [allUsers, updateSessions]);
|
|
3618
|
+
useEffect6(() => {
|
|
3619
|
+
const unsubscribe = subscribe(() => updateSessions());
|
|
3603
3620
|
return unsubscribe;
|
|
3604
|
-
}, [
|
|
3621
|
+
}, [updateSessions]);
|
|
3622
|
+
const hasSessions = sessions2.length > 0;
|
|
3623
|
+
const refreshRef = useRef5(refresh);
|
|
3624
|
+
refreshRef.current = refresh;
|
|
3625
|
+
useEffect6(() => {
|
|
3626
|
+
refreshRef.current();
|
|
3627
|
+
}, []);
|
|
3605
3628
|
useEffect6(() => {
|
|
3606
|
-
|
|
3607
|
-
const pollMs = sessions2.length > 0 ? ACTIVE_POLL_MS : IDLE_POLL_MS;
|
|
3629
|
+
const pollMs = hasSessions ? ACTIVE_POLL_MS : IDLE_POLL_MS;
|
|
3608
3630
|
const interval = setInterval(() => triggerRefresh(allUsers), pollMs);
|
|
3609
3631
|
return () => clearInterval(interval);
|
|
3610
|
-
}, [
|
|
3632
|
+
}, [allUsers, hasSessions]);
|
|
3611
3633
|
const groups = useMemo2(() => buildGroups(sessions2, expandedKeys), [sessions2, expandedKeys]);
|
|
3612
3634
|
const visibleItems = useMemo2(() => buildVisibleItems(groups), [groups]);
|
|
3613
3635
|
const itemCountRef = useRef5(visibleItems.length);
|