nomnomtokens 0.2.0 → 0.3.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 +15 -10
- package/dist/index.js +4208 -3455
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/web/nitro.json +1 -1
- package/web/public/_nuxt/4C_a23zt.js +1 -0
- package/web/public/_nuxt/B1jhn8zK.js +1 -0
- package/web/public/_nuxt/B2aHje2L.js +1 -0
- package/web/public/_nuxt/BAfR3Wl32.js +1 -0
- package/web/public/_nuxt/BMSLzLlT.js +1 -0
- package/web/public/_nuxt/BOKlFKrX.js +1 -0
- package/web/public/_nuxt/Ba6z8j_4.js +1 -0
- package/web/public/_nuxt/{B1O-ibEy.js → Bag9D5rq.js} +2 -2
- package/web/public/_nuxt/Bia8fJFj.js +1 -0
- package/web/public/_nuxt/{tqUqm2f-.js → Bprokln-.js} +1 -1
- package/web/public/_nuxt/C51OzH6V.js +1 -0
- package/web/public/_nuxt/C9MiT_Wm.js +96 -0
- package/web/public/_nuxt/CDzUujek.js +2 -0
- package/web/public/_nuxt/CIHIOSzn.js +1 -0
- package/web/public/_nuxt/CIKwfDBl.js +1 -0
- package/web/public/_nuxt/COwSpxrx.js +1 -0
- package/web/public/_nuxt/CZSbzIi-.js +1 -0
- package/web/public/_nuxt/CfBMjq8x.js +1 -0
- package/web/public/_nuxt/Ch3y3mGJ.js +1 -0
- package/web/public/_nuxt/{B7bAnU98.js → CkRZsevx.js} +1 -1
- package/web/public/_nuxt/Cq1Sq3Go.js +1 -0
- package/web/public/_nuxt/CsN_oUfs.js +1 -0
- package/web/public/_nuxt/CvIugsJe2.js +1 -0
- package/web/public/_nuxt/D49wVVwm2.js +1 -0
- package/web/public/_nuxt/D4C6J8YV.js +1 -0
- package/web/public/_nuxt/D7Ph0tZD.js +1 -0
- package/web/public/_nuxt/D9Mxq5ER.js +1 -0
- package/web/public/_nuxt/D9j6aFUy.js +1 -0
- package/web/public/_nuxt/DMgad8mU.js +1 -0
- package/web/public/_nuxt/DPnm6zS2.js +1 -0
- package/web/public/_nuxt/DQEnwY-5.js +1 -0
- package/web/public/_nuxt/Dh50_bkx.js +1 -0
- package/web/public/_nuxt/DhJW7zb9.js +1 -0
- package/web/public/_nuxt/DnTwjl0_2.js +47 -0
- package/web/public/_nuxt/DsH8sTHf.js +1 -0
- package/web/public/_nuxt/Dy30RUCD2.js +1 -0
- package/web/public/_nuxt/OU1MVgXQ.js +1 -0
- package/web/public/_nuxt/W3KL_OjU.js +1 -0
- package/web/public/_nuxt/{BgvEQa6E.js → ZjfInHdu.js} +2 -2
- package/web/public/_nuxt/builds/latest.json +1 -1
- package/web/public/_nuxt/builds/meta/e90c8a2d-9e50-4b58-8019-6b1bf4c8fc6d.json +1 -0
- package/web/public/_nuxt/cbxnBwm6.js +1 -0
- package/web/public/_nuxt/entry.MbqNBIeH.css +2 -0
- package/web/public/_nuxt/m3-Vaz25.js +1 -0
- package/web/server/chunks/_/filters.mjs +1 -1
- package/web/server/chunks/build/{Badge-C0eTW_zX.mjs → Badge-BmQgPqZ1.mjs} +2 -2
- package/web/server/chunks/build/{Badge-C0eTW_zX.mjs.map → Badge-BmQgPqZ1.mjs.map} +1 -1
- package/web/server/chunks/build/{Button-7BTto1uR.mjs → Button-DnpDAHT3.mjs} +2 -2
- package/web/server/chunks/build/{Button-7BTto1uR.mjs.map → Button-DnpDAHT3.mjs.map} +1 -1
- package/web/server/chunks/build/Card-Be4cmWue.mjs +30 -0
- package/web/server/chunks/build/Card-Be4cmWue.mjs.map +1 -0
- package/web/server/chunks/build/{CardAction-M7nFIGyX.mjs → CardAction-CkY0xYx3.mjs} +2 -2
- package/web/server/chunks/build/{CardAction-M7nFIGyX.mjs.map → CardAction-CkY0xYx3.mjs.map} +1 -1
- package/web/server/chunks/build/{CardTitle-D9ve_H9E.mjs → CardContent-C_IMqI8K.mjs} +26 -26
- package/web/server/chunks/build/CardContent-C_IMqI8K.mjs.map +1 -0
- package/web/server/chunks/build/{EmptyState-DWgJMVCI.mjs → EmptyState-FUeBWCT0.mjs} +2 -2
- package/web/server/chunks/build/{EmptyState-DWgJMVCI.mjs.map → EmptyState-FUeBWCT0.mjs.map} +1 -1
- package/web/server/chunks/build/{FilterBar-vwbfttN7.mjs → FilterBar-BlEsJ5dy.mjs} +5 -5
- package/web/server/chunks/build/{FilterBar-vwbfttN7.mjs.map → FilterBar-BlEsJ5dy.mjs.map} +1 -1
- package/web/server/chunks/build/{Progress-BckzQSF5.mjs → Progress-BUpfE9Os.mjs} +2 -2
- package/web/server/chunks/build/{Progress-BckzQSF5.mjs.map → Progress-BUpfE9Os.mjs.map} +1 -1
- package/web/server/chunks/build/Skeleton-BidW2_bw.mjs +28 -0
- package/web/server/chunks/build/Skeleton-BidW2_bw.mjs.map +1 -0
- package/web/server/chunks/build/{Sparkline-Cxifh2uK.mjs → Sparkline-CaCRq45J.mjs} +6 -5
- package/web/server/chunks/build/Sparkline-CaCRq45J.mjs.map +1 -0
- package/web/server/chunks/build/{TableCell-BZwItbY_.mjs → TableCell-xM3CadYu.mjs} +2 -2
- package/web/server/chunks/build/{TableCell-BZwItbY_.mjs.map → TableCell-xM3CadYu.mjs.map} +1 -1
- package/web/server/chunks/build/{Tooltip-BVTXdgMT.mjs → Tooltip-BZX3jLtj.mjs} +16 -4
- package/web/server/chunks/build/Tooltip-BZX3jLtj.mjs.map +1 -0
- package/web/server/chunks/build/{_id_-BKmH0aHH.mjs → _id_-BvccBwzH.mjs} +14 -11
- package/web/server/chunks/build/_id_-BvccBwzH.mjs.map +1 -0
- package/web/server/chunks/build/alerts-6wBAzQHU.mjs +159 -0
- package/web/server/chunks/build/alerts-6wBAzQHU.mjs.map +1 -0
- package/web/server/chunks/build/{fetch-Debw9R9i.mjs → asyncData-CMa0z9Yw.mjs} +8 -129
- package/web/server/chunks/build/asyncData-CMa0z9Yw.mjs.map +1 -0
- package/web/server/chunks/build/default-BokiYQNv.mjs +847 -0
- package/web/server/chunks/build/default-BokiYQNv.mjs.map +1 -0
- package/web/server/chunks/build/error-404-DPRNxhXC.mjs +2 -2
- package/web/server/chunks/build/error-500-DXGrtqsW.mjs +2 -2
- package/web/server/chunks/build/export-BhfwmSMl.mjs +184 -0
- package/web/server/chunks/build/export-BhfwmSMl.mjs.map +1 -0
- package/web/server/chunks/build/fetch-DJ9NNbFP.mjs +131 -0
- package/web/server/chunks/build/fetch-DJ9NNbFP.mjs.map +1 -0
- package/web/server/chunks/build/import-CO3NEu0P.mjs +233 -0
- package/web/server/chunks/build/import-CO3NEu0P.mjs.map +1 -0
- package/web/server/chunks/build/{limits-CnRLojCD.mjs → limits-CX9zBSqw.mjs} +15 -12
- package/web/server/chunks/build/limits-CX9zBSqw.mjs.map +1 -0
- package/web/server/chunks/build/nuxt-link-mYiLFsJs.mjs +2 -2
- package/web/server/chunks/build/{pages-DlIWqsLr.mjs → pages-DyXqJyPq.mjs} +140 -15
- package/web/server/chunks/build/pages-DyXqJyPq.mjs.map +1 -0
- package/web/server/chunks/build/{providers-DOMeWSDZ.mjs → providers-Ca7keu2G.mjs} +17 -14
- package/web/server/chunks/build/providers-Ca7keu2G.mjs.map +1 -0
- package/web/server/chunks/build/scopes-E5z80S19.mjs +1348 -0
- package/web/server/chunks/build/scopes-E5z80S19.mjs.map +1 -0
- package/web/server/chunks/build/{sessions-peyhKv2_.mjs → sessions-CESRiCOS.mjs} +14 -11
- package/web/server/chunks/build/sessions-CESRiCOS.mjs.map +1 -0
- package/web/server/chunks/build/{timeline-P2RrZyBs.mjs → timeline-d27OlbZN.mjs} +16 -13
- package/web/server/chunks/build/timeline-d27OlbZN.mjs.map +1 -0
- package/web/server/chunks/build/useFormat-NkyUqeik.mjs +71 -0
- package/web/server/chunks/build/useFormat-NkyUqeik.mjs.map +1 -0
- package/web/server/chunks/build/{useStats-Dor6kLek.mjs → useStats-CmYzpdbE.mjs} +11 -3
- package/web/server/chunks/build/useStats-CmYzpdbE.mjs.map +1 -0
- package/web/server/chunks/nitro/nitro.mjs +739 -195
- package/web/server/chunks/nitro/nitro.mjs.map +1 -1
- package/web/server/chunks/routes/api/alerts.get.mjs +24 -0
- package/web/server/chunks/routes/api/alerts.get.mjs.map +1 -0
- package/web/server/chunks/routes/api/alerts.put.mjs +27 -0
- package/web/server/chunks/routes/api/alerts.put.mjs.map +1 -0
- package/web/server/chunks/routes/api/events/stream.get.mjs +3 -3
- package/web/server/chunks/routes/api/export.get.mjs +36 -0
- package/web/server/chunks/routes/api/export.get.mjs.map +1 -0
- package/web/server/chunks/routes/api/import/csv.post.mjs +65 -0
- package/web/server/chunks/routes/api/import/csv.post.mjs.map +1 -0
- package/web/server/chunks/routes/api/ingest.post.mjs +3 -3
- package/web/server/chunks/routes/api/meta.get.mjs +3 -3
- package/web/server/chunks/routes/api/stats/heatmap.get.mjs +2 -2
- package/web/server/chunks/routes/api/stats/limits.get.mjs +3 -3
- package/web/server/chunks/routes/api/stats/providers.get.mjs +3 -3
- package/web/server/chunks/routes/api/stats/scopes.get.mjs +3 -3
- package/web/server/chunks/routes/api/stats/series.get.mjs +3 -3
- package/web/server/chunks/routes/api/stats/session/_id_.get.mjs +3 -3
- package/web/server/chunks/routes/api/stats/sessions.get.mjs +3 -3
- package/web/server/chunks/routes/api/stats/summary.get.mjs +3 -3
- package/web/server/chunks/routes/renderer.mjs +2 -2
- package/web/server/chunks/virtual/entry.mjs +26 -11
- package/web/server/chunks/virtual/precomputed.mjs +1 -1
- package/web/server/chunks/virtual/precomputed.mjs.map +1 -1
- package/web/server/index.mjs +3 -3
- package/web/public/_nuxt/075nz0Lp.js +0 -1
- package/web/public/_nuxt/BDF8cO8j.js +0 -1
- package/web/public/_nuxt/BGnU88BC.js +0 -1
- package/web/public/_nuxt/BPhzhJvP.js +0 -1
- package/web/public/_nuxt/BgaLDD2o.js +0 -1
- package/web/public/_nuxt/BioUjjBz.js +0 -1
- package/web/public/_nuxt/BlvSknce.js +0 -1
- package/web/public/_nuxt/Bn14i44R.js +0 -1
- package/web/public/_nuxt/BnfUOzcc.js +0 -1
- package/web/public/_nuxt/Bv0odo9W.js +0 -1
- package/web/public/_nuxt/Bxx0Z5z6.js +0 -1
- package/web/public/_nuxt/CiWIPYVi.js +0 -1
- package/web/public/_nuxt/CqSNCP5f.js +0 -1
- package/web/public/_nuxt/Ctg1e1JV.js +0 -1
- package/web/public/_nuxt/Cu3rIkF2.js +0 -47
- package/web/public/_nuxt/Cutk9Ewh.js +0 -1
- package/web/public/_nuxt/DCVp7cZB.js +0 -96
- package/web/public/_nuxt/DCnkQFS0.js +0 -1
- package/web/public/_nuxt/DJbGqyvB.js +0 -1
- package/web/public/_nuxt/DMT7tA5C.js +0 -1
- package/web/public/_nuxt/M0pG6UQn.js +0 -1
- package/web/public/_nuxt/RlymLGHS.js +0 -1
- package/web/public/_nuxt/TmkSb4nj.js +0 -1
- package/web/public/_nuxt/_S09PGd-.js +0 -1
- package/web/public/_nuxt/builds/meta/63ad5f37-5b40-456d-8f53-69ff57b4903c.json +0 -1
- package/web/public/_nuxt/cHkFs-ms.js +0 -1
- package/web/public/_nuxt/entry.DTNjKx6y.css +0 -2
- package/web/public/_nuxt/fjfS4ymU.js +0 -1
- package/web/public/_nuxt/moFy8lON.js +0 -2
- package/web/public/_nuxt/oT-x2NdZ.js +0 -1
- package/web/server/chunks/build/CardTitle-D9ve_H9E.mjs.map +0 -1
- package/web/server/chunks/build/Sparkline-Cxifh2uK.mjs.map +0 -1
- package/web/server/chunks/build/Tooltip-BVTXdgMT.mjs.map +0 -1
- package/web/server/chunks/build/_id_-BKmH0aHH.mjs.map +0 -1
- package/web/server/chunks/build/default-C8deLrP0.mjs +0 -556
- package/web/server/chunks/build/default-C8deLrP0.mjs.map +0 -1
- package/web/server/chunks/build/fetch-Debw9R9i.mjs.map +0 -1
- package/web/server/chunks/build/limits-CnRLojCD.mjs.map +0 -1
- package/web/server/chunks/build/pages-DlIWqsLr.mjs.map +0 -1
- package/web/server/chunks/build/providers-DOMeWSDZ.mjs.map +0 -1
- package/web/server/chunks/build/scopes-Bagepvnf.mjs +0 -794
- package/web/server/chunks/build/scopes-Bagepvnf.mjs.map +0 -1
- package/web/server/chunks/build/sessions-peyhKv2_.mjs.map +0 -1
- package/web/server/chunks/build/timeline-P2RrZyBs.mjs.map +0 -1
- package/web/server/chunks/build/useFormat-BfI0x0lv.mjs +0 -119
- package/web/server/chunks/build/useFormat-BfI0x0lv.mjs.map +0 -1
- package/web/server/chunks/build/useStats-Dor6kLek.mjs.map +0 -1
- /package/web/public/_nuxt/{BDNMzG2s.js → BDNMzG2s2.js} +0 -0
package/README.md
CHANGED
|
@@ -10,7 +10,9 @@ projects, and when you'll hit your limit.
|
|
|
10
10
|
npx nomnomtokens
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
-

