@kenz1117/dsh-ui-usage-billing 1.4.25 → 1.4.27
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/lib/index.js +132 -4
- package/lib/types/aggregate.d.ts +1 -1
- package/package.json +1 -1
package/lib/index.js
CHANGED
|
@@ -1552,6 +1552,54 @@ const BUILTIN_MODEL_CATALOG = [
|
|
|
1552
1552
|
output: 1.2
|
|
1553
1553
|
}
|
|
1554
1554
|
},
|
|
1555
|
+
{
|
|
1556
|
+
key: "gpt-5.5",
|
|
1557
|
+
name: "GPT-5.5",
|
|
1558
|
+
provider: "OpenAI",
|
|
1559
|
+
colorVar: "ds-green",
|
|
1560
|
+
price: {
|
|
1561
|
+
currency: "USD",
|
|
1562
|
+
input: 5,
|
|
1563
|
+
cacheHit: .5,
|
|
1564
|
+
output: 30
|
|
1565
|
+
}
|
|
1566
|
+
},
|
|
1567
|
+
{
|
|
1568
|
+
key: "gpt-6.1-sol",
|
|
1569
|
+
name: "GPT-6.1 Sol",
|
|
1570
|
+
provider: "OpenAI",
|
|
1571
|
+
colorVar: "ds-green",
|
|
1572
|
+
price: {
|
|
1573
|
+
currency: "USD",
|
|
1574
|
+
input: 2,
|
|
1575
|
+
cacheHit: .1,
|
|
1576
|
+
output: 10
|
|
1577
|
+
}
|
|
1578
|
+
},
|
|
1579
|
+
{
|
|
1580
|
+
key: "gpt-image-2",
|
|
1581
|
+
name: "GPT Image 2",
|
|
1582
|
+
provider: "OpenAI",
|
|
1583
|
+
colorVar: "ds-green",
|
|
1584
|
+
price: {
|
|
1585
|
+
currency: "CNY",
|
|
1586
|
+
input: 14,
|
|
1587
|
+
cacheHit: 5.6,
|
|
1588
|
+
output: 84
|
|
1589
|
+
}
|
|
1590
|
+
},
|
|
1591
|
+
{
|
|
1592
|
+
key: "gpt-image-2.5-sunburst",
|
|
1593
|
+
name: "GPT Image 2.5 Sunburst",
|
|
1594
|
+
provider: "OpenAI",
|
|
1595
|
+
colorVar: "ds-green",
|
|
1596
|
+
price: {
|
|
1597
|
+
currency: "CNY",
|
|
1598
|
+
input: 14,
|
|
1599
|
+
cacheHit: 5.6,
|
|
1600
|
+
output: 84
|
|
1601
|
+
}
|
|
1602
|
+
},
|
|
1555
1603
|
{
|
|
1556
1604
|
key: "gemini-pro",
|
|
1557
1605
|
name: "Gemini 3.1 Pro",
|
|
@@ -1667,6 +1715,18 @@ const BUILTIN_MODEL_CATALOG = [
|
|
|
1667
1715
|
output: 6
|
|
1668
1716
|
}
|
|
1669
1717
|
},
|
|
1718
|
+
{
|
|
1719
|
+
key: "grok-4.5",
|
|
1720
|
+
name: "Grok 4.5",
|
|
1721
|
+
provider: "xAI",
|
|
1722
|
+
colorVar: "dsw-static-neutral-bluish-700",
|
|
1723
|
+
price: {
|
|
1724
|
+
currency: "USD",
|
|
1725
|
+
input: 2,
|
|
1726
|
+
cacheHit: .3,
|
|
1727
|
+
output: 6
|
|
1728
|
+
}
|
|
1729
|
+
},
|
|
1670
1730
|
{
|
|
1671
1731
|
key: "grok-4.3",
|
|
1672
1732
|
name: "Grok 4.3",
|
|
@@ -1727,6 +1787,30 @@ const BUILTIN_MODEL_CATALOG = [
|
|
|
1727
1787
|
output: 25
|
|
1728
1788
|
}
|
|
1729
1789
|
},
|
|
1790
|
+
{
|
|
1791
|
+
key: "claude-opus-4-7",
|
|
1792
|
+
name: "Claude Opus 4.7",
|
|
1793
|
+
provider: "Anthropic",
|
|
1794
|
+
colorVar: "ds-red",
|
|
1795
|
+
price: {
|
|
1796
|
+
currency: "USD",
|
|
1797
|
+
input: 5,
|
|
1798
|
+
cacheHit: .5,
|
|
1799
|
+
output: 25
|
|
1800
|
+
}
|
|
1801
|
+
},
|
|
1802
|
+
{
|
|
1803
|
+
key: "claude-opus-4-8",
|
|
1804
|
+
name: "Claude Opus 4.8",
|
|
1805
|
+
provider: "Anthropic",
|
|
1806
|
+
colorVar: "ds-red",
|
|
1807
|
+
price: {
|
|
1808
|
+
currency: "USD",
|
|
1809
|
+
input: 5,
|
|
1810
|
+
cacheHit: .5,
|
|
1811
|
+
output: 25
|
|
1812
|
+
}
|
|
1813
|
+
},
|
|
1730
1814
|
{
|
|
1731
1815
|
key: "claude-sonnet-4-6",
|
|
1732
1816
|
name: "Claude Sonnet 4.6",
|
|
@@ -1787,6 +1871,18 @@ const BUILTIN_MODEL_CATALOG = [
|
|
|
1787
1871
|
output: 50
|
|
1788
1872
|
}
|
|
1789
1873
|
},
|
|
1874
|
+
{
|
|
1875
|
+
key: "claude-fable-5",
|
|
1876
|
+
name: "Claude Fable 5",
|
|
1877
|
+
provider: "Anthropic",
|
|
1878
|
+
colorVar: "ds-red",
|
|
1879
|
+
price: {
|
|
1880
|
+
currency: "USD",
|
|
1881
|
+
input: 10,
|
|
1882
|
+
cacheHit: 1,
|
|
1883
|
+
output: 50
|
|
1884
|
+
}
|
|
1885
|
+
},
|
|
1790
1886
|
{
|
|
1791
1887
|
key: "claude-opus-5-5",
|
|
1792
1888
|
name: "Claude Opus 5.5",
|
|
@@ -1811,6 +1907,18 @@ const BUILTIN_MODEL_CATALOG = [
|
|
|
1811
1907
|
output: 10
|
|
1812
1908
|
}
|
|
1813
1909
|
},
|
|
1910
|
+
{
|
|
1911
|
+
key: "claude-haiku-5-5",
|
|
1912
|
+
name: "Claude Haiku 5.5",
|
|
1913
|
+
provider: "Anthropic",
|
|
1914
|
+
colorVar: "dsw-static-red-300",
|
|
1915
|
+
price: {
|
|
1916
|
+
currency: "USD",
|
|
1917
|
+
input: .1,
|
|
1918
|
+
cacheHit: .01,
|
|
1919
|
+
output: .5
|
|
1920
|
+
}
|
|
1921
|
+
},
|
|
1814
1922
|
{
|
|
1815
1923
|
key: "mistral-large-2512",
|
|
1816
1924
|
name: "Mistral Large 3",
|
|
@@ -2216,10 +2324,20 @@ const BUILTIN_MODEL_KEY_ALIASES = {
|
|
|
2216
2324
|
"claude-fable-5-1": "claude-fable-5-1",
|
|
2217
2325
|
"claude-fable-5.1": "claude-fable-5-1",
|
|
2218
2326
|
"claude-fable": "claude-fable-5-1",
|
|
2327
|
+
"claude-mythos-5-1": "claude-fable-5-1",
|
|
2328
|
+
"claude-mythos-5.1": "claude-fable-5-1",
|
|
2329
|
+
"claude-haiku-5-5": "claude-haiku-5-5",
|
|
2330
|
+
"claude-haiku-5.5": "claude-haiku-5-5",
|
|
2219
2331
|
"claude-opus-5-5": "claude-opus-5-5",
|
|
2220
2332
|
"claude-opus-5.5": "claude-opus-5-5",
|
|
2221
2333
|
"claude-sonnet-5-5": "claude-sonnet-5-5",
|
|
2222
2334
|
"claude-sonnet-5.5": "claude-sonnet-5-5",
|
|
2335
|
+
"claude-opus-4-7": "claude-opus-4-7",
|
|
2336
|
+
"claude-opus-4.7": "claude-opus-4-7",
|
|
2337
|
+
"claude-opus-4-8": "claude-opus-4-8",
|
|
2338
|
+
"claude-opus-4.8": "claude-opus-4-8",
|
|
2339
|
+
"claude-fable-5": "claude-fable-5",
|
|
2340
|
+
"claude-haiku-4-5-20251001": "claude-haiku-4-5",
|
|
2223
2341
|
"mistral-large-2512": "mistral-large-2512",
|
|
2224
2342
|
"mistral-large-3": "mistral-large-2512",
|
|
2225
2343
|
"mistral-small-2603": "mistral-small-2603",
|
|
@@ -2309,12 +2427,22 @@ const BUILTIN_MODEL_KEY_ALIASES = {
|
|
|
2309
2427
|
"gpt-6-astra": "gpt-6-astra",
|
|
2310
2428
|
"gpt-6-sol": "gpt-6-sol",
|
|
2311
2429
|
"gpt-6-luna": "gpt-6-luna",
|
|
2430
|
+
"gpt-5.5": "gpt-5.5",
|
|
2431
|
+
"gpt-6.1-sol": "gpt-6.1-sol",
|
|
2432
|
+
"gpt-6-1-sol": "gpt-6.1-sol",
|
|
2312
2433
|
"gemini-3.8-flash": "gemini-3.8-flash",
|
|
2313
2434
|
"gemini-3-8-flash": "gemini-3.8-flash",
|
|
2314
2435
|
"gemini-3.7-flash": "gemini-3.7-flash",
|
|
2315
2436
|
"gemini-3-7-flash": "gemini-3.7-flash",
|
|
2316
2437
|
"grok-build-0.1": "grok-build-0.1",
|
|
2317
|
-
"grok-build": "grok-build-0.1"
|
|
2438
|
+
"grok-build": "grok-build-0.1",
|
|
2439
|
+
"grok-4.5": "grok-4.5",
|
|
2440
|
+
"grok-4-5": "grok-4.5",
|
|
2441
|
+
"grok-4.6": "grok",
|
|
2442
|
+
"grok-4-6": "grok",
|
|
2443
|
+
"gpt-image-2": "gpt-image-2",
|
|
2444
|
+
"gpt-image-2.5-sunburst": "gpt-image-2.5-sunburst",
|
|
2445
|
+
"gpt-image-2-5-sunburst": "gpt-image-2.5-sunburst"
|
|
2318
2446
|
};
|
|
2319
2447
|
//#endregion
|
|
2320
2448
|
//#region lib/types/aggregate.js
|
|
@@ -3298,7 +3426,7 @@ function createUsageAggregator(persistence, options = {}) {
|
|
|
3298
3426
|
id,
|
|
3299
3427
|
...cwd === void 0 ? {} : { cwd },
|
|
3300
3428
|
...stamp === null ? {} : { stamp },
|
|
3301
|
-
foldVersion:
|
|
3429
|
+
foldVersion: 20,
|
|
3302
3430
|
fingerprint: foldFingerprint,
|
|
3303
3431
|
fold: serializeFold(fold)
|
|
3304
3432
|
};
|
|
@@ -3405,7 +3533,7 @@ function createUsageAggregator(persistence, options = {}) {
|
|
|
3405
3533
|
try {
|
|
3406
3534
|
const cwd = meta.cwd;
|
|
3407
3535
|
const ledgerRow = ledger.get(id);
|
|
3408
|
-
if (ledgerRow !== void 0 && ledgerRow.stamp !== void 0 && stamp !== null && ledgerRow.stamp === stamp && (ledgerRow.foldVersion ?? 1) ===
|
|
3536
|
+
if (ledgerRow !== void 0 && ledgerRow.stamp !== void 0 && stamp !== null && ledgerRow.stamp === stamp && (ledgerRow.foldVersion ?? 1) === 20 && ledgerRow.fingerprint === foldFingerprint) {
|
|
3409
3537
|
const fold = deserializeFold(ledgerRow.fold);
|
|
3410
3538
|
folds.push({
|
|
3411
3539
|
id,
|
|
@@ -3493,7 +3621,7 @@ function createUsageAggregator(persistence, options = {}) {
|
|
|
3493
3621
|
for (const entry of ledger.values()) {
|
|
3494
3622
|
if (included.has(entry.id)) continue;
|
|
3495
3623
|
try {
|
|
3496
|
-
const stale = (entry.foldVersion ?? 1) <
|
|
3624
|
+
const stale = (entry.foldVersion ?? 1) < 20 || entry.fingerprint !== foldFingerprint;
|
|
3497
3625
|
folds.push({
|
|
3498
3626
|
id: entry.id,
|
|
3499
3627
|
...entry.cwd === void 0 ? {} : { cwd: entry.cwd },
|
package/lib/types/aggregate.d.ts
CHANGED
|
@@ -568,7 +568,7 @@ export interface UsageLedgerDocument {
|
|
|
568
568
|
* 会话费用只剩最近一段,issue #29)。
|
|
569
569
|
* 持久账本行据此区分新旧算法:日志已删/不可读而只能沿用旧行时,UI 标注置信度提示。
|
|
570
570
|
*/
|
|
571
|
-
export declare const FOLD_VERSION =
|
|
571
|
+
export declare const FOLD_VERSION = 20;
|
|
572
572
|
/**
|
|
573
573
|
* 一次性账本迁移:id 唯一,apply 在加载边界对原始文档执行,已应用过的跳过。
|
|
574
574
|
* 未来账本/schema 字段变更(重命名、拆桶、语义调整)时,在此追加一条迁移并
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kenz1117/dsh-ui-usage-billing",
|
|
3
3
|
"description": "Usage billing dashboard for DeepSeek Harness: sidebar cost metrics plus a full dashboard modal, priced from a current multi-provider catalog with real usage aggregated from session logs.",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.27",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"deepseek-harness",
|
|
7
7
|
"deepseek",
|