tokely 0.5.3 → 0.5.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/cli.js CHANGED
@@ -8474,11 +8474,12 @@ var HELP_TEXT = `tokely
8474
8474
  Generate rolling 1-year usage heatmap image(s) (today is the latest day).
8475
8475
 
8476
8476
  Usage:
8477
- tokely [--all] [--today] [--amp] [--claude] [--codex] [--cursor] [--gemini] [--opencode] [--openclaw] [--pi] [--dark] [--format png|svg|json] [--output ./heatmap-last-year.png]
8477
+ tokely [--all] [--today] [--yesterday] [--amp] [--claude] [--codex] [--cursor] [--gemini] [--opencode] [--openclaw] [--pi] [--dark] [--format png|svg|json] [--output ./heatmap-last-year.png]
8478
8478
 
8479
8479
  Options:
8480
8480
  --all Render one merged graph for all providers
8481
8481
  --today Show today's usage stats in terminal
8482
+ --yesterday Show yesterday's usage stats in terminal
8482
8483
  --amp Render Amp graph
8483
8484
  --claude Render Claude Code graph
8484
8485
  --codex Render Codex graph
@@ -8505,6 +8506,7 @@ function validateArgs(values) {
8505
8506
  dark: ow.boolean,
8506
8507
  all: ow.boolean,
8507
8508
  today: ow.boolean,
8509
+ yesterday: ow.boolean,
8508
8510
  amp: ow.boolean,
8509
8511
  claude: ow.boolean,
8510
8512
  codex: ow.boolean,
@@ -8712,6 +8714,49 @@ No usage data found for today (${today}).
8712
8714
  ${header}
8713
8715
  ${body}
8714
8716
 
8717
+ `);
8718
+ }
8719
+ function printYesterdayStats(rowsByProvider, providers) {
8720
+ const yesterday = /* @__PURE__ */ new Date();
8721
+ yesterday.setDate(yesterday.getDate() - 1);
8722
+ const yesterdayStr = formatLocalDate(yesterday);
8723
+ const rows = [];
8724
+ for (const provider of providers) {
8725
+ const summary = rowsByProvider[provider];
8726
+ if (!summary) {
8727
+ continue;
8728
+ }
8729
+ const yesterdayRow = summary.daily.find(
8730
+ (row) => formatLocalDate(row.date) === yesterdayStr
8731
+ );
8732
+ if (!yesterdayRow || yesterdayRow.total <= 0 && (yesterdayRow.displayValue ?? 0) <= 0) {
8733
+ continue;
8734
+ }
8735
+ const topModel = yesterdayRow.breakdown.length > 0 ? `${yesterdayRow.breakdown[0].name} (${formatTokens(yesterdayRow.breakdown[0].tokens.total)})` : "-";
8736
+ rows.push({
8737
+ provider: providerStatusLabel[provider],
8738
+ input: formatTokens(yesterdayRow.input),
8739
+ output: formatTokens(yesterdayRow.output),
8740
+ total: formatTokens(yesterdayRow.total),
8741
+ topModel
8742
+ });
8743
+ }
8744
+ if (rows.length === 0) {
8745
+ process.stdout.write(
8746
+ `
8747
+ No usage data found for yesterday (${yesterdayStr}).
8748
+ `
8749
+ );
8750
+ return;
8751
+ }
8752
+ const header = "| Provider | Input | Output | Total | Top Model |\n| --- | --- | --- | --- | --- |";
8753
+ const body = rows.map(
8754
+ (row) => `| ${row.provider} | ${row.input} | ${row.output} | ${row.total} | ${row.topModel} |`
8755
+ ).join("\n");
8756
+ process.stdout.write(`
8757
+ ${header}
8758
+ ${body}
8759
+
8715
8760
  `);
8716
8761
  }
8717
8762
  async function main() {
@@ -8724,6 +8769,7 @@ async function main() {
8724
8769
  dark: { type: "boolean", default: false },
8725
8770
  all: { type: "boolean", default: false },
8726
8771
  today: { type: "boolean", default: false },
8772
+ yesterday: { type: "boolean", default: false },
8727
8773
  amp: { type: "boolean", default: false },
8728
8774
  claude: { type: "boolean", default: false },
8729
8775
  codex: { type: "boolean", default: false },
@@ -8762,13 +8808,17 @@ async function main() {
8762
8808
  process.stderr.write(`${warning}
8763
8809
  `);
8764
8810
  }
8765
- if (!values.today) {
8811
+ if (!values.today && !values.yesterday) {
8766
8812
  printProviderAvailability(availabilityByProvider, inspectedProviders);
8767
8813
  }
8768
8814
  if (values.today) {
8769
8815
  printTodayStats(rowsByProvider, inspectedProviders);
8770
8816
  return;
8771
8817
  }
8818
+ if (values.yesterday) {
8819
+ printYesterdayStats(rowsByProvider, inspectedProviders);
8820
+ return;
8821
+ }
8772
8822
  const exportProviders = getOutputProviders(
8773
8823
  values,
8774
8824
  availabilityByProvider,