|
|
14
|
+
|
|
15
|
+

|
|
14
16
|
|
|
15
17
|
Claude Code, Cursor (when its local IDE database has token fields), and Codex
|
|
16
18
|
CLI/IDE session rollouts. The event contract is deliberately not AI-shaped, so
|
|
@@ -31,7 +33,7 @@ without touching the core.
|
|
|
31
33
|
- **Limits** — window-fill history with a burn-rate projection and markers for
|
|
32
34
|
the moments you actually hit the cap.
|
|
33
35
|
|
|
34
|
-
Filter state lives in the URL, `⌘K` jumps anywhere, dark
|
|
36
|
+
Filter state lives in the URL, `⌘K` jumps anywhere, light or dark theme.
|
|
35
37
|
|
|
36
38
|
## Install
|
|
37
39
|
|
|
@@ -65,6 +67,10 @@ The hook doubles as a real status line:
|
|
|
65
67
|
| `nnt init [--force]` | wire up the status line hook |
|
|
66
68
|
| `nnt statusline` | ingest a session payload and print a status line |
|
|
67
69
|
| `nnt doctor` | why is it empty? checks sources, hook, and store |
|
|
70
|
+
| `nnt import <file.csv>` | import a billing CSV into the local store |
|
|
71
|
+
| `nnt export` | dump filtered events as CSV/JSON |
|
|
72
|
+
| `nnt prices [show\|refresh]` | local model price table (`~/.nomnomtokens/prices.json`) |
|
|
73
|
+
| `nnt alerts [show\|check]` | limit % / daily $ thresholds (`~/.nomnomtokens/alerts.json`) |
|
|
68
74
|
|
|
69
75
|
## Privacy
|
|
70
76
|
|
|
@@ -135,19 +141,18 @@ the core, the contract is wrong and that's a bug worth reporting.
|
|
|
135
141
|
|
|
136
142
|
## Roadmap
|
|
137
143
|
|
|
138
|
-
Shipped: Claude Code
|
|
139
|
-
|
|
140
|
-
forecasting, live updates.
|
|
141
|
-
wired into `scan` / the UI yet.
|
|
144
|
+
Shipped: Claude Code / Cursor / Codex adapters, CSV import & export, Projects
|
|
145
|
+
grouped by name, local `prices.json` refresh, limit/daily alerts, all dashboard
|
|
146
|
+
screens, limits with forecasting, live updates.
|
|
142
147
|
|
|
143
148
|
Cursor caveat: the IDE often stores zero token counts in local bubbles. We only
|
|
144
149
|
emit events when numbers are present (exact `tokenCount`, or
|
|
145
150
|
`tokensUsed` + delta). We do not estimate from message text. Sessions without
|
|
146
|
-
local counts will not appear until Cursor writes them — or until a
|
|
147
|
-
|
|
151
|
+
local counts will not appear until Cursor writes them — or until you import a
|
|
152
|
+
billing CSV.
|
|
148
153
|
|
|
149
|
-
Next:
|
|
150
|
-
|
|
154
|
+
Next: OTLP receiver, then cloud mode — a second sink for the same events, never
|
|
155
|
+
a rewrite, and never in the critical path.
|
|
151
156
|
|
|
152
157
|
## License
|
|
153
158
|
|