@kenz1117/dsh-ui-usage-billing 1.0.0 → 1.0.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.
package/lib/index.js CHANGED
@@ -70,7 +70,21 @@ const PLAN_KNOWLEDGE = {
70
70
  "minimax": { type: "code" },
71
71
  "minimax-cn": { type: "code" },
72
72
  "minimax-token-plan": { type: "code" },
73
- "minimax-token-plan-cn": { type: "code" }
73
+ "minimax-token-plan-cn": { type: "code" },
74
+ "hunyuan-token-plan": { type: "code" },
75
+ "tencent-token-plan": { type: "code" },
76
+ "hy-token-plan": { type: "code" },
77
+ "xinghuo-token-plan": { type: "code" },
78
+ "xfyun-coding": { type: "code" },
79
+ "spark-coding": { type: "code" },
80
+ "huawei-token-plan": { type: "code" },
81
+ "pangu-token-plan": { type: "code" },
82
+ "huawei-maas-token-plan": { type: "code" },
83
+ "volcengine-agent-plan": { type: "code" },
84
+ "ark-agent-plan": { type: "code" },
85
+ "baidu-token-plan": { type: "code" },
86
+ "ernie-token-plan": { type: "code" },
87
+ "wenxin-token-plan": { type: "code" }
74
88
  };
