@tokscale/cli 1.4.3 → 2.0.0
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.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +128 -0
- package/dist/index.js.map +1 -0
- package/package.json +19 -26
- package/dist/auth.d.ts +0 -17
- package/dist/auth.d.ts.map +0 -1
- package/dist/auth.js +0 -162
- package/dist/auth.js.map +0 -1
- package/dist/cli.d.ts +0 -9
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js +0 -1550
- package/dist/cli.js.map +0 -1
- package/dist/credentials.d.ts +0 -50
- package/dist/credentials.d.ts.map +0 -1
- package/dist/credentials.js +0 -151
- package/dist/credentials.js.map +0 -1
- package/dist/cursor.d.ts +0 -167
- package/dist/cursor.d.ts.map +0 -1
- package/dist/cursor.js +0 -906
- package/dist/cursor.js.map +0 -1
- package/dist/date-utils.d.ts +0 -10
- package/dist/date-utils.d.ts.map +0 -1
- package/dist/date-utils.js +0 -47
- package/dist/date-utils.js.map +0 -1
- package/dist/graph-types.d.ts +0 -142
- package/dist/graph-types.d.ts.map +0 -1
- package/dist/graph-types.js +0 -6
- package/dist/graph-types.js.map +0 -1
- package/dist/native-runner.d.ts +0 -11
- package/dist/native-runner.d.ts.map +0 -1
- package/dist/native-runner.js +0 -77
- package/dist/native-runner.js.map +0 -1
- package/dist/native.d.ts +0 -106
- package/dist/native.d.ts.map +0 -1
- package/dist/native.js +0 -302
- package/dist/native.js.map +0 -1
- package/dist/sessions/types.d.ts +0 -28
- package/dist/sessions/types.d.ts.map +0 -1
- package/dist/sessions/types.js +0 -27
- package/dist/sessions/types.js.map +0 -1
- package/dist/spinner.d.ts +0 -75
- package/dist/spinner.d.ts.map +0 -1
- package/dist/spinner.js +0 -203
- package/dist/spinner.js.map +0 -1
- package/dist/submit.d.ts +0 -23
- package/dist/submit.d.ts.map +0 -1
- package/dist/submit.js +0 -294
- package/dist/submit.js.map +0 -1
- package/dist/table.d.ts +0 -42
- package/dist/table.d.ts.map +0 -1
- package/dist/table.js +0 -181
- package/dist/table.js.map +0 -1
- package/dist/tui/App.d.ts +0 -4
- package/dist/tui/App.d.ts.map +0 -1
- package/dist/tui/App.js +0 -333
- package/dist/tui/App.js.map +0 -1
- package/dist/tui/components/BarChart.d.ts +0 -17
- package/dist/tui/components/BarChart.d.ts.map +0 -1
- package/dist/tui/components/BarChart.js +0 -146
- package/dist/tui/components/BarChart.js.map +0 -1
- package/dist/tui/components/DailyView.d.ts +0 -13
- package/dist/tui/components/DailyView.d.ts.map +0 -1
- package/dist/tui/components/DailyView.js +0 -86
- package/dist/tui/components/DailyView.js.map +0 -1
- package/dist/tui/components/DateBreakdownPanel.d.ts +0 -7
- package/dist/tui/components/DateBreakdownPanel.d.ts.map +0 -1
- package/dist/tui/components/DateBreakdownPanel.js +0 -36
- package/dist/tui/components/DateBreakdownPanel.js.map +0 -1
- package/dist/tui/components/Footer.d.ts +0 -28
- package/dist/tui/components/Footer.d.ts.map +0 -1
- package/dist/tui/components/Footer.js +0 -130
- package/dist/tui/components/Footer.js.map +0 -1
- package/dist/tui/components/Header.d.ts +0 -9
- package/dist/tui/components/Header.d.ts.map +0 -1
- package/dist/tui/components/Header.js +0 -20
- package/dist/tui/components/Header.js.map +0 -1
- package/dist/tui/components/Legend.d.ts +0 -7
- package/dist/tui/components/Legend.d.ts.map +0 -1
- package/dist/tui/components/Legend.js +0 -16
- package/dist/tui/components/Legend.js.map +0 -1
- package/dist/tui/components/LoadingSpinner.d.ts +0 -8
- package/dist/tui/components/LoadingSpinner.d.ts.map +0 -1
- package/dist/tui/components/LoadingSpinner.js +0 -55
- package/dist/tui/components/LoadingSpinner.js.map +0 -1
- package/dist/tui/components/ModelRow.d.ts +0 -13
- package/dist/tui/components/ModelRow.d.ts.map +0 -1
- package/dist/tui/components/ModelRow.js +0 -15
- package/dist/tui/components/ModelRow.js.map +0 -1
- package/dist/tui/components/ModelView.d.ts +0 -13
- package/dist/tui/components/ModelView.d.ts.map +0 -1
- package/dist/tui/components/ModelView.js +0 -96
- package/dist/tui/components/ModelView.js.map +0 -1
- package/dist/tui/components/OverviewView.d.ts +0 -14
- package/dist/tui/components/OverviewView.d.ts.map +0 -1
- package/dist/tui/components/OverviewView.js +0 -65
- package/dist/tui/components/OverviewView.js.map +0 -1
- package/dist/tui/components/StatsView.d.ts +0 -14
- package/dist/tui/components/StatsView.d.ts.map +0 -1
- package/dist/tui/components/StatsView.js +0 -102
- package/dist/tui/components/StatsView.js.map +0 -1
- package/dist/tui/components/TokenBreakdown.d.ts +0 -14
- package/dist/tui/components/TokenBreakdown.d.ts.map +0 -1
- package/dist/tui/components/TokenBreakdown.js +0 -10
- package/dist/tui/components/TokenBreakdown.js.map +0 -1
- package/dist/tui/components/index.d.ts +0 -16
- package/dist/tui/components/index.d.ts.map +0 -1
- package/dist/tui/components/index.js +0 -13
- package/dist/tui/components/index.js.map +0 -1
- package/dist/tui/config/settings.d.ts +0 -15
- package/dist/tui/config/settings.d.ts.map +0 -1
- package/dist/tui/config/settings.js +0 -147
- package/dist/tui/config/settings.js.map +0 -1
- package/dist/tui/config/themes.d.ts +0 -15
- package/dist/tui/config/themes.d.ts.map +0 -1
- package/dist/tui/config/themes.js +0 -82
- package/dist/tui/config/themes.js.map +0 -1
- package/dist/tui/hooks/useData.d.ts +0 -19
- package/dist/tui/hooks/useData.d.ts.map +0 -1
- package/dist/tui/hooks/useData.js +0 -468
- package/dist/tui/hooks/useData.js.map +0 -1
- package/dist/tui/index.d.ts +0 -4
- package/dist/tui/index.d.ts.map +0 -1
- package/dist/tui/index.js +0 -36
- package/dist/tui/index.js.map +0 -1
- package/dist/tui/types/index.d.ts +0 -137
- package/dist/tui/types/index.d.ts.map +0 -1
- package/dist/tui/types/index.js +0 -26
- package/dist/tui/types/index.js.map +0 -1
- package/dist/tui/utils/cleanup.d.ts +0 -22
- package/dist/tui/utils/cleanup.d.ts.map +0 -1
- package/dist/tui/utils/cleanup.js +0 -59
- package/dist/tui/utils/cleanup.js.map +0 -1
- package/dist/tui/utils/colors.d.ts +0 -19
- package/dist/tui/utils/colors.d.ts.map +0 -1
- package/dist/tui/utils/colors.js +0 -71
- package/dist/tui/utils/colors.js.map +0 -1
- package/dist/tui/utils/format.d.ts +0 -7
- package/dist/tui/utils/format.d.ts.map +0 -1
- package/dist/tui/utils/format.js +0 -45
- package/dist/tui/utils/format.js.map +0 -1
- package/dist/tui/utils/responsive.d.ts +0 -5
- package/dist/tui/utils/responsive.d.ts.map +0 -1
- package/dist/tui/utils/responsive.js +0 -5
- package/dist/tui/utils/responsive.js.map +0 -1
- package/dist/wrapped.d.ts +0 -43
- package/dist/wrapped.d.ts.map +0 -1
- package/dist/wrapped.js +0 -719
- package/dist/wrapped.js.map +0 -1
- package/src/auth.ts +0 -211
- package/src/cli.ts +0 -1892
- package/src/credentials.ts +0 -176
- package/src/cursor.ts +0 -1044
- package/src/date-utils.ts +0 -51
- package/src/graph-types.ts +0 -175
- package/src/native-runner.js +0 -4
- package/src/native-runner.ts +0 -91
- package/src/native.ts +0 -633
- package/src/sessions/types.ts +0 -59
- package/src/spinner.ts +0 -283
- package/src/submit.ts +0 -360
- package/src/table.ts +0 -233
- package/src/tui/App.tsx +0 -453
- package/src/tui/components/BarChart.tsx +0 -205
- package/src/tui/components/DailyView.tsx +0 -132
- package/src/tui/components/DateBreakdownPanel.tsx +0 -79
- package/src/tui/components/Footer.tsx +0 -380
- package/src/tui/components/Header.tsx +0 -68
- package/src/tui/components/Legend.tsx +0 -39
- package/src/tui/components/LoadingSpinner.tsx +0 -81
- package/src/tui/components/ModelRow.tsx +0 -47
- package/src/tui/components/ModelView.tsx +0 -147
- package/src/tui/components/OverviewView.tsx +0 -121
- package/src/tui/components/StatsView.tsx +0 -249
- package/src/tui/components/TokenBreakdown.tsx +0 -46
- package/src/tui/components/index.ts +0 -15
- package/src/tui/config/settings.ts +0 -183
- package/src/tui/config/themes.ts +0 -115
- package/src/tui/hooks/useData.ts +0 -558
- package/src/tui/index.tsx +0 -44
- package/src/tui/opentui.d.ts +0 -166
- package/src/tui/types/index.ts +0 -173
- package/src/tui/utils/cleanup.ts +0 -65
- package/src/tui/utils/colors.ts +0 -78
- package/src/tui/utils/format.ts +0 -36
- package/src/tui/utils/responsive.ts +0 -8
- package/src/types.d.ts +0 -28
- package/src/wrapped.ts +0 -848
package/dist/tui/App.js
DELETED
|
@@ -1,333 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/solid/jsx-runtime";
|
|
2
|
-
import { createEffect, createSignal, Switch, Match, onCleanup } from "solid-js";
|
|
3
|
-
import { useKeyboard, useTerminalDimensions, useRenderer } from "@opentui/solid";
|
|
4
|
-
import clipboardy from "clipboardy";
|
|
5
|
-
import { Header } from "./components/Header.js";
|
|
6
|
-
import { Footer } from "./components/Footer.js";
|
|
7
|
-
import { ModelView } from "./components/ModelView.js";
|
|
8
|
-
import { DailyView } from "./components/DailyView.js";
|
|
9
|
-
import { StatsView } from "./components/StatsView.js";
|
|
10
|
-
import { OverviewView } from "./components/OverviewView.js";
|
|
11
|
-
import { LoadingSpinner } from "./components/LoadingSpinner.js";
|
|
12
|
-
import { useData } from "./hooks/useData.js";
|
|
13
|
-
import { DEFAULT_PALETTE, getPaletteNames } from "./config/themes.js";
|
|
14
|
-
import { loadSettings, saveSettings, getCacheTimestamp } from "./config/settings.js";
|
|
15
|
-
import { TABS, ALL_SOURCES } from "./types/index.js";
|
|
16
|
-
const PALETTE_NAMES = getPaletteNames();
|
|
17
|
-
const SOURCE_HOTKEYS = {
|
|
18
|
-
"1": "opencode",
|
|
19
|
-
"2": "claude",
|
|
20
|
-
"3": "codex",
|
|
21
|
-
"4": "cursor",
|
|
22
|
-
"5": "gemini",
|
|
23
|
-
"6": "amp",
|
|
24
|
-
"7": "droid",
|
|
25
|
-
"8": "openclaw",
|
|
26
|
-
"9": "pi",
|
|
27
|
-
"0": "kimi",
|
|
28
|
-
};
|
|
29
|
-
function cycleTabForward(current) {
|
|
30
|
-
const idx = TABS.indexOf(current);
|
|
31
|
-
return TABS[(idx + 1) % TABS.length];
|
|
32
|
-
}
|
|
33
|
-
function cycleTabBackward(current) {
|
|
34
|
-
const idx = TABS.indexOf(current);
|
|
35
|
-
return TABS[(idx - 1 + TABS.length) % TABS.length];
|
|
36
|
-
}
|
|
37
|
-
export function App(props) {
|
|
38
|
-
const renderer = useRenderer();
|
|
39
|
-
const terminalDimensions = useTerminalDimensions();
|
|
40
|
-
const columns = () => terminalDimensions().width;
|
|
41
|
-
const rows = () => terminalDimensions().height;
|
|
42
|
-
const settings = loadSettings();
|
|
43
|
-
const [activeTab, setActiveTab] = createSignal(props.initialTab ?? "overview");
|
|
44
|
-
const [enabledSources, setEnabledSources] = createSignal(new Set(props.enabledSources ?? ALL_SOURCES));
|
|
45
|
-
const [sortBy, setSortBy] = createSignal(props.sortBy ?? "tokens");
|
|
46
|
-
const [sortDesc, setSortDesc] = createSignal(props.sortDesc ?? true);
|
|
47
|
-
const [selectedIndex, setSelectedIndex] = createSignal(0);
|
|
48
|
-
const [scrollOffset, setScrollOffset] = createSignal(0);
|
|
49
|
-
const [colorPalette, setColorPalette] = createSignal(props.colorPalette ?? settings.colorPalette ?? DEFAULT_PALETTE);
|
|
50
|
-
const dateFilters = {
|
|
51
|
-
since: props.since,
|
|
52
|
-
until: props.until,
|
|
53
|
-
year: props.year,
|
|
54
|
-
sinceTs: props.sinceTs,
|
|
55
|
-
untilTs: props.untilTs,
|
|
56
|
-
};
|
|
57
|
-
const { data, loading, error, refresh, loadingPhase, isRefreshing } = useData(() => enabledSources(), dateFilters);
|
|
58
|
-
const cacheTimestamp = () => !isRefreshing() && !loading() ? getCacheTimestamp() : null;
|
|
59
|
-
const [selectedDate, setSelectedDate] = createSignal(null);
|
|
60
|
-
const [statusMessage, setStatusMessage] = createSignal(null);
|
|
61
|
-
let statusTimeout = null;
|
|
62
|
-
const [autoRefreshEnabled, setAutoRefreshEnabled] = createSignal(settings.autoRefreshEnabled ?? false);
|
|
63
|
-
const [autoRefreshMs, setAutoRefreshMs] = createSignal(settings.autoRefreshMs ?? 60000);
|
|
64
|
-
const showStatus = (msg, duration = 2000) => {
|
|
65
|
-
if (statusTimeout)
|
|
66
|
-
clearTimeout(statusTimeout);
|
|
67
|
-
setStatusMessage(msg);
|
|
68
|
-
statusTimeout = setTimeout(() => setStatusMessage(null), duration);
|
|
69
|
-
};
|
|
70
|
-
onCleanup(() => {
|
|
71
|
-
if (statusTimeout)
|
|
72
|
-
clearTimeout(statusTimeout);
|
|
73
|
-
});
|
|
74
|
-
const MIN_AUTO_REFRESH_MS = 30000;
|
|
75
|
-
const MAX_AUTO_REFRESH_MS = 3600000;
|
|
76
|
-
const AUTO_REFRESH_STEPS_MS = [
|
|
77
|
-
30000,
|
|
78
|
-
60000,
|
|
79
|
-
120000,
|
|
80
|
-
300000,
|
|
81
|
-
600000,
|
|
82
|
-
];
|
|
83
|
-
const AUTO_REFRESH_AFTER_MAX_STEP_MS = 600000;
|
|
84
|
-
const clampAutoRefresh = (value) => Math.min(MAX_AUTO_REFRESH_MS, Math.max(MIN_AUTO_REFRESH_MS, value));
|
|
85
|
-
const formatIntervalSeconds = (ms) => {
|
|
86
|
-
const seconds = Math.round(ms / 1000);
|
|
87
|
-
if (seconds < 60)
|
|
88
|
-
return `${seconds}s`;
|
|
89
|
-
const minutes = Math.round(seconds / 60);
|
|
90
|
-
return `${minutes}m`;
|
|
91
|
-
};
|
|
92
|
-
const getAutoRefreshIntervalStep = (current, direction) => {
|
|
93
|
-
const value = clampAutoRefresh(current);
|
|
94
|
-
const cappedSteps = AUTO_REFRESH_STEPS_MS;
|
|
95
|
-
const maxStep = cappedSteps[cappedSteps.length - 1];
|
|
96
|
-
if (value > maxStep) {
|
|
97
|
-
const delta = direction === "up" ? AUTO_REFRESH_AFTER_MAX_STEP_MS : -AUTO_REFRESH_AFTER_MAX_STEP_MS;
|
|
98
|
-
return clampAutoRefresh(value + delta);
|
|
99
|
-
}
|
|
100
|
-
if (value === maxStep && direction === "up") {
|
|
101
|
-
return clampAutoRefresh(value + AUTO_REFRESH_AFTER_MAX_STEP_MS);
|
|
102
|
-
}
|
|
103
|
-
if (value === maxStep && direction === "down") {
|
|
104
|
-
return cappedSteps[cappedSteps.length - 2];
|
|
105
|
-
}
|
|
106
|
-
let idx = cappedSteps.findIndex((step) => step >= value);
|
|
107
|
-
if (idx === -1)
|
|
108
|
-
idx = cappedSteps.length - 1;
|
|
109
|
-
if (direction === "up") {
|
|
110
|
-
const nextIndex = value === cappedSteps[idx] ? idx + 1 : idx;
|
|
111
|
-
return clampAutoRefresh(cappedSteps[Math.min(nextIndex, cappedSteps.length - 1)]);
|
|
112
|
-
}
|
|
113
|
-
const prevIndex = value === cappedSteps[idx] ? idx - 1 : idx - 1;
|
|
114
|
-
return clampAutoRefresh(cappedSteps[Math.max(prevIndex, 0)]);
|
|
115
|
-
};
|
|
116
|
-
createEffect(() => {
|
|
117
|
-
if (!autoRefreshEnabled())
|
|
118
|
-
return;
|
|
119
|
-
const ms = autoRefreshMs();
|
|
120
|
-
const interval = setInterval(() => {
|
|
121
|
-
if (!loading() && !isRefreshing()) {
|
|
122
|
-
refresh();
|
|
123
|
-
}
|
|
124
|
-
}, ms);
|
|
125
|
-
onCleanup(() => clearInterval(interval));
|
|
126
|
-
});
|
|
127
|
-
const contentHeight = () => Math.max(rows() - 4, 12);
|
|
128
|
-
const overviewChartHeight = () => Math.max(5, Math.floor(contentHeight() * 0.35));
|
|
129
|
-
const overviewListHeight = () => Math.max(4, contentHeight() - overviewChartHeight() - 4);
|
|
130
|
-
const overviewItemsPerPage = () => Math.max(1, Math.floor(overviewListHeight() / 2));
|
|
131
|
-
const handleSourceToggle = (source) => {
|
|
132
|
-
const newSources = new Set(enabledSources());
|
|
133
|
-
if (newSources.has(source)) {
|
|
134
|
-
if (newSources.size > 1) {
|
|
135
|
-
newSources.delete(source);
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
else {
|
|
139
|
-
newSources.add(source);
|
|
140
|
-
}
|
|
141
|
-
setEnabledSources(newSources);
|
|
142
|
-
};
|
|
143
|
-
const handlePaletteChange = () => {
|
|
144
|
-
const currentIdx = PALETTE_NAMES.indexOf(colorPalette());
|
|
145
|
-
const nextIdx = (currentIdx + 1) % PALETTE_NAMES.length;
|
|
146
|
-
const newPalette = PALETTE_NAMES[nextIdx];
|
|
147
|
-
saveSettings({ colorPalette: newPalette });
|
|
148
|
-
setColorPalette(newPalette);
|
|
149
|
-
};
|
|
150
|
-
const handleSortChange = (sort) => {
|
|
151
|
-
if (sortBy() === sort) {
|
|
152
|
-
setSortDesc(!sortDesc());
|
|
153
|
-
}
|
|
154
|
-
else {
|
|
155
|
-
setSortBy(sort);
|
|
156
|
-
setSortDesc(true);
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
useKeyboard((key) => {
|
|
160
|
-
if (key.name === "q") {
|
|
161
|
-
renderer.destroy();
|
|
162
|
-
return;
|
|
163
|
-
}
|
|
164
|
-
if (key.name === "r" && key.shift) {
|
|
165
|
-
const next = !autoRefreshEnabled();
|
|
166
|
-
setAutoRefreshEnabled(next);
|
|
167
|
-
saveSettings({ autoRefreshEnabled: next });
|
|
168
|
-
showStatus(`Auto update: ${next ? "ON" : "OFF"} (${formatIntervalSeconds(autoRefreshMs())})`);
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
if ((key.name === "+") || (key.name === "=" && key.shift)) {
|
|
172
|
-
const next = getAutoRefreshIntervalStep(autoRefreshMs(), "up");
|
|
173
|
-
setAutoRefreshMs(next);
|
|
174
|
-
saveSettings({ autoRefreshMs: next });
|
|
175
|
-
showStatus(`Auto update interval: ${formatIntervalSeconds(next)}`);
|
|
176
|
-
return;
|
|
177
|
-
}
|
|
178
|
-
if (key.name === "-" || key.name === "_") {
|
|
179
|
-
const next = getAutoRefreshIntervalStep(autoRefreshMs(), "down");
|
|
180
|
-
setAutoRefreshMs(next);
|
|
181
|
-
saveSettings({ autoRefreshMs: next });
|
|
182
|
-
showStatus(`Auto update interval: ${formatIntervalSeconds(next)}`);
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
if (key.name === "r") {
|
|
186
|
-
refresh();
|
|
187
|
-
return;
|
|
188
|
-
}
|
|
189
|
-
if (key.name === "tab" || key.name === "right") {
|
|
190
|
-
setActiveTab(cycleTabForward(activeTab()));
|
|
191
|
-
setSelectedIndex(0);
|
|
192
|
-
setScrollOffset(0);
|
|
193
|
-
return;
|
|
194
|
-
}
|
|
195
|
-
if (key.name === "left") {
|
|
196
|
-
setActiveTab(cycleTabBackward(activeTab()));
|
|
197
|
-
setSelectedIndex(0);
|
|
198
|
-
setScrollOffset(0);
|
|
199
|
-
return;
|
|
200
|
-
}
|
|
201
|
-
if (key.name === "c" && !key.meta && !key.ctrl) {
|
|
202
|
-
handleSortChange("cost");
|
|
203
|
-
return;
|
|
204
|
-
}
|
|
205
|
-
if (key.name === "y") {
|
|
206
|
-
const d = data();
|
|
207
|
-
if (!d)
|
|
208
|
-
return;
|
|
209
|
-
let textToCopy = "";
|
|
210
|
-
const tab = activeTab();
|
|
211
|
-
if (tab === "model") {
|
|
212
|
-
const sorted = [...d.modelEntries].sort((a, b) => {
|
|
213
|
-
if (sortBy() === "cost")
|
|
214
|
-
return sortDesc() ? b.cost - a.cost : a.cost - b.cost;
|
|
215
|
-
if (sortBy() === "tokens")
|
|
216
|
-
return sortDesc() ? b.total - a.total : a.total - b.total;
|
|
217
|
-
return sortDesc() ? b.model.localeCompare(a.model) : a.model.localeCompare(b.model);
|
|
218
|
-
});
|
|
219
|
-
const entry = sorted[selectedIndex()];
|
|
220
|
-
if (entry) {
|
|
221
|
-
textToCopy = `${entry.source} ${entry.model}: ${entry.total.toLocaleString()} tokens, $${entry.cost.toFixed(2)}`;
|
|
222
|
-
}
|
|
223
|
-
}
|
|
224
|
-
else if (tab === "daily") {
|
|
225
|
-
const sorted = [...d.dailyEntries].sort((a, b) => {
|
|
226
|
-
if (sortBy() === "cost")
|
|
227
|
-
return sortDesc() ? b.cost - a.cost : a.cost - b.cost;
|
|
228
|
-
if (sortBy() === "tokens")
|
|
229
|
-
return sortDesc() ? b.total - a.total : a.total - b.total;
|
|
230
|
-
return sortDesc() ? b.date.localeCompare(a.date) : a.date.localeCompare(b.date);
|
|
231
|
-
});
|
|
232
|
-
const entry = sorted[selectedIndex()];
|
|
233
|
-
if (entry) {
|
|
234
|
-
textToCopy = `${entry.date}: ${entry.total.toLocaleString()} tokens, $${entry.cost.toFixed(2)}`;
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
else if (tab === "overview") {
|
|
238
|
-
const model = d.topModels[scrollOffset() + selectedIndex()];
|
|
239
|
-
if (model) {
|
|
240
|
-
textToCopy = `${model.modelId}: ${model.totalTokens.toLocaleString()} tokens, $${model.cost.toFixed(2)}`;
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
if (textToCopy) {
|
|
244
|
-
clipboardy.write(textToCopy)
|
|
245
|
-
.then(() => showStatus("Copied to clipboard"))
|
|
246
|
-
.catch(() => showStatus("Failed to copy"));
|
|
247
|
-
}
|
|
248
|
-
return;
|
|
249
|
-
}
|
|
250
|
-
if (key.name === "t") {
|
|
251
|
-
handleSortChange("tokens");
|
|
252
|
-
return;
|
|
253
|
-
}
|
|
254
|
-
if (key.name === "d") {
|
|
255
|
-
handleSortChange("date");
|
|
256
|
-
return;
|
|
257
|
-
}
|
|
258
|
-
if (key.name === "p") {
|
|
259
|
-
handlePaletteChange();
|
|
260
|
-
return;
|
|
261
|
-
}
|
|
262
|
-
if (!key.meta && !key.ctrl) {
|
|
263
|
-
const source = SOURCE_HOTKEYS[key.name];
|
|
264
|
-
if (source) {
|
|
265
|
-
handleSourceToggle(source);
|
|
266
|
-
return;
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
if (key.name === "up") {
|
|
270
|
-
if (activeTab() === "overview") {
|
|
271
|
-
if (selectedIndex() > 0) {
|
|
272
|
-
setSelectedIndex(selectedIndex() - 1);
|
|
273
|
-
}
|
|
274
|
-
else if (scrollOffset() > 0) {
|
|
275
|
-
setScrollOffset(scrollOffset() - 1);
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
else {
|
|
279
|
-
setSelectedIndex(Math.max(0, selectedIndex() - 1));
|
|
280
|
-
}
|
|
281
|
-
return;
|
|
282
|
-
}
|
|
283
|
-
if (key.name === "down") {
|
|
284
|
-
if (activeTab() === "overview") {
|
|
285
|
-
const maxVisible = Math.min(overviewItemsPerPage(), (data()?.topModels.length ?? 0) - scrollOffset());
|
|
286
|
-
const maxOffset = Math.max(0, (data()?.topModels.length ?? 0) - overviewItemsPerPage());
|
|
287
|
-
if (selectedIndex() < maxVisible - 1) {
|
|
288
|
-
setSelectedIndex(selectedIndex() + 1);
|
|
289
|
-
}
|
|
290
|
-
else if (scrollOffset() < maxOffset) {
|
|
291
|
-
setScrollOffset(scrollOffset() + 1);
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
else {
|
|
295
|
-
const d = data();
|
|
296
|
-
const maxIndex = activeTab() === "model"
|
|
297
|
-
? (d?.modelEntries.length ?? 0)
|
|
298
|
-
: (d?.dailyEntries.length ?? 0);
|
|
299
|
-
if (maxIndex > 0) {
|
|
300
|
-
setSelectedIndex(Math.min(selectedIndex() + 1, maxIndex - 1));
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
return;
|
|
304
|
-
}
|
|
305
|
-
if (key.name === "e" && data()) {
|
|
306
|
-
const d = data();
|
|
307
|
-
const exportData = {
|
|
308
|
-
exportedAt: new Date().toISOString(),
|
|
309
|
-
totalCost: d.totalCost,
|
|
310
|
-
modelCount: d.modelCount,
|
|
311
|
-
models: d.modelEntries,
|
|
312
|
-
daily: d.dailyEntries,
|
|
313
|
-
stats: d.stats,
|
|
314
|
-
};
|
|
315
|
-
const filename = `tokscale-export-${new Date().toISOString().split("T")[0]}.json`;
|
|
316
|
-
import("node:fs")
|
|
317
|
-
.then((fs) => {
|
|
318
|
-
fs.writeFileSync(filename, JSON.stringify(exportData, null, 2));
|
|
319
|
-
showStatus(`Exported to ${filename}`);
|
|
320
|
-
})
|
|
321
|
-
.catch(() => showStatus("Export failed"));
|
|
322
|
-
return;
|
|
323
|
-
}
|
|
324
|
-
});
|
|
325
|
-
const handleTabClick = (tab) => {
|
|
326
|
-
setActiveTab(tab);
|
|
327
|
-
setSelectedIndex(0);
|
|
328
|
-
setScrollOffset(0);
|
|
329
|
-
setSelectedDate(null);
|
|
330
|
-
};
|
|
331
|
-
return (_jsxs("box", { flexDirection: "column", width: columns(), height: rows(), backgroundColor: "black", children: [_jsx(Header, { activeTab: activeTab(), onTabClick: handleTabClick, width: columns() }), _jsx("box", { flexDirection: "column", flexGrow: 1, paddingX: 1, children: _jsxs(Switch, { children: [_jsx(Match, { when: loading(), children: _jsx(LoadingSpinner, { phase: loadingPhase() }) }), _jsx(Match, { when: error(), children: _jsx("box", { justifyContent: "center", alignItems: "center", flexGrow: 1, children: _jsx("text", { fg: "red", children: `Error: ${error()}` }) }) }), _jsx(Match, { when: data(), children: _jsxs(Switch, { children: [_jsx(Match, { when: activeTab() === "overview", children: _jsx(OverviewView, { data: data(), sortBy: sortBy(), sortDesc: sortDesc(), selectedIndex: selectedIndex, scrollOffset: scrollOffset, height: contentHeight(), width: columns() }) }), _jsx(Match, { when: activeTab() === "model", children: _jsx(ModelView, { data: data(), sortBy: sortBy(), sortDesc: sortDesc(), selectedIndex: selectedIndex, height: contentHeight(), width: columns() }) }), _jsx(Match, { when: activeTab() === "daily", children: _jsx(DailyView, { data: data(), sortBy: sortBy(), sortDesc: sortDesc(), selectedIndex: selectedIndex, height: contentHeight(), width: columns() }) }), _jsx(Match, { when: activeTab() === "stats", children: _jsx(StatsView, { data: data(), height: contentHeight(), colorPalette: colorPalette(), width: columns(), selectedDate: selectedDate(), sortBy: sortBy() }) })] }) })] }) }), _jsx(Footer, { enabledSources: enabledSources(), sortBy: sortBy(), totals: data()?.totals, modelCount: data()?.modelCount ?? 0, activeTab: activeTab(), scrollStart: scrollOffset(), scrollEnd: Math.min(scrollOffset() + overviewItemsPerPage(), data()?.topModels.length ?? 0), totalItems: data()?.topModels.length, colorPalette: colorPalette(), statusMessage: statusMessage(), isRefreshing: isRefreshing(), loadingPhase: loadingPhase(), cacheTimestamp: cacheTimestamp(), autoRefreshEnabled: autoRefreshEnabled(), autoRefreshMs: autoRefreshMs(), width: columns(), onSourceToggle: handleSourceToggle, onSortChange: handleSortChange, onPaletteChange: handlePaletteChange, onRefresh: refresh })] }));
|
|
332
|
-
}
|
|
333
|
-
//# sourceMappingURL=App.js.map
|
package/dist/tui/App.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"App.js","sourceRoot":"","sources":["../../src/tui/App.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
export interface ChartDataPoint {
|
|
2
|
-
date: string;
|
|
3
|
-
models: {
|
|
4
|
-
modelId: string;
|
|
5
|
-
tokens: number;
|
|
6
|
-
color: string;
|
|
7
|
-
}[];
|
|
8
|
-
total: number;
|
|
9
|
-
}
|
|
10
|
-
interface BarChartProps {
|
|
11
|
-
data: ChartDataPoint[];
|
|
12
|
-
width: number;
|
|
13
|
-
height: number;
|
|
14
|
-
}
|
|
15
|
-
export declare function BarChart(props: BarChartProps): any;
|
|
16
|
-
export {};
|
|
17
|
-
//# sourceMappingURL=BarChart.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.d.ts","sourceRoot":"","sources":["../../../src/tui/components/BarChart.tsx"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC7D,KAAK,EAAE,MAAM,CAAC;CACf;AAED,UAAU,aAAa;IACrB,IAAI,EAAE,cAAc,EAAE,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAqBD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,aAAa,OAyK5C"}
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
import { jsx as _jsx, jsxs as _jsxs } from "@opentui/solid/jsx-runtime";
|
|
2
|
-
import { For, Show, createMemo } from "solid-js";
|
|
3
|
-
import { formatTokensCompact } from "../utils/format.js";
|
|
4
|
-
import { isNarrow, isVeryNarrow } from "../utils/responsive.js";
|
|
5
|
-
const BLOCKS = [" ", "▁", "▂", "▃", "▄", "▅", "▆", "▇", "█"];
|
|
6
|
-
const MONTH_NAMES = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];
|
|
7
|
-
const REPEAT_CACHE_MAX_SIZE = 256;
|
|
8
|
-
const repeatCache = new Map();
|
|
9
|
-
function getRepeatedString(char, count) {
|
|
10
|
-
const key = `${char}:${count}`;
|
|
11
|
-
let cached = repeatCache.get(key);
|
|
12
|
-
if (!cached) {
|
|
13
|
-
if (repeatCache.size >= REPEAT_CACHE_MAX_SIZE) {
|
|
14
|
-
const firstKey = repeatCache.keys().next().value;
|
|
15
|
-
if (firstKey)
|
|
16
|
-
repeatCache.delete(firstKey);
|
|
17
|
-
}
|
|
18
|
-
cached = char.repeat(count);
|
|
19
|
-
repeatCache.set(key, cached);
|
|
20
|
-
}
|
|
21
|
-
return cached;
|
|
22
|
-
}
|
|
23
|
-
export function BarChart(props) {
|
|
24
|
-
const data = () => props.data;
|
|
25
|
-
const width = () => props.width;
|
|
26
|
-
const height = () => props.height;
|
|
27
|
-
const isNarrowTerminal = () => isNarrow(width());
|
|
28
|
-
const isVeryNarrowTerminal = () => isVeryNarrow(width());
|
|
29
|
-
const safeHeight = () => Math.max(height(), 1);
|
|
30
|
-
const maxTotal = createMemo(() => {
|
|
31
|
-
const arr = data();
|
|
32
|
-
if (arr.length === 0)
|
|
33
|
-
return 1;
|
|
34
|
-
let max = arr[0].total;
|
|
35
|
-
for (let i = 1; i < arr.length; i++) {
|
|
36
|
-
if (arr[i].total > max)
|
|
37
|
-
max = arr[i].total;
|
|
38
|
-
}
|
|
39
|
-
return Math.max(max, 1);
|
|
40
|
-
});
|
|
41
|
-
const chartWidth = () => Math.max(width() - 8, 20);
|
|
42
|
-
const getBarWidth = (index, total) => {
|
|
43
|
-
const cw = chartWidth();
|
|
44
|
-
if (total === 0)
|
|
45
|
-
return 1;
|
|
46
|
-
const start = Math.floor((index * cw) / total);
|
|
47
|
-
const end = Math.floor(((index + 1) * cw) / total);
|
|
48
|
-
return Math.max(1, end - start);
|
|
49
|
-
};
|
|
50
|
-
const visibleData = () => data();
|
|
51
|
-
const sortedModelsMap = createMemo(() => {
|
|
52
|
-
const vd = visibleData();
|
|
53
|
-
const map = new Map();
|
|
54
|
-
for (const point of vd) {
|
|
55
|
-
const models = point.models ?? [];
|
|
56
|
-
const sorted = [...models].sort((a, b) => a.modelId.localeCompare(b.modelId));
|
|
57
|
-
map.set(point.date, sorted);
|
|
58
|
-
}
|
|
59
|
-
return map;
|
|
60
|
-
});
|
|
61
|
-
const rowIndices = createMemo(() => {
|
|
62
|
-
const sh = safeHeight();
|
|
63
|
-
const indices = new Array(sh);
|
|
64
|
-
for (let i = 0; i < sh; i++) {
|
|
65
|
-
indices[i] = sh - 1 - i;
|
|
66
|
-
}
|
|
67
|
-
return indices;
|
|
68
|
-
});
|
|
69
|
-
const dateLabels = createMemo(() => {
|
|
70
|
-
const vd = visibleData();
|
|
71
|
-
if (vd.length === 0)
|
|
72
|
-
return [];
|
|
73
|
-
const labelInterval = Math.max(1, Math.floor(vd.length / (isVeryNarrowTerminal() ? 2 : 3)));
|
|
74
|
-
const labels = [];
|
|
75
|
-
for (let i = 0; i < vd.length; i += labelInterval) {
|
|
76
|
-
const dateStr = vd[i].date;
|
|
77
|
-
const parts = dateStr.split("-");
|
|
78
|
-
if (parts.length === 3) {
|
|
79
|
-
const month = parseInt(parts[1], 10);
|
|
80
|
-
const day = parseInt(parts[2], 10);
|
|
81
|
-
labels.push(isVeryNarrowTerminal() ? `${month}/${day}` : `${MONTH_NAMES[month - 1]} ${day}`);
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
labels.push(dateStr.slice(5));
|
|
85
|
-
}
|
|
86
|
-
}
|
|
87
|
-
return labels;
|
|
88
|
-
});
|
|
89
|
-
const axisWidth = () => chartWidth();
|
|
90
|
-
const labelPadding = () => {
|
|
91
|
-
const labels = dateLabels();
|
|
92
|
-
return labels.length > 0 ? Math.floor(axisWidth() / labels.length) : 0;
|
|
93
|
-
};
|
|
94
|
-
const chartTitle = () => isVeryNarrowTerminal() ? "Tokens" : "Tokens per Day";
|
|
95
|
-
const getBarContent = (point, row, barIndex) => {
|
|
96
|
-
const mt = maxTotal();
|
|
97
|
-
const sh = safeHeight();
|
|
98
|
-
const rowThreshold = ((row + 1) / sh) * mt;
|
|
99
|
-
const prevThreshold = (row / sh) * mt;
|
|
100
|
-
const thresholdDiff = rowThreshold - prevThreshold;
|
|
101
|
-
const bw = getBarWidth(barIndex, visibleData().length);
|
|
102
|
-
if (point.total <= prevThreshold) {
|
|
103
|
-
return { char: getRepeatedString(" ", bw), color: "dim" };
|
|
104
|
-
}
|
|
105
|
-
const sortedModels = sortedModelsMap().get(point.date) ?? [];
|
|
106
|
-
if (sortedModels.length === 0) {
|
|
107
|
-
return { char: getRepeatedString(" ", bw), color: "dim" };
|
|
108
|
-
}
|
|
109
|
-
let currentHeight = 0;
|
|
110
|
-
let maxOverlap = 0;
|
|
111
|
-
let color = sortedModels[0].color;
|
|
112
|
-
const rowStart = prevThreshold;
|
|
113
|
-
const rowEnd = rowThreshold;
|
|
114
|
-
for (const m of sortedModels) {
|
|
115
|
-
const mStart = currentHeight;
|
|
116
|
-
const mEnd = currentHeight + m.tokens;
|
|
117
|
-
currentHeight += m.tokens;
|
|
118
|
-
const overlapStart = Math.max(mStart, rowStart);
|
|
119
|
-
const overlapEnd = Math.min(mEnd, rowEnd);
|
|
120
|
-
const overlap = Math.max(0, overlapEnd - overlapStart);
|
|
121
|
-
if (overlap > maxOverlap) {
|
|
122
|
-
maxOverlap = overlap;
|
|
123
|
-
color = m.color;
|
|
124
|
-
}
|
|
125
|
-
}
|
|
126
|
-
if (point.total >= rowThreshold) {
|
|
127
|
-
return { char: getRepeatedString("█", bw), color };
|
|
128
|
-
}
|
|
129
|
-
const ratio = thresholdDiff > 0 ? (point.total - prevThreshold) / thresholdDiff : 1;
|
|
130
|
-
const blockIndex = Math.min(8, Math.max(1, Math.floor(ratio * 8)));
|
|
131
|
-
return { char: getRepeatedString(BLOCKS[blockIndex], bw), color };
|
|
132
|
-
};
|
|
133
|
-
return (_jsx(Show, { when: data().length > 0, fallback: _jsx("text", { dim: true, children: "No chart data" }), children: _jsxs("box", { flexDirection: "column", children: [_jsx("text", { bold: true, children: chartTitle() }), _jsx(For, { each: rowIndices(), children: (row) => {
|
|
134
|
-
const yLabelWidth = isVeryNarrowTerminal() ? 5 : 6;
|
|
135
|
-
const yLabel = row === safeHeight() - 1
|
|
136
|
-
? formatTokensCompact(maxTotal()).padStart(yLabelWidth)
|
|
137
|
-
: " ".repeat(yLabelWidth);
|
|
138
|
-
return (_jsxs("box", { flexDirection: "row", children: [_jsxs("text", { dim: true, children: [yLabel, "\u2502"] }), _jsx(For, { each: visibleData(), children: (point, barIndex) => {
|
|
139
|
-
const bar = getBarContent(point, row, barIndex());
|
|
140
|
-
return bar.color === "dim"
|
|
141
|
-
? _jsx("text", { dim: true, children: bar.char })
|
|
142
|
-
: _jsx("text", { fg: bar.color, children: bar.char });
|
|
143
|
-
} })] }));
|
|
144
|
-
} }), _jsxs("box", { flexDirection: "row", children: [_jsx("text", { dim: true, children: isVeryNarrowTerminal() ? " 0│" : " 0│" }), _jsx("text", { dim: true, children: getRepeatedString("─", axisWidth()) })] }), _jsx(Show, { when: dateLabels().length > 0, children: _jsxs("box", { flexDirection: "row", children: [_jsx("text", { dim: true, children: isVeryNarrowTerminal() ? " " : " " }), _jsx("text", { dim: true, children: dateLabels().map((l) => l.padEnd(labelPadding())).join("") })] }) })] }) }));
|
|
145
|
-
}
|
|
146
|
-
//# sourceMappingURL=BarChart.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BarChart.js","sourceRoot":"","sources":["../../../src/tui/components/BarChart.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { type Accessor } from "solid-js";
|
|
2
|
-
import type { TUIData, SortType } from "../hooks/useData.js";
|
|
3
|
-
interface DailyViewProps {
|
|
4
|
-
data: TUIData;
|
|
5
|
-
sortBy: SortType;
|
|
6
|
-
sortDesc: boolean;
|
|
7
|
-
selectedIndex: Accessor<number>;
|
|
8
|
-
height: number;
|
|
9
|
-
width?: number;
|
|
10
|
-
}
|
|
11
|
-
export declare function DailyView(props: DailyViewProps): any;
|
|
12
|
-
export {};
|
|
13
|
-
//# sourceMappingURL=DailyView.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DailyView.d.ts","sourceRoot":"","sources":["../../../src/tui/components/DailyView.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,QAAQ,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAiB7D,UAAU,cAAc;IACtB,IAAI,EAAE,OAAO,CAAC;IACd,MAAM,EAAE,QAAQ,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,SAAS,CAAC,KAAK,EAAE,cAAc,OAwG9C"}
|