openlimiter 2.0.3 → 2.1.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/README.md +3 -1
- package/dist/api-spend.d.ts +1 -3
- package/dist/api-spend.d.ts.map +1 -1
- package/dist/api-spend.js +11 -15
- package/dist/api-spend.js.map +1 -1
- package/dist/bin.js +1 -15
- package/dist/bin.js.map +1 -1
- package/dist/cli.d.ts +8 -21
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +129 -56
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts +10 -4
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +65 -29
- package/dist/config.js.map +1 -1
- package/dist/hub-sync.d.ts +4 -2
- package/dist/hub-sync.d.ts.map +1 -1
- package/dist/hub-sync.js +43 -10
- package/dist/hub-sync.js.map +1 -1
- package/dist/ingest.d.ts +2 -0
- package/dist/ingest.d.ts.map +1 -1
- package/dist/ingest.js +14 -62
- package/dist/ingest.js.map +1 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +42 -11
- package/dist/render.js.map +1 -1
- package/dist/statusline.d.ts +8 -3
- package/dist/statusline.d.ts.map +1 -1
- package/dist/statusline.js +231 -69
- package/dist/statusline.js.map +1 -1
- package/dist/terminal-launcher.d.ts +5 -0
- package/dist/terminal-launcher.d.ts.map +1 -1
- package/dist/terminal-launcher.js +188 -13
- package/dist/terminal-launcher.js.map +1 -1
- package/dist/terminal.d.ts.map +1 -1
- package/dist/terminal.js +11 -10
- package/dist/terminal.js.map +1 -1
- package/package.json +4 -4
package/dist/render.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"render.js","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/dist/statusline.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Advice, type ProviderCode, type Snapshot } from "@openlimiter/core";
|
|
2
|
-
import type { StatuslineColor, StatuslineConfig } from "./config.js";
|
|
2
|
+
import type { StatuslineColor, StatuslineConfig, StatuslineCaptions } from "./config.js";
|
|
3
3
|
import type { StatuslineSession } from "./statusline-ingest.js";
|
|
4
4
|
export declare const DEFAULT_PROVIDER_ORDER: readonly ProviderCode[];
|
|
5
5
|
/**
|
|
@@ -44,7 +44,9 @@ export declare const CELL_GAP = " ";
|
|
|
44
44
|
* so a statusline cell and a table row draw the same reading in the same band
|
|
45
45
|
* colour. Left off, the bar reads the environment for itself.
|
|
46
46
|
*/
|
|
47
|
-
export declare function statuslineCells(snapshots: readonly Snapshot[], now: string, order: readonly ProviderCode[], meters: StatuslineConfig["meters"], color: boolean, wide?: boolean): readonly StatuslineCell[];
|
|
47
|
+
export declare function statuslineCells(snapshots: readonly Snapshot[], now: string, order: readonly ProviderCode[], meters: StatuslineConfig["meters"], color: boolean, wide?: boolean, bars?: boolean, hostProvider?: ProviderCode | null, captions?: StatuslineCaptions): readonly StatuslineCell[];
|
|
48
|
+
/** The compact one line style, with the same meter meanings as the bar style. */
|
|
49
|
+
export declare function renderPlainStatusline(advice: Advice, snapshots: readonly Snapshot[], now: string, order: readonly ProviderCode[], meters: StatuslineConfig["meters"], pollHint?: string, hostProvider?: ProviderCode | null): string;
|
|
48
50
|
/**
|
|
49
51
|
* Everything that is not a cell.
|
|
50
52
|
*
|
|
@@ -64,10 +66,12 @@ export declare const BAR_CELL_SEPARATOR = " | ";
|
|
|
64
66
|
export declare const TEN_BLOCK_FULL = "\u2588";
|
|
65
67
|
export declare const TEN_BLOCK_EMPTY = "\u2591";
|
|
66
68
|
export declare function windowCode(snapshot: Snapshot): string;
|
|
69
|
+
/** The one caption rule used by bar cells, legacy cells, and availability. */
|
|
70
|
+
export declare function captionFor(snapshot: Snapshot, hostProvider: ProviderCode | null, captions?: StatuslineCaptions, familyCodes?: readonly string[]): string;
|
|
67
71
|
export declare function tenBlockBar(value: number, unicode?: boolean): string;
|
|
68
72
|
export declare function formatResetTime(resetAt: string | null | undefined, now: string): string;
|
|
69
73
|
export declare function paintBand(text: string, value: number, _state: "fresh" | "stale", _wide?: boolean): string;
|
|
70
|
-
export declare function barStyleCells(snapshots: readonly Snapshot[], now: string, order: readonly ProviderCode[], host: StatuslineHost, show: readonly string[], metersSetting: StatuslineConfig["meters"], color: boolean, wide?: boolean, explicitSelection?: boolean, visibility?: Readonly<Record<string, boolean>>, unicode?: boolean): readonly StatuslineCell[];
|
|
74
|
+
export declare function barStyleCells(snapshots: readonly Snapshot[], now: string, order: readonly ProviderCode[], host: StatuslineHost, show: readonly string[], metersSetting: StatuslineConfig["meters"], color: boolean, wide?: boolean, explicitSelection?: boolean, visibility?: Readonly<Record<string, boolean>>, unicode?: boolean, inputCaptions?: StatuslineCaptions): readonly StatuslineCell[];
|
|
71
75
|
export interface StatuslineLayoutInput {
|
|
72
76
|
advice: Advice;
|
|
73
77
|
snapshots: readonly Snapshot[];
|
|
@@ -81,6 +85,7 @@ export interface StatuslineLayoutInput {
|
|
|
81
85
|
unicode?: boolean;
|
|
82
86
|
/** The parsed `api-spend-v1.json`, when the desktop app has saved one. */
|
|
83
87
|
apiSpend?: unknown;
|
|
88
|
+
pollHint?: string;
|
|
84
89
|
}
|
|
85
90
|
/** What the statusline says when it has nothing bounded to say. */
|
|
86
91
|
export declare const STATUSLINE_UNKNOWN = "OpenLimiter UNKNOWN";
|
package/dist/statusline.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../src/statusline.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../src/statusline.ts"],"names":[],"mappings":"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"}
|
package/dist/statusline.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PROVIDER_CODES, floorFixed, freshness } from "@openlimiter/core";
|
|
1
|
+
import { PROVIDER_CODES, claudeMeterPresentation, floorFixed, freshness, providerMeterPresentation, providerMeterRank, providerMeterVisible, isSnapshotDisplayEligible } from "@openlimiter/core";
|
|
2
2
|
import { STATUSLINE_BAR_SEGMENTS, meterBar } from "./render.js";
|
|
3
3
|
import { MONEY_TAGS, moneyCells } from "./api-spend.js";
|
|
4
4
|
/**
|
|
@@ -87,9 +87,26 @@ const AVAILABILITY_WORDS = {
|
|
|
87
87
|
function isAvailabilitySnapshot(snapshot) {
|
|
88
88
|
return snapshot.availability !== undefined || snapshot.meter.toUpperCase() === "ACQUISITION";
|
|
89
89
|
}
|
|
90
|
+
function isOpenRouterAccountBalance(snapshot) {
|
|
91
|
+
return snapshot.provider === "OPENROUTER" &&
|
|
92
|
+
(snapshot.meter === "ACCOUNT_BALANCE" || snapshot.meter === "CREDITS");
|
|
93
|
+
}
|
|
94
|
+
function isBalanceSnapshot(snapshot) {
|
|
95
|
+
return isOpenRouterAccountBalance(snapshot) ||
|
|
96
|
+
providerMeterPresentation(snapshot.provider, snapshot.meter)?.valueSemantics === "balance";
|
|
97
|
+
}
|
|
90
98
|
function availabilityText(snapshot, now) {
|
|
91
99
|
if (snapshot.availability === undefined)
|
|
92
100
|
return "not measured";
|
|
101
|
+
if (snapshot.provider === "OPENROUTER" && snapshot.meter === "KEY_LIMIT" &&
|
|
102
|
+
snapshot.availability === "unlimited")
|
|
103
|
+
return "No key cap";
|
|
104
|
+
if (snapshot.provider === "OPENROUTER" && snapshot.meter === "ACCOUNT_BALANCE" &&
|
|
105
|
+
snapshot.availability === "missing_credentials")
|
|
106
|
+
return "unavailable";
|
|
107
|
+
if (snapshot.provider === "CODEX" && snapshot.meter === "CREDITS" &&
|
|
108
|
+
snapshot.availability === "unlimited")
|
|
109
|
+
return "unlimited credits";
|
|
93
110
|
if (snapshot.availability === "rate_limited" && snapshot.retryAt !== undefined) {
|
|
94
111
|
const retryAt = Date.parse(snapshot.retryAt);
|
|
95
112
|
const nowAt = Date.parse(now);
|
|
@@ -153,8 +170,12 @@ export function meterClass(snapshot) {
|
|
|
153
170
|
}
|
|
154
171
|
/** Two spaces between cells, so a reader can tell one cell from the next. */
|
|
155
172
|
export const CELL_GAP = " ";
|
|
156
|
-
function buildCell(label, snapshot, state, color, wide) {
|
|
157
|
-
const percent =
|
|
173
|
+
function buildCell(label, snapshot, state, color, wide, bars = true) {
|
|
174
|
+
const percent = Math.round(snapshot.value) + "%";
|
|
175
|
+
if (!bars) {
|
|
176
|
+
const text = label + " " + percent;
|
|
177
|
+
return { plain: text, painted: text, percent: snapshot.value };
|
|
178
|
+
}
|
|
158
179
|
const bar = meterBar(snapshot.value, state, false, STATUSLINE_BAR_SEGMENTS, wide);
|
|
159
180
|
return {
|
|
160
181
|
plain: label + " " + bar + " " + percent,
|
|
@@ -162,8 +183,28 @@ function buildCell(label, snapshot, state, color, wide) {
|
|
|
162
183
|
percent: snapshot.value
|
|
163
184
|
};
|
|
164
185
|
}
|
|
186
|
+
function balanceCell(label, snapshot, stale) {
|
|
187
|
+
let value;
|
|
188
|
+
if (snapshot.currency === "USD" &&
|
|
189
|
+
snapshot.usedAmount !== undefined &&
|
|
190
|
+
snapshot.limitAmount !== undefined) {
|
|
191
|
+
value = "$" + Math.max(0, snapshot.limitAmount - snapshot.usedAmount).toFixed(2);
|
|
192
|
+
}
|
|
193
|
+
else if (isOpenRouterAccountBalance(snapshot) && snapshot.unit === "CREDITS") {
|
|
194
|
+
// The current balance identity can carry a direct credit amount, as the
|
|
195
|
+
// capture fixture does. Version 3 also retires the ambiguous legacy name,
|
|
196
|
+
// but an already loaded balance keeps the same terminal meaning.
|
|
197
|
+
value = "$" + snapshot.value.toFixed(2);
|
|
198
|
+
}
|
|
199
|
+
else {
|
|
200
|
+
value = floorFixed(snapshot.value, 2) + " credits";
|
|
201
|
+
}
|
|
202
|
+
const text = label + " " + (stale ? "~" : "") + value;
|
|
203
|
+
return { plain: text, painted: text, percent: Number.NEGATIVE_INFINITY };
|
|
204
|
+
}
|
|
165
205
|
function readingsFor(snapshots, provider, now) {
|
|
166
|
-
const providerRows = snapshots.filter((snapshot) => snapshot.provider === provider)
|
|
206
|
+
const providerRows = snapshots.filter((snapshot) => snapshot.provider === provider && providerMeterVisible(snapshot.provider, snapshot.meter) &&
|
|
207
|
+
isSnapshotDisplayEligible(snapshot));
|
|
167
208
|
const latestAccount = new Map();
|
|
168
209
|
for (const snapshot of providerRows) {
|
|
169
210
|
const observed = Date.parse(snapshot.observedAt);
|
|
@@ -173,29 +214,73 @@ function readingsFor(snapshots, provider, now) {
|
|
|
173
214
|
}
|
|
174
215
|
// Dormant accounts remain in the cache, but cannot displace an active account.
|
|
175
216
|
const readings = providerRows
|
|
176
|
-
.filter((snapshot) => (snapshot.unit === "PERCENT" ||
|
|
217
|
+
.filter((snapshot) => (snapshot.unit === "PERCENT" ||
|
|
218
|
+
isBalanceSnapshot(snapshot) ||
|
|
219
|
+
isAvailabilitySnapshot(snapshot)) &&
|
|
177
220
|
Date.parse(now) - (latestAccount.get(snapshot.accountId) ?? 0) <= ONE_DAY * 1000)
|
|
178
221
|
.map((snapshot) => ({
|
|
179
222
|
snapshot,
|
|
180
223
|
state: freshness(snapshot.observedAt, snapshot.expiresAt, now)
|
|
181
224
|
}))
|
|
182
|
-
.filter((reading) => reading.state !== "unknown"
|
|
225
|
+
.filter((reading) => reading.state !== "unknown" &&
|
|
226
|
+
!(reading.snapshot.provider === "CLAUDE" &&
|
|
227
|
+
reading.snapshot.meter.startsWith("SEVEN_DAY") &&
|
|
228
|
+
reading.state !== "fresh"))
|
|
183
229
|
.sort((left, right) => {
|
|
230
|
+
const presentationRank = (providerMeterRank(provider, left.snapshot.meter) ?? 90) -
|
|
231
|
+
(providerMeterRank(provider, right.snapshot.meter) ?? 90);
|
|
232
|
+
if (presentationRank !== 0)
|
|
233
|
+
return presentationRank;
|
|
184
234
|
const rank = METER_CLASS_RANK[meterClass(left.snapshot)] -
|
|
185
235
|
METER_CLASS_RANK[meterClass(right.snapshot)];
|
|
186
236
|
if (rank !== 0)
|
|
187
237
|
return rank;
|
|
188
238
|
return left.snapshot.meter < right.snapshot.meter ? -1 : 1;
|
|
189
239
|
});
|
|
190
|
-
const
|
|
240
|
+
const balanceRows = provider === "OPENROUTER"
|
|
241
|
+
? readings.filter(({ snapshot }) => isOpenRouterAccountBalance(snapshot))
|
|
242
|
+
: [];
|
|
243
|
+
const measuredBalances = balanceRows.filter(({ snapshot }) => !isAvailabilitySnapshot(snapshot));
|
|
244
|
+
const newestBalance = provider === "OPENROUTER"
|
|
245
|
+
? (measuredBalances.length > 0 ? measuredBalances : balanceRows).reduce((newest, reading) => newest === undefined ||
|
|
246
|
+
Date.parse(reading.snapshot.observedAt) > Date.parse(newest.snapshot.observedAt) ? reading : newest, undefined)
|
|
247
|
+
: undefined;
|
|
248
|
+
const selectedReadings = newestBalance === undefined
|
|
249
|
+
? readings
|
|
250
|
+
: readings.filter(({ snapshot }) => !isOpenRouterAccountBalance(snapshot) || snapshot === newestBalance.snapshot);
|
|
251
|
+
const measuredAccounts = new Set(selectedReadings
|
|
191
252
|
.filter((reading) => !isAvailabilitySnapshot(reading.snapshot))
|
|
192
253
|
.map((reading) => reading.snapshot.accountId));
|
|
193
254
|
// Only measured readings are drawn: a provider that cannot be measured right
|
|
194
255
|
// now is left out of the line entirely, exactly as it is left off Home.
|
|
195
256
|
// Unlimited is an answer, not a failure, so it stays.
|
|
196
|
-
return
|
|
257
|
+
return selectedReadings.filter((reading) => !isAvailabilitySnapshot(reading.snapshot) ||
|
|
258
|
+
providerMeterPresentation(reading.snapshot.provider, reading.snapshot.meter)?.displayAvailability === true ||
|
|
197
259
|
reading.snapshot.availability === "unlimited" && !measuredAccounts.has(reading.snapshot.accountId));
|
|
198
260
|
}
|
|
261
|
+
function claudeFamilyCodesFor(snapshot, snapshots) {
|
|
262
|
+
return snapshots
|
|
263
|
+
.filter((candidate) => candidate.provider === "CLAUDE" && candidate.accountId === snapshot.accountId)
|
|
264
|
+
.map((candidate) => candidate.meter);
|
|
265
|
+
}
|
|
266
|
+
function tightest(readings) {
|
|
267
|
+
let worst = readings[0];
|
|
268
|
+
for (const reading of readings.slice(1)) {
|
|
269
|
+
if (worst === undefined || reading.snapshot.value > worst.snapshot.value)
|
|
270
|
+
worst = reading;
|
|
271
|
+
}
|
|
272
|
+
return worst;
|
|
273
|
+
}
|
|
274
|
+
function worstReadings(provider, readings) {
|
|
275
|
+
if (provider === "OPENROUTER") {
|
|
276
|
+
const keyRows = readings.filter(({ snapshot }) => snapshot.meter === "KEY_LIMIT");
|
|
277
|
+
const balanceRows = readings.filter(({ snapshot }) => snapshot.meter === "ACCOUNT_BALANCE");
|
|
278
|
+
return [tightest(keyRows), tightest(balanceRows)].filter((row) => row !== undefined);
|
|
279
|
+
}
|
|
280
|
+
const percentages = readings.filter(({ snapshot }) => !isAvailabilitySnapshot(snapshot) && !isBalanceSnapshot(snapshot));
|
|
281
|
+
return [tightest(percentages.length > 0 ? percentages : readings)]
|
|
282
|
+
.filter((row) => row !== undefined);
|
|
283
|
+
}
|
|
199
284
|
/**
|
|
200
285
|
* One cell per provider, or one per meter.
|
|
201
286
|
*
|
|
@@ -210,35 +295,58 @@ function readingsFor(snapshots, provider, now) {
|
|
|
210
295
|
* so a statusline cell and a table row draw the same reading in the same band
|
|
211
296
|
* colour. Left off, the bar reads the environment for itself.
|
|
212
297
|
*/
|
|
213
|
-
export function statuslineCells(snapshots, now, order, meters, color, wide) {
|
|
298
|
+
export function statuslineCells(snapshots, now, order, meters, color, wide, bars = true, hostProvider = null, captions = "short") {
|
|
214
299
|
const cells = [];
|
|
215
300
|
for (const provider of order) {
|
|
216
|
-
const readings = readingsFor(snapshots
|
|
301
|
+
const readings = readingsFor(snapshots, provider, now);
|
|
217
302
|
if (readings.length === 0)
|
|
218
303
|
continue;
|
|
219
304
|
if (meters === "all") {
|
|
220
305
|
for (const reading of readings) {
|
|
221
306
|
if (isAvailabilitySnapshot(reading.snapshot)) {
|
|
222
|
-
cells.push(availabilityCell(
|
|
307
|
+
cells.push(availabilityCell(captionFor(reading.snapshot, hostProvider, captions, claudeFamilyCodesFor(reading.snapshot, snapshots)), reading.snapshot, now));
|
|
308
|
+
continue;
|
|
309
|
+
}
|
|
310
|
+
const meterTag = captionFor(reading.snapshot, hostProvider, captions, claudeFamilyCodesFor(reading.snapshot, snapshots));
|
|
311
|
+
if (providerMeterPresentation(provider, reading.snapshot.meter)?.valueSemantics === "balance") {
|
|
312
|
+
cells.push(balanceCell(meterTag, reading.snapshot, reading.state === "stale"));
|
|
223
313
|
continue;
|
|
224
314
|
}
|
|
225
|
-
cells.push(buildCell(
|
|
315
|
+
cells.push(buildCell(meterTag, reading.snapshot, reading.state, color, wide, bars));
|
|
226
316
|
}
|
|
227
317
|
continue;
|
|
228
318
|
}
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
if (
|
|
232
|
-
worst
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
319
|
+
for (const worst of worstReadings(provider, readings)) {
|
|
320
|
+
const label = captionFor(worst.snapshot, hostProvider, captions, claudeFamilyCodesFor(worst.snapshot, snapshots));
|
|
321
|
+
if (isAvailabilitySnapshot(worst.snapshot)) {
|
|
322
|
+
cells.push(availabilityCell(label, worst.snapshot, now));
|
|
323
|
+
continue;
|
|
324
|
+
}
|
|
325
|
+
if (providerMeterPresentation(provider, worst.snapshot.meter)?.valueSemantics === "balance") {
|
|
326
|
+
cells.push(balanceCell(label, worst.snapshot, worst.state === "stale"));
|
|
327
|
+
continue;
|
|
328
|
+
}
|
|
329
|
+
cells.push(buildCell(label, worst.snapshot, worst.state, color, wide, bars));
|
|
237
330
|
}
|
|
238
|
-
cells.push(buildCell(provider, worst.snapshot, worst.state, color, wide));
|
|
239
331
|
}
|
|
240
332
|
return cells;
|
|
241
333
|
}
|
|
334
|
+
/** The compact one line style, with the same meter meanings as the bar style. */
|
|
335
|
+
export function renderPlainStatusline(advice, snapshots, now, order, meters, pollHint, hostProvider = null) {
|
|
336
|
+
if (!advice.inject || advice.reason === "UNKNOWN")
|
|
337
|
+
return "OpenLimiter UNKNOWN";
|
|
338
|
+
const cells = statuslineCells(snapshots, now, order, meters, false, undefined, false, hostProvider);
|
|
339
|
+
if (cells.length === 0)
|
|
340
|
+
return "OpenLimiter UNKNOWN";
|
|
341
|
+
const recommendation = advice.recommendation.code === "PREFER"
|
|
342
|
+
? " PREFER " + advice.recommendation.provider
|
|
343
|
+
: " NONE";
|
|
344
|
+
const unknown = advice.unknownProviders.length === 0
|
|
345
|
+
? ""
|
|
346
|
+
: " UNKNOWN " + advice.unknownProviders.join(",");
|
|
347
|
+
return "OpenLimiter " + advice.reason + " " + cells.map((cell) => cell.plain).join(" ") +
|
|
348
|
+
recommendation + unknown + (pollHint === undefined ? "" : " " + pollHint);
|
|
349
|
+
}
|
|
242
350
|
/* ------------------------------------------------------------------ layout */
|
|
243
351
|
/**
|
|
244
352
|
* Everything that is not a cell.
|
|
@@ -355,6 +463,11 @@ export const BAR_CELL_SEPARATOR = " | ";
|
|
|
355
463
|
export const TEN_BLOCK_FULL = "█";
|
|
356
464
|
export const TEN_BLOCK_EMPTY = "░";
|
|
357
465
|
export function windowCode(snapshot) {
|
|
466
|
+
const presentation = providerMeterPresentation(snapshot.provider, snapshot.meter);
|
|
467
|
+
const claude = snapshot.provider === "CLAUDE" ? claudeMeterPresentation(snapshot.meter) : null;
|
|
468
|
+
if (claude !== null && (claude.model !== null || claude.labelKey === "claudeExtraUsage")) {
|
|
469
|
+
return claude.compactLabel.toLowerCase();
|
|
470
|
+
}
|
|
358
471
|
if (snapshot.unit === "CREDITS" || snapshot.window.kind === "lifetime") {
|
|
359
472
|
return "";
|
|
360
473
|
}
|
|
@@ -381,34 +494,84 @@ export function windowCode(snapshot) {
|
|
|
381
494
|
return "mo";
|
|
382
495
|
return "";
|
|
383
496
|
}
|
|
497
|
+
/** The one caption rule used by bar cells, legacy cells, and availability. */
|
|
498
|
+
export function captionFor(snapshot, hostProvider, captions = "short", familyCodes = []) {
|
|
499
|
+
const provider = snapshot.provider;
|
|
500
|
+
const presentation = providerMeterPresentation(provider, snapshot.meter, familyCodes);
|
|
501
|
+
const claude = provider === "CLAUDE" ? claudeMeterPresentation(snapshot.meter, familyCodes) : null;
|
|
502
|
+
if (claude !== null && (claude.model !== null || claude.labelKey === "claudeExtraUsage")) {
|
|
503
|
+
return claude.compactLabel.toLowerCase();
|
|
504
|
+
}
|
|
505
|
+
if (provider === "ANTIGRAVITY" &&
|
|
506
|
+
(snapshot.meter === "THIRD_PARTY_SESSION" || snapshot.meter === "THIRD_PARTY_WEEKLY")) {
|
|
507
|
+
const scoped = presentation?.compactLabel.toLowerCase() ?? windowCode(snapshot);
|
|
508
|
+
return captions === "tagged" || hostProvider !== provider
|
|
509
|
+
? PROVIDER_SHORT_TAGS[provider] + scoped
|
|
510
|
+
: scoped;
|
|
511
|
+
}
|
|
512
|
+
if (provider === "OPENROUTER" && snapshot.meter === "KEY_LIMIT" && snapshot.availability === undefined) {
|
|
513
|
+
const key = presentation?.compactLabel.toLowerCase() ?? "key";
|
|
514
|
+
return captions === "tagged" || hostProvider !== provider
|
|
515
|
+
? PROVIDER_SHORT_TAGS[provider] + " " + key
|
|
516
|
+
: key;
|
|
517
|
+
}
|
|
518
|
+
const code = windowCode(snapshot);
|
|
519
|
+
if (code === "")
|
|
520
|
+
return PROVIDER_SHORT_TAGS[provider];
|
|
521
|
+
if (captions === "tagged" || hostProvider !== provider) {
|
|
522
|
+
return PROVIDER_SHORT_TAGS[provider] + code;
|
|
523
|
+
}
|
|
524
|
+
return code;
|
|
525
|
+
}
|
|
526
|
+
function visibilityKey(snapshot) {
|
|
527
|
+
if (snapshot.provider === "CLAUDE") {
|
|
528
|
+
const presentation = claudeMeterPresentation(snapshot.meter);
|
|
529
|
+
if (presentation?.labelKey === "claudeWeeklyFable")
|
|
530
|
+
return "fable";
|
|
531
|
+
if (presentation?.model !== null && presentation?.model !== undefined) {
|
|
532
|
+
return presentation.model.split(/[\s-]+/u)[0].toLowerCase();
|
|
533
|
+
}
|
|
534
|
+
if (presentation?.labelKey === "claudeExtraUsage")
|
|
535
|
+
return "extra";
|
|
536
|
+
}
|
|
537
|
+
return windowCode(snapshot).toLowerCase();
|
|
538
|
+
}
|
|
539
|
+
function windowVisible(snapshot, visibility) {
|
|
540
|
+
const specific = visibility[visibilityKey(snapshot)];
|
|
541
|
+
if (specific !== undefined)
|
|
542
|
+
return specific;
|
|
543
|
+
if (snapshot.provider === "CLAUDE" && claudeMeterPresentation(snapshot.meter)?.modelScoped) {
|
|
544
|
+
return visibility["7d"] !== false;
|
|
545
|
+
}
|
|
546
|
+
return true;
|
|
547
|
+
}
|
|
384
548
|
export function tenBlockBar(value, unicode = true) {
|
|
385
549
|
const clamped = Math.min(100, Math.max(0, value));
|
|
386
550
|
const filled = clamped > 0 ? Math.max(1, Math.floor(clamped / 10)) : 0;
|
|
387
551
|
const empty = 10 - filled;
|
|
388
552
|
return "[" + (unicode ? TEN_BLOCK_FULL : "#").repeat(filled) + (unicode ? TEN_BLOCK_EMPTY : ".").repeat(empty) + "]";
|
|
389
553
|
}
|
|
390
|
-
|
|
391
|
-
if (!resetAt)
|
|
392
|
-
return "";
|
|
393
|
-
const diffMs = new Date(resetAt).getTime() - new Date(now).getTime();
|
|
394
|
-
const diffSec = Math.floor(diffMs / 1000);
|
|
395
|
-
if (!Number.isFinite(diffSec) || diffSec <= 0)
|
|
396
|
-
return "";
|
|
554
|
+
function compactResetDuration(diffSec) {
|
|
397
555
|
if (diffSec >= 86_400) {
|
|
398
556
|
const days = Math.floor(diffSec / 86_400);
|
|
399
557
|
const hours = Math.floor((diffSec % 86_400) / 3600);
|
|
400
|
-
return
|
|
558
|
+
return String(days) + "d" + (hours > 0 ? String(hours) + "h" : "");
|
|
401
559
|
}
|
|
402
560
|
if (diffSec >= 3600) {
|
|
403
561
|
const hours = Math.floor(diffSec / 3600);
|
|
404
562
|
const mins = Math.floor((diffSec % 3600) / 60);
|
|
405
|
-
return
|
|
563
|
+
return String(hours) + "h" + (mins > 0 ? String(mins) + "m" : "");
|
|
406
564
|
}
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
565
|
+
return diffSec >= 60 ? String(Math.floor(diffSec / 60)) + "m" : String(diffSec) + "s";
|
|
566
|
+
}
|
|
567
|
+
export function formatResetTime(resetAt, now) {
|
|
568
|
+
if (!resetAt)
|
|
569
|
+
return "";
|
|
570
|
+
const diffMs = new Date(resetAt).getTime() - new Date(now).getTime();
|
|
571
|
+
const diffSec = Math.floor(diffMs / 1000);
|
|
572
|
+
if (!Number.isFinite(diffSec) || diffSec <= 0)
|
|
573
|
+
return "";
|
|
574
|
+
return "·" + compactResetDuration(diffSec);
|
|
412
575
|
}
|
|
413
576
|
export function paintBand(text, value, _state, _wide = false) {
|
|
414
577
|
if (value >= 90)
|
|
@@ -419,7 +582,7 @@ export function paintBand(text, value, _state, _wide = false) {
|
|
|
419
582
|
return "\x1b[33m" + text + "\x1b[0m";
|
|
420
583
|
return "\x1b[32m" + text + "\x1b[0m";
|
|
421
584
|
}
|
|
422
|
-
export function barStyleCells(snapshots, now, order, host, show, metersSetting, color, wide, explicitSelection = false, visibility = {}, unicode = true) {
|
|
585
|
+
export function barStyleCells(snapshots, now, order, host, show, metersSetting, color, wide, explicitSelection = false, visibility = {}, unicode = true, inputCaptions = "short") {
|
|
423
586
|
const cells = [];
|
|
424
587
|
const hostProvider = HOST_PROVIDER[host];
|
|
425
588
|
const allowedProviders = show.length === 0 && !explicitSelection
|
|
@@ -432,41 +595,26 @@ export function barStyleCells(snapshots, now, order, host, show, metersSetting,
|
|
|
432
595
|
allowedProviders.has(shortTag));
|
|
433
596
|
if (!isAllowed)
|
|
434
597
|
continue;
|
|
435
|
-
const readings = readingsFor(snapshots, provider, now).filter(({ snapshot }) =>
|
|
598
|
+
const readings = readingsFor(snapshots, provider, now).filter(({ snapshot }) => windowVisible(snapshot, visibility));
|
|
436
599
|
// Nothing measured means nothing drawn, even for a provider someone chose.
|
|
437
600
|
if (readings.length === 0)
|
|
438
601
|
continue;
|
|
439
602
|
let selectedReadings = [];
|
|
440
|
-
if (provider ===
|
|
441
|
-
// Account caches may overlap. The newest observed balance owns the one
|
|
442
|
-
// OpenRouter cell, and api spend remains the fallback when none exists.
|
|
443
|
-
const balances = readings.filter(({ snapshot }) => snapshot.unit === "CREDITS" ||
|
|
444
|
-
snapshot.currency === "USD" && snapshot.limitAmount !== undefined && snapshot.usedAmount !== undefined);
|
|
445
|
-
if (balances.length > 0) {
|
|
446
|
-
selectedReadings = [balances.reduce((newest, reading) => Date.parse(reading.snapshot.observedAt) > Date.parse(newest.snapshot.observedAt) ? reading : newest)];
|
|
447
|
-
}
|
|
448
|
-
}
|
|
449
|
-
else if (provider === hostProvider) {
|
|
603
|
+
if (provider === hostProvider) {
|
|
450
604
|
selectedReadings = readings;
|
|
451
605
|
}
|
|
452
606
|
else if (metersSetting === "all") {
|
|
453
607
|
selectedReadings = readings;
|
|
454
608
|
}
|
|
455
609
|
else {
|
|
456
|
-
|
|
457
|
-
for (const r of readings.slice(1)) {
|
|
458
|
-
if (r.snapshot.value > worst.snapshot.value)
|
|
459
|
-
worst = r;
|
|
460
|
-
}
|
|
461
|
-
selectedReadings = [worst];
|
|
610
|
+
selectedReadings = worstReadings(provider, readings);
|
|
462
611
|
}
|
|
463
612
|
for (const reading of selectedReadings) {
|
|
464
613
|
const { snapshot, state } = reading;
|
|
465
|
-
const providerTag = provider === hostProvider ? "" : shortTag;
|
|
466
614
|
const ageSeconds = Math.max(0, Math.floor((Date.parse(now) - Date.parse(snapshot.observedAt)) / 1000));
|
|
467
615
|
const stale = state === "stale" || ageSeconds >= 180 || snapshot.precision === "estimated";
|
|
468
616
|
if (isAvailabilitySnapshot(snapshot)) {
|
|
469
|
-
const tag =
|
|
617
|
+
const tag = captionFor(snapshot, hostProvider, inputCaptions, claudeFamilyCodesFor(snapshot, snapshots));
|
|
470
618
|
const plain = tag + " " + availabilityText(snapshot, now);
|
|
471
619
|
const chosen = visibility[provider.toLowerCase()] === true ||
|
|
472
620
|
allowedProviders?.has(provider.toLowerCase()) || allowedProviders?.has(shortTag);
|
|
@@ -475,23 +623,36 @@ export function barStyleCells(snapshots, now, order, host, show, metersSetting,
|
|
|
475
623
|
(unknown ? (color ? " \x1b[31m[?]\x1b[0m" : " [?]") : ""), percent: Number.NEGATIVE_INFINITY });
|
|
476
624
|
continue;
|
|
477
625
|
}
|
|
478
|
-
if (
|
|
479
|
-
snapshot
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
626
|
+
if (isBalanceSnapshot(snapshot)) {
|
|
627
|
+
cells.push(balanceCell(captionFor(snapshot, hostProvider, inputCaptions, claudeFamilyCodesFor(snapshot, snapshots)), snapshot, stale));
|
|
628
|
+
continue;
|
|
629
|
+
}
|
|
630
|
+
if (provider === "OPENROUTER" && snapshot.meter === "KEY_LIMIT" &&
|
|
631
|
+
snapshot.usedAmount !== undefined && snapshot.limitAmount !== undefined &&
|
|
632
|
+
snapshot.currency === "USD") {
|
|
633
|
+
const amount = (stale ? "~" : "") + "$" + snapshot.usedAmount.toFixed(2) +
|
|
634
|
+
"/$" + snapshot.limitAmount.toFixed(2);
|
|
635
|
+
const plain = captionFor(snapshot, hostProvider, inputCaptions, claudeFamilyCodesFor(snapshot, snapshots)) + " " + amount;
|
|
636
|
+
cells.push({ plain, painted: plain, percent: snapshot.value });
|
|
637
|
+
continue;
|
|
638
|
+
}
|
|
639
|
+
if (snapshot.provider === "CLAUDE" && snapshot.meter === "EXTRA_USAGE" &&
|
|
640
|
+
snapshot.usedAmount !== undefined && snapshot.limitAmount !== undefined &&
|
|
641
|
+
snapshot.currency === "USD") {
|
|
642
|
+
const amount = (stale ? "~" : "") + "$" + snapshot.usedAmount.toFixed(2) +
|
|
643
|
+
"/$" + snapshot.limitAmount.toFixed(2);
|
|
644
|
+
const tag = captionFor(snapshot, hostProvider, inputCaptions, claudeFamilyCodesFor(snapshot, snapshots));
|
|
645
|
+
const plain = tag + " " + amount;
|
|
646
|
+
cells.push({ plain, painted: plain, percent: snapshot.value });
|
|
484
647
|
continue;
|
|
485
648
|
}
|
|
486
649
|
if (snapshot.usedAmount !== undefined && snapshot.currency === "USD") {
|
|
487
|
-
const tag =
|
|
650
|
+
const tag = captionFor(snapshot, hostProvider, inputCaptions, claudeFamilyCodesFor(snapshot, snapshots));
|
|
488
651
|
const plain = tag + " spend " + (stale ? "~" : "") + "$" + snapshot.usedAmount.toFixed(2);
|
|
489
652
|
cells.push({ plain, painted: plain, percent: snapshot.value });
|
|
490
653
|
continue;
|
|
491
654
|
}
|
|
492
|
-
const
|
|
493
|
-
const combinedTag = providerTag + winTag;
|
|
494
|
-
const tag = combinedTag === "" ? shortTag : combinedTag;
|
|
655
|
+
const tag = captionFor(snapshot, hostProvider, inputCaptions, claudeFamilyCodesFor(snapshot, snapshots));
|
|
495
656
|
const bar = tenBlockBar(snapshot.value, unicode);
|
|
496
657
|
const percentStr = (stale ? "~" : "") + Math.round(snapshot.value) + "%";
|
|
497
658
|
const resetStr = formatResetTime(snapshot.resetAt, now).replace("·", unicode ? "·" : ".");
|
|
@@ -519,11 +680,10 @@ export function barStyleCells(snapshots, now, order, host, show, metersSetting,
|
|
|
519
680
|
function renderBarStatusline(input) {
|
|
520
681
|
const { config } = input;
|
|
521
682
|
const host = input.host ?? "claude";
|
|
522
|
-
const cells = barStyleCells(input.snapshots, input.now, resolveProviderOrder(config.order), host, config.show, config.meters, input.color, input.wide, config.showMode === "explicit", config.visibility, input.unicode);
|
|
683
|
+
const cells = barStyleCells(input.snapshots, input.now, resolveProviderOrder(config.order), host, config.show, config.meters, input.color, input.wide, config.showMode === "explicit", config.visibility, input.unicode, config.captions);
|
|
523
684
|
const listed = new Set(config.show.map((entry) => entry.toLowerCase()));
|
|
524
685
|
const apiMoney = moneyCells(input.apiSpend, {
|
|
525
686
|
now: input.now,
|
|
526
|
-
hasOpenRouter: cells.some((cell) => cell.plain.startsWith("or ")),
|
|
527
687
|
allowed: (name) => {
|
|
528
688
|
const tag = name === "openrouter" ? "or" : MONEY_TAGS[name];
|
|
529
689
|
return config.visibility?.[name] ??
|
|
@@ -548,6 +708,8 @@ function renderBarStatusline(input) {
|
|
|
548
708
|
: cell.plain));
|
|
549
709
|
if (shown("style") && session.style)
|
|
550
710
|
parts.push(session.style);
|
|
711
|
+
if (input.pollHint && shown("7d"))
|
|
712
|
+
parts.push(input.pollHint);
|
|
551
713
|
// The host owns wrapping. A column guess must not silently hide a provider.
|
|
552
714
|
return parts.join(BAR_CELL_SEPARATOR) || STATUSLINE_UNKNOWN;
|
|
553
715
|
}
|
|
@@ -566,9 +728,9 @@ export function renderStatuslineLayout(input) {
|
|
|
566
728
|
if (config.style === "cells") {
|
|
567
729
|
if (!advice.inject || advice.reason === "UNKNOWN")
|
|
568
730
|
return STATUSLINE_UNKNOWN;
|
|
569
|
-
const cells = statuslineCells(input.snapshots.filter((snapshot) => config.visibility
|
|
731
|
+
const cells = statuslineCells(input.snapshots.filter((snapshot) => windowVisible(snapshot, config.visibility ?? {})), input.now, resolveProviderOrder(config.order).filter((provider) => config.visibility?.[provider.toLowerCase()] ??
|
|
570
732
|
(config.show.length === 0 && config.showMode !== "explicit" ||
|
|
571
|
-
config.show.includes(provider.toLowerCase()) || config.show.includes(PROVIDER_SHORT_TAGS[provider]))), config.meters, input.color, input.wide);
|
|
733
|
+
config.show.includes(provider.toLowerCase()) || config.show.includes(PROVIDER_SHORT_TAGS[provider]))), config.meters, input.color, input.wide, true, HOST_PROVIDER[input.host ?? "claude"], config.captions);
|
|
572
734
|
if (cells.length === 0)
|
|
573
735
|
return STATUSLINE_UNKNOWN;
|
|
574
736
|
const head = statuslineHead(advice);
|