Add the agents usage bar widget

This commit is contained in:
SirBlob committed 2026-10-04 02:24:47 -04:00
1 parent 854ce5fe5a
commit 6c83f7089c
18 files changed
+1936 -4

No files matched your search

@@ -0,0 +1,59 @@
function parseUsage(raw) {
var values = {}
var lines = String(raw || "").split("\n")
for (var i = 0; i < lines.length; i++) {
var tabIndex = lines[i].indexOf("\t")
if (tabIndex === -1) continue
values[lines[i].substring(0, tabIndex)] = lines[i].substring(tabIndex + 1).trim()
}
return {
session: limitFrom(values, "session"),
weekly: limitFrom(values, "weekly"),
weeklyOpus: limitFrom(values, "weekly_opus")
}
}
function limitFrom(values, name) {
var percentText = values[name + "_percent"]
if (percentText === undefined) return null
var percent = parseInt(percentText, 10)
return {
percent: isNaN(percent) ? 0 : Math.max(0, Math.min(100, percent)),
resetsAt: values[name + "_resets"] || ""
}
}
function formatTimeUntil(resetsAt, nowMs) {
if (!resetsAt) return ""
var resetMs = new Date(resetsAt).getTime()
if (isNaN(resetMs)) return ""
var totalMinutes = Math.max(0, Math.round((resetMs - nowMs) / 60000))
var days = Math.floor(totalMinutes / 1440)
var hours = Math.floor((totalMinutes % 1440) / 60)
var minutes = totalMinutes % 60
if (days > 0) return days + "d " + hours + "h"
if (hours > 0) return hours + "h " + minutes + "m"
return minutes + "m"
}
function limitDetail(limit, nowMs) {
if (!limit) return ""
var timeUntilReset = formatTimeUntil(limit.resetsAt, nowMs)
if (timeUntilReset === "") return limit.percent + "%"
return limit.percent + "% resets in " + timeUntilReset
}
if (typeof module !== "undefined") {
module.exports = {
parseUsage: parseUsage,
formatTimeUntil: formatTimeUntil,
limitDetail: limitDetail
}
}