75
89
  /**
76
90
  * 订阅/plan provider id 变体 → PLAN_KNOWLEDGE 规范键(引用 dsh-spend 的别名归一化)。
@@ -324,6 +338,67 @@ const MODEL_CATALOG = [
324
338
  output: 16
325
339
  }
326
340
  },
341
+ {
342
+ key: "glm-4.5-air",
343
+ name: "GLM-4.5-Air",
344
+ provider: "智谱 AI",
345
+ colorVar: "dsw-static-blue-300",
346
+ price: {
347
+ currency: "CNY",
348
+ input: .8,
349
+ cacheHit: .16,
350
+ output: 2
351
+ }
352
+ },
353
+ {
354
+ key: "glm-4.7",
355
+ name: "GLM-4.7",
356
+ provider: "智谱 AI",
357
+ colorVar: "dsw-static-blue-400",
358
+ price: {
359
+ currency: "CNY",
360
+ input: 4,
361
+ cacheHit: 1,
362
+ output: 16
363
+ },
364
+ estimated: true
365
+ },
366
+ {
367
+ key: "glm-5-turbo",
368
+ name: "GLM-5-Turbo",
369
+ provider: "智谱 AI",
370
+ colorVar: "dsw-static-blue-500",
371
+ price: {
372
+ currency: "CNY",
373
+ input: 5,
374
+ cacheHit: 1.2,
375
+ output: 22
376
+ }
377
+ },
378
+ {
379
+ key: "glm-5.1",
380
+ name: "GLM-5.1",
381
+ provider: "智谱 AI",
382
+ colorVar: "dsw-static-blue-600",
383
+ price: {
384
+ currency: "CNY",
385
+ input: 6,
386
+ cacheHit: 1.2,
387
+ output: 24
388
+ }
389
+ },
390
+ {
391
+ key: "glm-5v-turbo",
392
+ name: "GLM-5V-Turbo",
393
+ provider: "智谱 AI",
394
+ colorVar: "dsw-static-blue-300",
395
+ price: {
396
+ currency: "CNY",
397
+ input: 5,
398
+ cacheHit: 1.2,
399
+ output: 22
400
+ }
401
+ },
327
402
  {
328
403
  key: "qwen-3.8-max",
329
404
  name: "Qwen3.8 Max",
@@ -408,6 +483,42 @@ const MODEL_CATALOG = [
408
483
  output: 8
409
484
  }
410
485
  },
486
+ {
487
+ key: "doubao-seed-evolving",
488
+ name: "Doubao-Seed-Evolving",
489
+ provider: "字节豆包",
490
+ colorVar: "dsw-static-red-500",
491
+ price: {
492
+ currency: "CNY",
493
+ input: 6,
494
+ cacheHit: 1.2,
495
+ output: 30
496
+ }
497
+ },
498
+ {
499
+ key: "doubao-seed-2.1-pro",
500
+ name: "Doubao Seed-2.1 Pro",
501
+ provider: "字节豆包",
502
+ colorVar: "dsw-static-red-400",
503
+ price: {
504
+ currency: "CNY",
505
+ input: 6,
506
+ cacheHit: 1.2,
507
+ output: 30
508
+ }
509
+ },
510
+ {
511
+ key: "doubao-seed-2.1-turbo",
512
+ name: "Doubao Seed-2.1 Turbo",
513
+ provider: "字节豆包",
514
+ colorVar: "dsw-static-red-300",
515
+ price: {
516
+ currency: "CNY",
517
+ input: 3,
518
+ cacheHit: .6,
519
+ output: 15
520
+ }
521
+ },
411
522
  {
412
523
  key: "kimi",
413
524
  name: "Kimi K2.7 Code",
@@ -734,6 +845,329 @@ const MODEL_CATALOG = [
734
845
  output: .3
735
846
  }
736
847
  },
848
+ {
849
+ key: "claude-opus-4-6",
850
+ name: "Claude Opus 4.6",
851
+ provider: "Anthropic",
852
+ colorVar: "dsw-static-red-500",
853
+ price: {
854
+ currency: "USD",
855
+ input: 5,
856
+ cacheHit: .5,
857
+ output: 25
858
+ }
859
+ },
860
+ {
861
+ key: "claude-sonnet-4-6",
862
+ name: "Claude Sonnet 4.6",
863
+ provider: "Anthropic",
864
+ colorVar: "dsw-static-red-400",
865
+ price: {
866
+ currency: "USD",
867
+ input: 3,
868
+ cacheHit: .3,
869
+ output: 15
870
+ }
871
+ },
872
+ {
873
+ key: "claude-haiku-4-5",
874
+ name: "Claude Haiku 4.5",
875
+ provider: "Anthropic",
876
+ colorVar: "dsw-static-red-300",
877
+ price: {
878
+ currency: "USD",
879
+ input: 1,
880
+ cacheHit: .1,
881
+ output: 5
882
+ }
883
+ },
884
+ {
885
+ key: "claude-opus-5",
886
+ name: "Claude Opus 5",
887
+ provider: "Anthropic",
888
+ colorVar: "dsw-static-red-500",
889
+ price: {
890
+ currency: "USD",
891
+ input: 5,
892
+ cacheHit: .5,
893
+ output: 25
894
+ }
895
+ },
896
+ {
897
+ key: "claude-sonnet-5",
898
+ name: "Claude Sonnet 5",
899
+ provider: "Anthropic",
900
+ colorVar: "dsw-static-red-400",
901
+ price: {
902
+ currency: "USD",
903
+ input: 2,
904
+ cacheHit: .2,
905
+ output: 10
906
+ }
907
+ },
908
+ {
909
+ key: "mistral-large-2512",
910
+ name: "Mistral Large 3",
911
+ provider: "Mistral AI",
912
+ colorVar: "dsw-static-violet-500",
913
+ price: {
914
+ currency: "USD",
915
+ input: .5,
916
+ cacheHit: .05,
917
+ output: 1.5
918
+ }
919
+ },
920
+ {
921
+ key: "mistral-small-2603",
922
+ name: "Mistral Small 4",
923
+ provider: "Mistral AI",
924
+ colorVar: "dsw-static-violet-400",
925
+ price: {
926
+ currency: "USD",
927
+ input: .15,
928
+ cacheHit: .015,
929
+ output: .6
930
+ }
931
+ },
932
+ {
933
+ key: "ministral-8b-latest",
934
+ name: "Ministral 8B",
935
+ provider: "Mistral AI",
936
+ colorVar: "dsw-static-violet-300",
937
+ price: {
938
+ currency: "USD",
939
+ input: .1,
940
+ cacheHit: .01,
941
+ output: .1
942
+ }
943
+ },
944
+ {
945
+ key: "command-a-03-2025",
946
+ name: "Command A",
947
+ provider: "Cohere",
948
+ colorVar: "dsw-static-cyan-500",
949
+ price: {
950
+ currency: "USD",
951
+ input: 2.5,
952
+ cacheHit: .25,
953
+ output: 10
954
+ }
955
+ },
956
+ {
957
+ key: "command-r-08-2024",
958
+ name: "Command R",
959
+ provider: "Cohere",
960
+ colorVar: "dsw-static-cyan-400",
961
+ price: {
962
+ currency: "USD",
963
+ input: .15,
964
+ cacheHit: .015,
965
+ output: .6
966
+ }
967
+ },
968
+ {
969
+ key: "longcat-2.0",
970
+ name: "LongCat 2.0",
971
+ provider: "美团",
972
+ colorVar: "dsw-static-amber-500",
973
+ price: {
974
+ currency: "CNY",
975
+ input: 4,
976
+ cacheHit: .8,
977
+ output: 16
978
+ },
979
+ estimated: true
980
+ },
981
+ {
982
+ key: "minicpm-v-4.5",
983
+ name: "MiniCPM-V 4.5",
984
+ provider: "面壁智能",
985
+ colorVar: "dsw-static-green-500",
986
+ price: {
987
+ currency: "CNY",
988
+ input: 1,
989
+ cacheHit: .2,
990
+ output: 4
991
+ },
992
+ estimated: true
993
+ },
994
+ {
995
+ key: "ernie-4.5",
996
+ name: "ERNIE-4.5 300B",
997
+ provider: "百度文心",
998
+ colorVar: "dsw-static-blue-300",
999
+ price: {
1000
+ currency: "CNY",
1001
+ input: 2,
1002
+ cacheHit: .4,
1003
+ output: 8
1004
+ },
1005
+ estimated: true
1006
+ },
1007
+ {
1008
+ key: "dots-3-note-preview",
1009
+ name: "Dots3-Note Preview",
1010
+ provider: "小红书",
1011
+ colorVar: "dsw-static-red-500",
1012
+ price: {
1013
+ currency: "CNY",
1014
+ input: 2,
1015
+ cacheHit: .4,
1016
+ output: 8
1017
+ },
1018
+ estimated: true
1019
+ },
1020
+ {
1021
+ key: "qwen3.6-max",
1022
+ name: "Qwen3.6 Max",
1023
+ provider: "阿里通义",
1024
+ colorVar: "dsw-static-orange-500",
1025
+ price: {
1026
+ currency: "CNY",
1027
+ input: 9,
1028
+ cacheHit: .9,
1029
+ output: 54
1030
+ }
1031
+ },
1032
+ {
1033
+ key: "qwen3-coder-plus",
1034
+ name: "Qwen3-Coder Plus",
1035
+ provider: "阿里通义",
1036
+ colorVar: "dsw-static-orange-400",
1037
+ price: {
1038
+ currency: "CNY",
1039
+ input: 4,
1040
+ cacheHit: .8,
1041
+ output: 16
1042
+ }
1043
+ },
1044
+ {
1045
+ key: "qwen3-coder",
1046
+ name: "Qwen3-Coder 480B",
1047
+ provider: "阿里通义",
1048
+ colorVar: "dsw-static-orange-300",
1049
+ price: {
1050
+ currency: "CNY",
1051
+ input: 4,
1052
+ cacheHit: .8,
1053
+ output: 16
1054
+ },
1055
+ estimated: true
1056
+ },
1057
+ {
1058
+ key: "glm-4.5-x",
1059
+ name: "GLM-4.5-X",
1060
+ provider: "智谱 AI",
1061
+ colorVar: "dsw-static-blue-400",
1062
+ price: {
1063
+ currency: "CNY",
1064
+ input: 4,
1065
+ cacheHit: 1,
1066
+ output: 16
1067
+ },
1068
+ estimated: true
1069
+ },
1070
+ {
1071
+ key: "glm-5.2-fast",
1072
+ name: "GLM-5.2 Fast",
1073
+ provider: "智谱 AI",
1074
+ colorVar: "dsw-static-blue-300",
1075
+ price: {
1076
+ currency: "CNY",
1077
+ input: 6,
1078
+ cacheHit: 1.2,
1079
+ output: 24
1080
+ },
1081
+ estimated: true
1082
+ },
1083
+ {
1084
+ key: "kimi-k3-fast",
1085
+ name: "Kimi K3 Fast",
1086
+ provider: "月之暗面",
1087
+ colorVar: "dsw-static-cyan-400",
1088
+ price: {
1089
+ currency: "CNY",
1090
+ input: 20,
1091
+ cacheHit: 2,
1092
+ output: 100
1093
+ },
1094
+ estimated: true
1095
+ },
1096
+ {
1097
+ key: "kimi-k2.7-code-fast",
1098
+ name: "Kimi K2.7 Code Fast",
1099
+ provider: "月之暗面",
1100
+ colorVar: "dsw-static-cyan-400",
1101
+ price: {
1102
+ currency: "CNY",
1103
+ input: 6.5,
1104
+ cacheHit: 1.3,
1105
+ output: 27
1106
+ },
1107
+ estimated: true
1108
+ },
1109
+ {
1110
+ key: "kimi-k2.6-fast",
1111
+ name: "Kimi K2.6 Fast",
1112
+ provider: "月之暗面",
1113
+ colorVar: "dsw-static-cyan-300",
1114
+ price: {
1115
+ currency: "CNY",
1116
+ input: 6.5,
1117
+ cacheHit: 1.1,
1118
+ output: 27
1119
+ },
1120
+ estimated: true
1121
+ },
1122
+ {
1123
+ key: "kimi-k2.6-turbo",
1124
+ name: "Kimi K2.6 Turbo",
1125
+ provider: "月之暗面",
1126
+ colorVar: "dsw-static-cyan-300",
1127
+ price: {
1128
+ currency: "CNY",
1129
+ input: 6.5,
1130
+ cacheHit: 1.1,
1131
+ output: 27
1132
+ },
1133
+ estimated: true
1134
+ },
1135
+ {
1136
+ key: "kimi-k2-thinking-turbo",
1137
+ name: "Kimi K2 Thinking Turbo",
1138
+ provider: "月之暗面",
1139
+ colorVar: "dsw-static-cyan-300",
1140
+ price: {
1141
+ currency: "CNY",
1142
+ input: 8,
1143
+ cacheHit: 1,
1144
+ output: 58
1145
+ }
1146
+ },
1147
+ {
1148
+ key: "doubao-seed-2.0-code",
1149
+ name: "Doubao Seed-2.0 Code",
1150
+ provider: "字节豆包",
1151
+ colorVar: "dsw-static-red-500",
1152
+ price: {
1153
+ currency: "CNY",
1154
+ input: 3.2,
1155
+ cacheHit: .64,
1156
+ output: 16
1157
+ }
1158
+ },
1159
+ {
1160
+ key: "doubao-seed-2.0-lite",
1161
+ name: "Doubao Seed-2.0 Lite",
1162
+ provider: "字节豆包",
1163
+ colorVar: "dsw-static-red-300",
1164
+ price: {
1165
+ currency: "CNY",
1166
+ input: .6,
1167
+ cacheHit: .12,
1168
+ output: 3.6
1169
+ }
1170
+ },
737
1171
  {
738
1172
  key: "other",
739
1173
  name: "其他模型",
@@ -741,10 +1175,10 @@ const MODEL_CATALOG = [
741
1175
  colorVar: "dsw-static-neutral-bluish-500",
742
1176
  price: {
743
1177
  currency: "CNY",
744
- input: .5,
745
- cacheHit: .25,
746
- cacheMiss: .5,
747
- output: 1.5
1178
+ input: 0,
1179
+ cacheHit: 0,
1180
+ cacheMiss: 0,
1181
+ output: 0
748
1182
  }
749
1183
  }
750
1184
  ];
@@ -759,8 +1193,69 @@ const MODEL_KEY_ALIASES = {
759
1193
  "deepseek-v4-flash-vision-exp": "flash-vision-exp",
760
1194
  "deepseek-v4-pro": "pro",
761
1195
  "glm-5.2": "glm",
1196
+ "glm-4.5-air": "glm-4.5-air",
1197
+ "glm-4.5air": "glm-4.5-air",
1198
+ "glm-4.7": "glm-4.7",
1199
+ "glm-5-turbo": "glm-5-turbo",
1200
+ "glm-5.1": "glm-5.1",
1201
+ "glm-5v-turbo": "glm-5v-turbo",
1202
+ "glm-5v.1": "glm-5v-turbo",
1203
+ "claude-opus-4-6": "claude-opus-4-6",
1204
+ "claude-opus-4.6": "claude-opus-4-6",
1205
+ "claude-sonnet-4-6": "claude-sonnet-4-6",
1206
+ "claude-sonnet-4.6": "claude-sonnet-4-6",
1207
+ "claude-haiku-4-5": "claude-haiku-4-5",
1208
+ "claude-haiku-4.5": "claude-haiku-4-5",
1209
+ "claude-opus-5": "claude-opus-5",
1210
+ "claude-sonnet-5": "claude-sonnet-5",
1211
+ "mistral-large-2512": "mistral-large-2512",
1212
+ "mistral-large-3": "mistral-large-2512",
1213
+ "mistral-small-2603": "mistral-small-2603",
1214
+ "mistral-small-4": "mistral-small-2603",
1215
+ "ministral-8b-latest": "ministral-8b-latest",
1216
+ "ministral-8b": "ministral-8b-latest",
1217
+ "command-a-03-2025": "command-a-03-2025",
1218
+ "command-a": "command-a-03-2025",
1219
+ "command-r-08-2024": "command-r-08-2024",
1220
+ "command-r": "command-r-08-2024",
1221
+ "longcat-2.0": "longcat-2.0",
1222
+ "longcat-2": "longcat-2.0",
1223
+ "minicpm-v-4.5": "minicpm-v-4.5",
1224
+ "minicpm-v-4.5-thinking": "minicpm-v-4.5",
1225
+ "ernie-4.5": "ernie-4.5",
1226
+ "ernie-4.5-300b": "ernie-4.5",
1227
+ "dots-3-note-preview": "dots-3-note-preview",
1228
+ "dots-3-note": "dots-3-note-preview",
1229
+ "dots3-note-preview": "dots-3-note-preview",
1230
+ "rednote-dots3": "dots-3-note-preview",
1231
+ "doubao-seed-evolving": "doubao-seed-evolving",
1232
+ "doubao-seed-evolve": "doubao-seed-evolving",
1233
+ "doubao-seed-2.1-pro": "doubao-seed-2.1-pro",
1234
+ "doubao-seed-2.1-pro-290000": "doubao-seed-2.1-pro",
1235
+ "doubao-seed-2.1-turbo": "doubao-seed-2.1-turbo",
1236
+ "doubao-seed-2-1-turbo": "doubao-seed-2.1-turbo",
762
1237
  "qwen3.8-max": "qwen-3.8-max",
763
1238
  "qwen3.7-max": "qwen-max",
1239
+ "qwen3.6-max": "qwen3.6-max",
1240
+ "qwen3.6-max-preview": "qwen3.6-max",
1241
+ "qwen3-coder-plus": "qwen3-coder-plus",
1242
+ "qwen3-coder": "qwen3-coder",
1243
+ "qwen3-coder-480b": "qwen3-coder",
1244
+ "glm-4.5-x": "glm-4.5-x",
1245
+ "glm-4.5x": "glm-4.5-x",
1246
+ "glm-5.2-fast": "glm-5.2-fast",
1247
+ "glm-5.2f": "glm-5.2-fast",
1248
+ "kimi-k3-fast": "kimi-k3-fast",
1249
+ "kimi-k3f": "kimi-k3-fast",
1250
+ "kimi-k2.7-code-fast": "kimi-k2.7-code-fast",
1251
+ "kimi-k2.7-code-f": "kimi-k2.7-code-fast",
1252
+ "kimi-k2.6-fast": "kimi-k2.6-fast",
1253
+ "kimi-k2.6-turbo": "kimi-k2.6-turbo",
1254
+ "kimi-k2-thinking-turbo": "kimi-k2-thinking-turbo",
1255
+ "doubao-seed-2.0-code": "doubao-seed-2.0-code",
1256
+ "doubao-seed-2-0-code": "doubao-seed-2.0-code",
1257
+ "doubao-seed-2.0-lite": "doubao-seed-2.0-lite",
1258
+ "doubao-seed-2-0-lite": "doubao-seed-2.0-lite",
764
1259
  "qwen-max": "qwen-max",
765
1260
  "hunyuan-t1": "hunyuan-t1",
766
1261
  "step-3.7-flash": "step",
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Vendandor logos: inlined data URIs fetched from models.dev /logos/{id}.svg.
3
+ * Keyed by the MODEL_CATALOG entry provider display name so the pricing table
4
+ * / model rows can render a real vendor mark before the model name. Vendors not
5
+ * listed here fall back to a brand-color letter badge in the UI.
6
+ */
7
+ export declare const VENDOR_LOGOS: Readonly<Record<string, string>>;
8
+ export declare function vendorLogoOf(provider: string): string | undefined;
9
+ //# sourceMappingURL=vendor-logos.d.ts.map
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.0.0",
4
+ "version": "1.0.2",
5
5
  "publishConfig": {
6
6
  "access": "public"
7
7
  },