@askalf/dario 6.6.1 → 6.6.3
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 +9 -1
- package/dist/analytics.d.ts +11 -7
- package/dist/analytics.js +15 -12
- package/docs/api-equivalent-spend.md +9 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -368,7 +368,7 @@ Type `dario` with no arguments for a full-screen control panel: live request str
|
|
|
368
368
|
|
|
369
369
|
<picture>
|
|
370
370
|
<source media="(prefers-color-scheme: dark)" srcset=".github/readme/tui-analytics-dark.svg">
|
|
371
|
-
<img alt="The dario TUI Analytics tab: requests per minute, tokens in and out, thinking tokens, average latency, subscription percentage, a per-model bar chart, per-account rate-limit bars for the 5-hour and 7-day windows, and a billing breakdown." src=".github/readme/tui-analytics-light.svg" width="100%">
|
|
371
|
+
<img alt="The dario TUI Analytics tab: requests per minute, tokens in and out, thinking tokens, average latency, subscription percentage, the lifetime API-equivalent spend from the ledger, a per-model bar chart, per-account rate-limit bars for the 5-hour and 7-day windows, and a billing breakdown." src=".github/readme/tui-analytics-light.svg" width="100%">
|
|
372
372
|
</picture>
|
|
373
373
|
|
|
374
374
|
<sub>Both screenshots are rendered from the real TUI against a fixture proxy by <a href="scripts/readme/tui.mjs"><code>scripts/readme/tui.mjs</code></a>, so a layout change shows up here instead of rotting a mock-up. The numbers are illustrative; the pixels are not.</sub>
|
|
@@ -663,6 +663,14 @@ Two easy ways to help beyond code: **star the repo**, the clearest signal this i
|
|
|
663
663
|
| [@anupamme](https://github.com/anupamme) | Refresh-lock ownership by server-issued lock id ([#1059](https://github.com/askalf/dario/pull/1059)) |
|
|
664
664
|
| [@LiveNathan](https://github.com/LiveNathan) | Never send or stamp empty text blocks ([#1067](https://github.com/askalf/dario/pull/1067)), empty final user turn from CC's stream-interruption retry ([#1092](https://github.com/askalf/dario/issues/1092), as [@NathanLively](https://github.com/NathanLively)) |
|
|
665
665
|
|
|
666
|
+
### Sponsors
|
|
667
|
+
|
|
668
|
+
<!-- sponsors:start -->
|
|
669
|
+
dario is funded by its users through [GitHub Sponsors](https://github.com/sponsors/askalf) — the live-test seats it is checked against before every release are the biggest line item. Sponsors at $25/month and up are listed here.
|
|
670
|
+
<!-- sponsors:end -->
|
|
671
|
+
|
|
672
|
+
<sub>This block and the thank-you in each release's notes come from <a href="scripts/sponsors.mjs"><code>scripts/sponsors.mjs</code></a>, which reads the public sponsor list; <code>sponsors-readme.yml</code> opens a PR when it changes. Private sponsors are never named.</sub>
|
|
673
|
+
|
|
666
674
|
## Disclaimers
|
|
667
675
|
|
|
668
676
|
**dario is an independent, unofficial, third-party project.** Not affiliated with, endorsed by, or sponsored by Anthropic, OpenAI, or any vendor referenced here. Provided as-is, no warranty. You are solely responsible for compliance with your subscription's terms, the security of your credentials, and the content you send through the proxy. Not for safety-critical, regulated, or production environments without your own review. Full text: [DISCLAIMER.md](DISCLAIMER.md).
|
package/dist/analytics.d.ts
CHANGED
|
@@ -202,16 +202,20 @@ interface PricingEntry extends Rate {
|
|
|
202
202
|
export declare const PRICING: Record<string, PricingEntry>;
|
|
203
203
|
/**
|
|
204
204
|
* OpenAI's published per-1M-token rates for the models the codex backend
|
|
205
|
-
* serves
|
|
206
|
-
*
|
|
207
|
-
* diffs
|
|
208
|
-
*
|
|
209
|
-
*
|
|
210
|
-
*
|
|
205
|
+
* serves — the standard tier's short-context (<272K) columns of
|
|
206
|
+
* developers.openai.com/api/docs/pricing. Kept apart from PRICING because
|
|
207
|
+
* scripts/check-pricing-drift.mjs diffs each table against its own page
|
|
208
|
+
* (this one since 6.6.1; it shipped unwatched in 6.6.0, and the first watched
|
|
209
|
+
* run found the cache-write column wrong: the 5.6 family and gpt-6-astra
|
|
210
|
+
* charge 1.25× input to write a cache entry, the older families list no
|
|
211
|
+
* write price, encoded here as cacheCreate = input). The codex path reports
|
|
212
|
+
* no cache writes anyway — `cached_tokens` lands in cacheReadTokens, the
|
|
213
|
+
* rest in inputTokens — so the column is for correctness, not for a number
|
|
214
|
+
* anyone has seen yet.
|
|
211
215
|
*
|
|
212
216
|
* Before this table every `gpt-*` row was priced at the sonnet-4-6 fallback:
|
|
213
217
|
* a ChatGPT-plan request showed up in "would-be API cost" at Anthropic's
|
|
214
|
-
* rate for a model Anthropic does not sell.
|
|
218
|
+
* rate for a model Anthropic does not sell.
|
|
215
219
|
*/
|
|
216
220
|
export declare const OPENAI_PRICING: Record<string, Rate>;
|
|
217
221
|
export type PricingProvider = 'anthropic' | 'openai';
|
package/dist/analytics.js
CHANGED
|
@@ -231,27 +231,30 @@ export const PRICING = {
|
|
|
231
231
|
};
|
|
232
232
|
/**
|
|
233
233
|
* OpenAI's published per-1M-token rates for the models the codex backend
|
|
234
|
-
* serves
|
|
235
|
-
*
|
|
236
|
-
* diffs
|
|
237
|
-
*
|
|
238
|
-
*
|
|
239
|
-
*
|
|
234
|
+
* serves — the standard tier's short-context (<272K) columns of
|
|
235
|
+
* developers.openai.com/api/docs/pricing. Kept apart from PRICING because
|
|
236
|
+
* scripts/check-pricing-drift.mjs diffs each table against its own page
|
|
237
|
+
* (this one since 6.6.1; it shipped unwatched in 6.6.0, and the first watched
|
|
238
|
+
* run found the cache-write column wrong: the 5.6 family and gpt-6-astra
|
|
239
|
+
* charge 1.25× input to write a cache entry, the older families list no
|
|
240
|
+
* write price, encoded here as cacheCreate = input). The codex path reports
|
|
241
|
+
* no cache writes anyway — `cached_tokens` lands in cacheReadTokens, the
|
|
242
|
+
* rest in inputTokens — so the column is for correctness, not for a number
|
|
243
|
+
* anyone has seen yet.
|
|
240
244
|
*
|
|
241
245
|
* Before this table every `gpt-*` row was priced at the sonnet-4-6 fallback:
|
|
242
246
|
* a ChatGPT-plan request showed up in "would-be API cost" at Anthropic's
|
|
243
|
-
* rate for a model Anthropic does not sell.
|
|
247
|
+
* rate for a model Anthropic does not sell.
|
|
244
248
|
*/
|
|
245
249
|
export const OPENAI_PRICING = {
|
|
246
|
-
'gpt-6-astra': { input: 10, output: 50, cacheRead: 1, cacheCreate:
|
|
247
|
-
'gpt-5.6-sol': { input: 4, output: 20, cacheRead: 0.4, cacheCreate:
|
|
248
|
-
'gpt-5.6-terra': { input: 2, output: 12, cacheRead: 0.2, cacheCreate: 2 },
|
|
249
|
-
'gpt-5.6-luna': { input: 0.2, output: 1.2, cacheRead: 0.02, cacheCreate: 0.
|
|
250
|
+
'gpt-6-astra': { input: 10, output: 50, cacheRead: 1, cacheCreate: 12.5 },
|
|
251
|
+
'gpt-5.6-sol': { input: 4, output: 20, cacheRead: 0.4, cacheCreate: 5 },
|
|
252
|
+
'gpt-5.6-terra': { input: 2, output: 12, cacheRead: 0.2, cacheCreate: 2.5 },
|
|
253
|
+
'gpt-5.6-luna': { input: 0.2, output: 1.2, cacheRead: 0.02, cacheCreate: 0.25 },
|
|
250
254
|
'gpt-5.5': { input: 5, output: 30, cacheRead: 0.5, cacheCreate: 5 },
|
|
251
255
|
'gpt-5.4': { input: 2.5, output: 15, cacheRead: 0.25, cacheCreate: 2.5 },
|
|
252
256
|
'gpt-5.4-mini': { input: 0.75, output: 4.5, cacheRead: 0.075, cacheCreate: 0.75 },
|
|
253
257
|
'gpt-5.4-nano': { input: 0.2, output: 1.25, cacheRead: 0.02, cacheCreate: 0.2 },
|
|
254
|
-
'gpt-5.3-codex': { input: 1.75, output: 14, cacheRead: 0.175, cacheCreate: 1.75 },
|
|
255
258
|
};
|
|
256
259
|
/** The unknown-model rate on the OpenAI side: dario's default codex model. */
|
|
257
260
|
const OPENAI_FALLBACK_MODEL = 'gpt-5.6-terra';
|
|
@@ -110,7 +110,12 @@ nothing to write a cache entry, so cache-write tokens (which the codex path
|
|
|
110
110
|
never reports anyway) are priced at the input rate. Unknown `gpt-*` ids take
|
|
111
111
|
gpt-5.6-terra's rate, dario's default codex model.
|
|
112
112
|
|
|
113
|
-
`scripts/check-pricing-drift.mjs` watches
|
|
114
|
-
Anthropic's page
|
|
115
|
-
|
|
116
|
-
|
|
113
|
+
`scripts/check-pricing-drift.mjs` watches both tables daily
|
|
114
|
+
(`pricing-drift-watch.yml`): `PRICING` against Anthropic's page,
|
|
115
|
+
`OPENAI_PRICING` against OpenAI's `pricing.md` (the standard table's
|
|
116
|
+
short-context columns, found by its heading — the batch and fast-mode tables
|
|
117
|
+
below it carry the same headers). The first watched run corrected the table:
|
|
118
|
+
the 5.6 family and gpt-6-astra list a cache-write price of 1.25× input, which
|
|
119
|
+
6.6.0 had as the input rate. A page the watcher can fetch but no longer
|
|
120
|
+
understand is filed as an issue, not logged as a warning — that is how the
|
|
121
|
+
Anthropic side went unwatched for ten days in September 2026.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@askalf/dario",
|
|
3
|
-
"version": "6.6.
|
|
3
|
+
"version": "6.6.3",
|
|
4
4
|
"description": "Use your Claude and ChatGPT subscriptions in Cursor, Cline, Aider, Claude Code and the Agent SDK — at subscription pricing, not per-token API bills. One local Anthropic + OpenAI-compatible endpoint: either plan answers either wire shape, with automatic failover when one hits its limit.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|