vibestats 1.3.0 → 1.3.2

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.
Files changed (2) hide show
  1. package/dist/index.js +56 -12
  2. package/package.json +7 -6
package/dist/index.js CHANGED
@@ -109,12 +109,17 @@ function getModelDisplayName(modelName) {
109
109
 
110
110
  // src/codex-pricing.ts
111
111
  var CODEX_MODEL_PRICING = {
112
- // GPT-5.3 (latest flagship, assumed same pricing as GPT-5.2)
112
+ // GPT-5.3 (latest flagship)
113
113
  "gpt-5.3": {
114
114
  input: 1.75,
115
115
  output: 14,
116
116
  cachedInput: 0.175
117
117
  },
118
+ "gpt-5.3-codex-spark": {
119
+ input: 1.75,
120
+ output: 14,
121
+ cachedInput: 0.175
122
+ },
118
123
  "gpt-5.3-codex": {
119
124
  input: 1.75,
120
125
  output: 14,
@@ -199,15 +204,33 @@ function getCodexModelPricing(modelName) {
199
204
  return CODEX_MODEL_PRICING[modelName];
200
205
  }
201
206
  const normalized = modelName.toLowerCase();
207
+ if (normalized.includes("5.3") && normalized.includes("spark")) {
208
+ return CODEX_MODEL_PRICING["gpt-5.3-codex-spark"];
209
+ }
210
+ if (normalized.includes("5.3") && normalized.includes("codex")) {
211
+ return CODEX_MODEL_PRICING["gpt-5.3-codex"];
212
+ }
202
213
  if (normalized.includes("5.3")) {
203
214
  return CODEX_MODEL_PRICING["gpt-5.3"];
204
215
  }
216
+ if (normalized.includes("5.2") && normalized.includes("codex")) {
217
+ return CODEX_MODEL_PRICING["gpt-5.2-codex"];
218
+ }
205
219
  if (normalized.includes("5.2")) {
206
220
  return CODEX_MODEL_PRICING["gpt-5.2"];
207
221
  }
208
- if (normalized.includes("5.1") && normalized.includes("max")) {
222
+ if (normalized.includes("5.1") && normalized.includes("codex") && normalized.includes("mini")) {
223
+ return CODEX_MODEL_PRICING["gpt-5.1-codex-mini"];
224
+ }
225
+ if (normalized.includes("5.1") && normalized.includes("codex") && normalized.includes("max")) {
209
226
  return CODEX_MODEL_PRICING["gpt-5.1-codex-max"];
210
227
  }
228
+ if (normalized.includes("5.1") && normalized.includes("codex")) {
229
+ return CODEX_MODEL_PRICING["gpt-5.1-codex"];
230
+ }
231
+ if (normalized.includes("5.1") && normalized.includes("max")) {
232
+ return CODEX_MODEL_PRICING["gpt-5.1"];
233
+ }
211
234
  if (normalized.includes("5.1") && normalized.includes("mini")) {
212
235
  return CODEX_MODEL_PRICING["gpt-5.1-codex-mini"];
213
236
  }
@@ -233,10 +256,13 @@ function getCodexModelPricing(modelName) {
233
256
  }
234
257
  function getCodexModelDisplayName(modelName) {
235
258
  const normalized = modelName.toLowerCase();
236
- if (normalized.includes("5.3") && normalized.includes("pro")) return "GPT-5.3 Pro";
259
+ if (normalized.includes("5.3") && normalized.includes("spark")) return "GPT-5.3 Codex Spark";
260
+ if (normalized.includes("5.3") && normalized.includes("codex")) return "GPT-5.3 Codex";
237
261
  if (normalized.includes("5.3")) return "GPT-5.3";
238
- if (normalized.includes("5.2") && normalized.includes("pro")) return "GPT-5.2 Pro";
262
+ if (normalized.includes("5.2") && normalized.includes("codex")) return "GPT-5.2 Codex";
239
263
  if (normalized.includes("5.2")) return "GPT-5.2";
264
+ if (normalized.includes("5.1") && normalized.includes("codex") && normalized.includes("max")) return "GPT-5.1 Codex Max";
265
+ if (normalized.includes("5.1") && normalized.includes("codex") && normalized.includes("mini")) return "GPT-5.1 Codex Mini";
240
266
  if (normalized.includes("5.1") && normalized.includes("max")) return "GPT-5.1 Max";
241
267
  if (normalized.includes("5.1") && normalized.includes("mini")) return "GPT-5.1 Mini";
242
268
  if (normalized.includes("5.1") && normalized.includes("codex")) return "GPT-5.1 Codex";
@@ -464,13 +490,19 @@ function sortModelsByTier(models) {
464
490
  "Haiku 4.5": 80,
465
491
  "Haiku 3.5": 79,
466
492
  "Haiku": 78,
467
- "GPT-5.3": 71,
468
- "GPT-5.2": 70,
469
- "GPT-5.1 Max": 69,
470
- "GPT-5.1": 68,
471
- "GPT-5.1 Mini": 67,
472
- "GPT-5": 66,
473
- "GPT-5 Mini": 65,
493
+ "GPT-5.3 Codex Spark": 76,
494
+ "GPT-5.3 Codex": 75,
495
+ "GPT-5.3": 74,
496
+ "GPT-5.2 Codex": 73,
497
+ "GPT-5.2": 72,
498
+ "GPT-5.1 Codex Max": 71,
499
+ "GPT-5.1 Max": 70,
500
+ "GPT-5.1 Codex Mini": 69,
501
+ "GPT-5.1 Mini": 68,
502
+ "GPT-5.1 Codex": 67,
503
+ "GPT-5.1": 66,
504
+ "GPT-5": 64,
505
+ "GPT-5 Mini": 63,
474
506
  "GPT-4o": 60,
475
507
  "GPT-4o Mini": 59
476
508
  };
@@ -1646,9 +1678,16 @@ function getModelAbbrevFromDisplayName(displayName) {
1646
1678
  "Haiku 3.5": "h35",
1647
1679
  Haiku: "haiku",
1648
1680
  // Codex/OpenAI models
1681
+ "GPT-5.3 Codex Spark": "g53s",
1682
+ "GPT-5.3 Codex": "g53c",
1683
+ "GPT-5.3": "g53",
1684
+ "GPT-5.2 Codex": "g52c",
1649
1685
  "GPT-5.2": "g52",
1686
+ "GPT-5.1 Codex Max": "g51cm",
1650
1687
  "GPT-5.1 Max": "g51m",
1688
+ "GPT-5.1 Codex Mini": "g51cn",
1651
1689
  "GPT-5.1 Mini": "g51n",
1690
+ "GPT-5.1 Codex": "g51c",
1652
1691
  "GPT-5.1": "g51",
1653
1692
  "GPT-5": "g5",
1654
1693
  "GPT-5 Mini": "g5n",
@@ -1657,8 +1696,13 @@ function getModelAbbrevFromDisplayName(displayName) {
1657
1696
  };
1658
1697
  if (map[displayName]) return map[displayName];
1659
1698
  const normalized = displayName.toLowerCase();
1699
+ if (normalized.includes("5.3") && normalized.includes("spark")) return "g53s";
1700
+ if (normalized.includes("5.3") && normalized.includes("codex")) return "g53c";
1660
1701
  if (normalized.includes("5.2")) return "g52";
1702
+ if (normalized.includes("5.1") && normalized.includes("codex") && normalized.includes("max")) return "g51cm";
1661
1703
  if (normalized.includes("5.1") && normalized.includes("max")) return "g51m";
1704
+ if (normalized.includes("5.1") && normalized.includes("codex") && normalized.includes("mini")) return "g51cn";
1705
+ if (normalized.includes("5.1") && normalized.includes("codex")) return "g51c";
1662
1706
  if (normalized.includes("5.1") && normalized.includes("mini")) return "g51n";
1663
1707
  if (normalized.includes("5.1")) return "g51";
1664
1708
  if (normalized.includes("5") && normalized.includes("mini")) return "g5n";
@@ -2026,7 +2070,7 @@ function parseLastDaysFlag(args) {
2026
2070
  var main = defineCommand({
2027
2071
  meta: {
2028
2072
  name: "vibestats",
2029
- version: "1.3.0",
2073
+ version: "1.3.2",
2030
2074
  description: "AI coding stats - usage tracking and annual wrapped for Claude Code & Codex"
2031
2075
  },
2032
2076
  args: {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "vibestats",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "description": "AI coding stats - usage tracking and annual wrapped for Claude Code & Codex",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",
@@ -18,6 +18,11 @@
18
18
  "files": [
19
19
  "dist"
20
20
  ],
21
+ "scripts": {
22
+ "dev": "tsx src/index.ts",
23
+ "build": "tsup src/index.ts --format esm --dts --clean --shims",
24
+ "prepublishOnly": "pnpm build"
25
+ },
21
26
  "keywords": [
22
27
  "claude",
23
28
  "claude-code",
@@ -45,9 +50,5 @@
45
50
  },
46
51
  "engines": {
47
52
  "node": ">=18.0.0"
48
- },
49
- "scripts": {
50
- "dev": "tsx src/index.ts",
51
- "build": "tsup src/index.ts --format esm --dts --clean --shims"
52
53
  }
53
- }
54
+ }