@zhouzhengchang/token-party 0.0.1 → 0.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/config.example.yaml +3 -1
- package/dashboard/assets/index-BKFkELuY.css +1 -0
- package/dashboard/assets/index-uKblDhQo.js +130 -0
- package/dashboard/index.html +2 -2
- package/dist/cli.js +11 -32
- package/dist/cli.js.map +1 -1
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +17 -10
- package/dist/config.js.map +1 -1
- package/dist/metrics/collector.d.ts +16 -0
- package/dist/metrics/collector.d.ts.map +1 -1
- package/dist/metrics/collector.js +26 -7
- package/dist/metrics/collector.js.map +1 -1
- package/dist/proxy/auth.d.ts +3 -1
- package/dist/proxy/auth.d.ts.map +1 -1
- package/dist/proxy/auth.js +18 -0
- package/dist/proxy/auth.js.map +1 -1
- package/dist/proxy/forwarder.d.ts +6 -1
- package/dist/proxy/forwarder.d.ts.map +1 -1
- package/dist/proxy/forwarder.js +83 -9
- package/dist/proxy/forwarder.js.map +1 -1
- package/dist/proxy/router.d.ts +6 -1
- package/dist/proxy/router.d.ts.map +1 -1
- package/dist/proxy/router.js +19 -7
- package/dist/proxy/router.js.map +1 -1
- package/dist/routes/anthropic.js +4 -4
- package/dist/routes/anthropic.js.map +1 -1
- package/dist/routes/api.d.ts.map +1 -1
- package/dist/routes/api.js +13 -5
- package/dist/routes/api.js.map +1 -1
- package/dist/routes/openai.js +4 -4
- package/dist/routes/openai.js.map +1 -1
- package/dist/store/db.js +48 -2
- package/dist/store/db.js.map +1 -1
- package/dist/store/log-writer.js +2 -2
- package/dist/store/log-writer.js.map +1 -1
- package/dist/types/config.d.ts +190 -22
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/config.js +29 -2
- package/dist/types/config.js.map +1 -1
- package/package.json +10 -3
- package/dashboard/assets/index-BOghvbFW.js +0 -131
- package/dashboard/assets/index-CEcLJoXS.css +0 -1
package/dist/types/config.d.ts
CHANGED
|
@@ -1,34 +1,102 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
declare const ModelSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
3
|
+
id: z.ZodString;
|
|
4
|
+
inputPrice: z.ZodOptional<z.ZodNumber>;
|
|
5
|
+
outputPrice: z.ZodOptional<z.ZodNumber>;
|
|
6
|
+
cacheReadPrice: z.ZodOptional<z.ZodNumber>;
|
|
7
|
+
cacheWritePrice: z.ZodOptional<z.ZodNumber>;
|
|
8
|
+
}, "strip", z.ZodTypeAny, {
|
|
9
|
+
id: string;
|
|
10
|
+
inputPrice?: number | undefined;
|
|
11
|
+
outputPrice?: number | undefined;
|
|
12
|
+
cacheReadPrice?: number | undefined;
|
|
13
|
+
cacheWritePrice?: number | undefined;
|
|
14
|
+
}, {
|
|
15
|
+
id: string;
|
|
16
|
+
inputPrice?: number | undefined;
|
|
17
|
+
outputPrice?: number | undefined;
|
|
18
|
+
cacheReadPrice?: number | undefined;
|
|
19
|
+
cacheWritePrice?: number | undefined;
|
|
20
|
+
}>]>;
|
|
2
21
|
export declare const ProviderSchema: z.ZodObject<{
|
|
3
22
|
id: z.ZodString;
|
|
4
23
|
type: z.ZodEnum<["openai", "anthropic"]>;
|
|
5
24
|
name: z.ZodString;
|
|
6
|
-
apiKey: z.ZodString
|
|
25
|
+
apiKey: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>;
|
|
7
26
|
baseUrl: z.ZodString;
|
|
8
|
-
models: z.ZodDefault<z.ZodArray<z.ZodString,
|
|
27
|
+
models: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
28
|
+
id: z.ZodString;
|
|
29
|
+
inputPrice: z.ZodOptional<z.ZodNumber>;
|
|
30
|
+
outputPrice: z.ZodOptional<z.ZodNumber>;
|
|
31
|
+
cacheReadPrice: z.ZodOptional<z.ZodNumber>;
|
|
32
|
+
cacheWritePrice: z.ZodOptional<z.ZodNumber>;
|
|
33
|
+
}, "strip", z.ZodTypeAny, {
|
|
34
|
+
id: string;
|
|
35
|
+
inputPrice?: number | undefined;
|
|
36
|
+
outputPrice?: number | undefined;
|
|
37
|
+
cacheReadPrice?: number | undefined;
|
|
38
|
+
cacheWritePrice?: number | undefined;
|
|
39
|
+
}, {
|
|
40
|
+
id: string;
|
|
41
|
+
inputPrice?: number | undefined;
|
|
42
|
+
outputPrice?: number | undefined;
|
|
43
|
+
cacheReadPrice?: number | undefined;
|
|
44
|
+
cacheWritePrice?: number | undefined;
|
|
45
|
+
}>]>, "many">>;
|
|
9
46
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
47
|
+
fallback: z.ZodOptional<z.ZodString>;
|
|
48
|
+
group: z.ZodOptional<z.ZodString>;
|
|
49
|
+
currency: z.ZodDefault<z.ZodEnum<["USD", "CNY"]>>;
|
|
10
50
|
}, "strip", z.ZodTypeAny, {
|
|
11
|
-
id: string;
|
|
12
51
|
type: "openai" | "anthropic";
|
|
52
|
+
id: string;
|
|
13
53
|
name: string;
|
|
14
|
-
apiKey: string;
|
|
54
|
+
apiKey: string | string[];
|
|
15
55
|
baseUrl: string;
|
|
16
|
-
models: string
|
|
56
|
+
models: (string | {
|
|
57
|
+
id: string;
|
|
58
|
+
inputPrice?: number | undefined;
|
|
59
|
+
outputPrice?: number | undefined;
|
|
60
|
+
cacheReadPrice?: number | undefined;
|
|
61
|
+
cacheWritePrice?: number | undefined;
|
|
62
|
+
})[];
|
|
17
63
|
enabled: boolean;
|
|
64
|
+
currency: "USD" | "CNY";
|
|
65
|
+
fallback?: string | undefined;
|
|
66
|
+
group?: string | undefined;
|
|
18
67
|
}, {
|
|
19
|
-
id: string;
|
|
20
68
|
type: "openai" | "anthropic";
|
|
69
|
+
id: string;
|
|
21
70
|
name: string;
|
|
22
|
-
apiKey: string;
|
|
71
|
+
apiKey: string | string[];
|
|
23
72
|
baseUrl: string;
|
|
24
|
-
models?: string
|
|
73
|
+
models?: (string | {
|
|
74
|
+
id: string;
|
|
75
|
+
inputPrice?: number | undefined;
|
|
76
|
+
outputPrice?: number | undefined;
|
|
77
|
+
cacheReadPrice?: number | undefined;
|
|
78
|
+
cacheWritePrice?: number | undefined;
|
|
79
|
+
})[] | undefined;
|
|
25
80
|
enabled?: boolean | undefined;
|
|
81
|
+
fallback?: string | undefined;
|
|
82
|
+
group?: string | undefined;
|
|
83
|
+
currency?: "USD" | "CNY" | undefined;
|
|
26
84
|
}>;
|
|
27
85
|
export declare const TokenSchema: z.ZodObject<{
|
|
28
86
|
key: z.ZodString;
|
|
29
87
|
name: z.ZodString;
|
|
30
88
|
allowedProviders: z.ZodArray<z.ZodString, "many">;
|
|
31
89
|
rateLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
90
|
+
quota: z.ZodOptional<z.ZodObject<{
|
|
91
|
+
daily: z.ZodOptional<z.ZodNumber>;
|
|
92
|
+
monthly: z.ZodOptional<z.ZodNumber>;
|
|
93
|
+
}, "strip", z.ZodTypeAny, {
|
|
94
|
+
daily?: number | undefined;
|
|
95
|
+
monthly?: number | undefined;
|
|
96
|
+
}, {
|
|
97
|
+
daily?: number | undefined;
|
|
98
|
+
monthly?: number | undefined;
|
|
99
|
+
}>>;
|
|
32
100
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
33
101
|
}, "strip", z.ZodTypeAny, {
|
|
34
102
|
name: string;
|
|
@@ -36,12 +104,20 @@ export declare const TokenSchema: z.ZodObject<{
|
|
|
36
104
|
key: string;
|
|
37
105
|
allowedProviders: string[];
|
|
38
106
|
rateLimit?: number | null | undefined;
|
|
107
|
+
quota?: {
|
|
108
|
+
daily?: number | undefined;
|
|
109
|
+
monthly?: number | undefined;
|
|
110
|
+
} | undefined;
|
|
39
111
|
}, {
|
|
40
112
|
name: string;
|
|
41
113
|
key: string;
|
|
42
114
|
allowedProviders: string[];
|
|
43
115
|
enabled?: boolean | undefined;
|
|
44
116
|
rateLimit?: number | null | undefined;
|
|
117
|
+
quota?: {
|
|
118
|
+
daily?: number | undefined;
|
|
119
|
+
monthly?: number | undefined;
|
|
120
|
+
} | undefined;
|
|
45
121
|
}>;
|
|
46
122
|
export declare const ConfigSchema: z.ZodObject<{
|
|
47
123
|
server: z.ZodObject<{
|
|
@@ -64,32 +140,81 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
64
140
|
id: z.ZodString;
|
|
65
141
|
type: z.ZodEnum<["openai", "anthropic"]>;
|
|
66
142
|
name: z.ZodString;
|
|
67
|
-
apiKey: z.ZodString
|
|
143
|
+
apiKey: z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>;
|
|
68
144
|
baseUrl: z.ZodString;
|
|
69
|
-
models: z.ZodDefault<z.ZodArray<z.ZodString,
|
|
145
|
+
models: z.ZodDefault<z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
|
|
146
|
+
id: z.ZodString;
|
|
147
|
+
inputPrice: z.ZodOptional<z.ZodNumber>;
|
|
148
|
+
outputPrice: z.ZodOptional<z.ZodNumber>;
|
|
149
|
+
cacheReadPrice: z.ZodOptional<z.ZodNumber>;
|
|
150
|
+
cacheWritePrice: z.ZodOptional<z.ZodNumber>;
|
|
151
|
+
}, "strip", z.ZodTypeAny, {
|
|
152
|
+
id: string;
|
|
153
|
+
inputPrice?: number | undefined;
|
|
154
|
+
outputPrice?: number | undefined;
|
|
155
|
+
cacheReadPrice?: number | undefined;
|
|
156
|
+
cacheWritePrice?: number | undefined;
|
|
157
|
+
}, {
|
|
158
|
+
id: string;
|
|
159
|
+
inputPrice?: number | undefined;
|
|
160
|
+
outputPrice?: number | undefined;
|
|
161
|
+
cacheReadPrice?: number | undefined;
|
|
162
|
+
cacheWritePrice?: number | undefined;
|
|
163
|
+
}>]>, "many">>;
|
|
70
164
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
165
|
+
fallback: z.ZodOptional<z.ZodString>;
|
|
166
|
+
group: z.ZodOptional<z.ZodString>;
|
|
167
|
+
currency: z.ZodDefault<z.ZodEnum<["USD", "CNY"]>>;
|
|
71
168
|
}, "strip", z.ZodTypeAny, {
|
|
72
|
-
id: string;
|
|
73
169
|
type: "openai" | "anthropic";
|
|
170
|
+
id: string;
|
|
74
171
|
name: string;
|
|
75
|
-
apiKey: string;
|
|
172
|
+
apiKey: string | string[];
|
|
76
173
|
baseUrl: string;
|
|
77
|
-
models: string
|
|
174
|
+
models: (string | {
|
|
175
|
+
id: string;
|
|
176
|
+
inputPrice?: number | undefined;
|
|
177
|
+
outputPrice?: number | undefined;
|
|
178
|
+
cacheReadPrice?: number | undefined;
|
|
179
|
+
cacheWritePrice?: number | undefined;
|
|
180
|
+
})[];
|
|
78
181
|
enabled: boolean;
|
|
182
|
+
currency: "USD" | "CNY";
|
|
183
|
+
fallback?: string | undefined;
|
|
184
|
+
group?: string | undefined;
|
|
79
185
|
}, {
|
|
80
|
-
id: string;
|
|
81
186
|
type: "openai" | "anthropic";
|
|
187
|
+
id: string;
|
|
82
188
|
name: string;
|
|
83
|
-
apiKey: string;
|
|
189
|
+
apiKey: string | string[];
|
|
84
190
|
baseUrl: string;
|
|
85
|
-
models?: string
|
|
191
|
+
models?: (string | {
|
|
192
|
+
id: string;
|
|
193
|
+
inputPrice?: number | undefined;
|
|
194
|
+
outputPrice?: number | undefined;
|
|
195
|
+
cacheReadPrice?: number | undefined;
|
|
196
|
+
cacheWritePrice?: number | undefined;
|
|
197
|
+
})[] | undefined;
|
|
86
198
|
enabled?: boolean | undefined;
|
|
199
|
+
fallback?: string | undefined;
|
|
200
|
+
group?: string | undefined;
|
|
201
|
+
currency?: "USD" | "CNY" | undefined;
|
|
87
202
|
}>, "many">;
|
|
88
203
|
tokens: z.ZodArray<z.ZodObject<{
|
|
89
204
|
key: z.ZodString;
|
|
90
205
|
name: z.ZodString;
|
|
91
206
|
allowedProviders: z.ZodArray<z.ZodString, "many">;
|
|
92
207
|
rateLimit: z.ZodOptional<z.ZodNullable<z.ZodNumber>>;
|
|
208
|
+
quota: z.ZodOptional<z.ZodObject<{
|
|
209
|
+
daily: z.ZodOptional<z.ZodNumber>;
|
|
210
|
+
monthly: z.ZodOptional<z.ZodNumber>;
|
|
211
|
+
}, "strip", z.ZodTypeAny, {
|
|
212
|
+
daily?: number | undefined;
|
|
213
|
+
monthly?: number | undefined;
|
|
214
|
+
}, {
|
|
215
|
+
daily?: number | undefined;
|
|
216
|
+
monthly?: number | undefined;
|
|
217
|
+
}>>;
|
|
93
218
|
enabled: z.ZodDefault<z.ZodBoolean>;
|
|
94
219
|
}, "strip", z.ZodTypeAny, {
|
|
95
220
|
name: string;
|
|
@@ -97,12 +222,20 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
97
222
|
key: string;
|
|
98
223
|
allowedProviders: string[];
|
|
99
224
|
rateLimit?: number | null | undefined;
|
|
225
|
+
quota?: {
|
|
226
|
+
daily?: number | undefined;
|
|
227
|
+
monthly?: number | undefined;
|
|
228
|
+
} | undefined;
|
|
100
229
|
}, {
|
|
101
230
|
name: string;
|
|
102
231
|
key: string;
|
|
103
232
|
allowedProviders: string[];
|
|
104
233
|
enabled?: boolean | undefined;
|
|
105
234
|
rateLimit?: number | null | undefined;
|
|
235
|
+
quota?: {
|
|
236
|
+
daily?: number | undefined;
|
|
237
|
+
monthly?: number | undefined;
|
|
238
|
+
} | undefined;
|
|
106
239
|
}>, "many">;
|
|
107
240
|
}, "strip", z.ZodTypeAny, {
|
|
108
241
|
server: {
|
|
@@ -112,13 +245,22 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
112
245
|
dataDir: string;
|
|
113
246
|
};
|
|
114
247
|
providers: {
|
|
115
|
-
id: string;
|
|
116
248
|
type: "openai" | "anthropic";
|
|
249
|
+
id: string;
|
|
117
250
|
name: string;
|
|
118
|
-
apiKey: string;
|
|
251
|
+
apiKey: string | string[];
|
|
119
252
|
baseUrl: string;
|
|
120
|
-
models: string
|
|
253
|
+
models: (string | {
|
|
254
|
+
id: string;
|
|
255
|
+
inputPrice?: number | undefined;
|
|
256
|
+
outputPrice?: number | undefined;
|
|
257
|
+
cacheReadPrice?: number | undefined;
|
|
258
|
+
cacheWritePrice?: number | undefined;
|
|
259
|
+
})[];
|
|
121
260
|
enabled: boolean;
|
|
261
|
+
currency: "USD" | "CNY";
|
|
262
|
+
fallback?: string | undefined;
|
|
263
|
+
group?: string | undefined;
|
|
122
264
|
}[];
|
|
123
265
|
tokens: {
|
|
124
266
|
name: string;
|
|
@@ -126,6 +268,10 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
126
268
|
key: string;
|
|
127
269
|
allowedProviders: string[];
|
|
128
270
|
rateLimit?: number | null | undefined;
|
|
271
|
+
quota?: {
|
|
272
|
+
daily?: number | undefined;
|
|
273
|
+
monthly?: number | undefined;
|
|
274
|
+
} | undefined;
|
|
129
275
|
}[];
|
|
130
276
|
}, {
|
|
131
277
|
server: {
|
|
@@ -135,13 +281,22 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
135
281
|
dataDir?: string | undefined;
|
|
136
282
|
};
|
|
137
283
|
providers: {
|
|
138
|
-
id: string;
|
|
139
284
|
type: "openai" | "anthropic";
|
|
285
|
+
id: string;
|
|
140
286
|
name: string;
|
|
141
|
-
apiKey: string;
|
|
287
|
+
apiKey: string | string[];
|
|
142
288
|
baseUrl: string;
|
|
143
|
-
models?: string
|
|
289
|
+
models?: (string | {
|
|
290
|
+
id: string;
|
|
291
|
+
inputPrice?: number | undefined;
|
|
292
|
+
outputPrice?: number | undefined;
|
|
293
|
+
cacheReadPrice?: number | undefined;
|
|
294
|
+
cacheWritePrice?: number | undefined;
|
|
295
|
+
})[] | undefined;
|
|
144
296
|
enabled?: boolean | undefined;
|
|
297
|
+
fallback?: string | undefined;
|
|
298
|
+
group?: string | undefined;
|
|
299
|
+
currency?: "USD" | "CNY" | undefined;
|
|
145
300
|
}[];
|
|
146
301
|
tokens: {
|
|
147
302
|
name: string;
|
|
@@ -149,9 +304,22 @@ export declare const ConfigSchema: z.ZodObject<{
|
|
|
149
304
|
allowedProviders: string[];
|
|
150
305
|
enabled?: boolean | undefined;
|
|
151
306
|
rateLimit?: number | null | undefined;
|
|
307
|
+
quota?: {
|
|
308
|
+
daily?: number | undefined;
|
|
309
|
+
monthly?: number | undefined;
|
|
310
|
+
} | undefined;
|
|
152
311
|
}[];
|
|
153
312
|
}>;
|
|
313
|
+
export type ModelConfig = z.infer<typeof ModelSchema>;
|
|
154
314
|
export type Provider = z.infer<typeof ProviderSchema>;
|
|
155
315
|
export type Token = z.infer<typeof TokenSchema>;
|
|
156
316
|
export type Config = z.infer<typeof ConfigSchema>;
|
|
317
|
+
export declare function getModelId(model: ModelConfig): string;
|
|
318
|
+
export declare function getModelPricing(model: ModelConfig): {
|
|
319
|
+
inputPrice?: number;
|
|
320
|
+
outputPrice?: number;
|
|
321
|
+
cacheReadPrice?: number;
|
|
322
|
+
cacheWritePrice?: number;
|
|
323
|
+
} | undefined;
|
|
324
|
+
export {};
|
|
157
325
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,cAAc
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,QAAA,MAAM,WAAW;;;;;;;;;;;;;;;;;;IASf,CAAC;AAEH,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWzB,CAAC;AAEH,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAUtB,CAAC;AAEH,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EASvB,CAAC;AAEH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AACtD,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,cAAc,CAAC,CAAC;AACtD,MAAM,MAAM,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAChD,MAAM,MAAM,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAElD,wBAAgB,UAAU,CAAC,KAAK,EAAE,WAAW,GAAG,MAAM,CAErD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,SAAS,CAIhK"}
|
package/dist/types/config.js
CHANGED
|
@@ -1,18 +1,35 @@
|
|
|
1
1
|
import { z } from "zod";
|
|
2
|
+
const ModelSchema = z.union([
|
|
3
|
+
z.string(),
|
|
4
|
+
z.object({
|
|
5
|
+
id: z.string(),
|
|
6
|
+
inputPrice: z.number().optional(),
|
|
7
|
+
outputPrice: z.number().optional(),
|
|
8
|
+
cacheReadPrice: z.number().optional(),
|
|
9
|
+
cacheWritePrice: z.number().optional(),
|
|
10
|
+
}),
|
|
11
|
+
]);
|
|
2
12
|
export const ProviderSchema = z.object({
|
|
3
13
|
id: z.string(),
|
|
4
14
|
type: z.enum(["openai", "anthropic"]),
|
|
5
15
|
name: z.string(),
|
|
6
|
-
apiKey: z.string(),
|
|
16
|
+
apiKey: z.union([z.string(), z.array(z.string())]),
|
|
7
17
|
baseUrl: z.string().url(),
|
|
8
|
-
models: z.array(
|
|
18
|
+
models: z.array(ModelSchema).default([]),
|
|
9
19
|
enabled: z.boolean().default(true),
|
|
20
|
+
fallback: z.string().optional(),
|
|
21
|
+
group: z.string().optional(),
|
|
22
|
+
currency: z.enum(["USD", "CNY"]).default("USD"),
|
|
10
23
|
});
|
|
11
24
|
export const TokenSchema = z.object({
|
|
12
25
|
key: z.string(),
|
|
13
26
|
name: z.string(),
|
|
14
27
|
allowedProviders: z.array(z.string()),
|
|
15
28
|
rateLimit: z.number().nullable().optional(),
|
|
29
|
+
quota: z.object({
|
|
30
|
+
daily: z.number().optional(),
|
|
31
|
+
monthly: z.number().optional(),
|
|
32
|
+
}).optional(),
|
|
16
33
|
enabled: z.boolean().default(true),
|
|
17
34
|
});
|
|
18
35
|
export const ConfigSchema = z.object({
|
|
@@ -25,4 +42,14 @@ export const ConfigSchema = z.object({
|
|
|
25
42
|
providers: z.array(ProviderSchema),
|
|
26
43
|
tokens: z.array(TokenSchema),
|
|
27
44
|
});
|
|
45
|
+
export function getModelId(model) {
|
|
46
|
+
return typeof model === "string" ? model : model.id;
|
|
47
|
+
}
|
|
48
|
+
export function getModelPricing(model) {
|
|
49
|
+
if (typeof model === "string")
|
|
50
|
+
return undefined;
|
|
51
|
+
if (model.inputPrice === undefined && model.outputPrice === undefined && model.cacheReadPrice === undefined && model.cacheWritePrice === undefined)
|
|
52
|
+
return undefined;
|
|
53
|
+
return { inputPrice: model.inputPrice, outputPrice: model.outputPrice, cacheReadPrice: model.cacheReadPrice, cacheWritePrice: model.cacheWritePrice };
|
|
54
|
+
}
|
|
28
55
|
//# sourceMappingURL=config.js.map
|
package/dist/types/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,MAAM,CAAC;IACrC,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE;IACd,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IACrC,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE;IAChB,MAAM,EAAE,CAAC,CAAC,MAAM,EAAE;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/types/config.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zhouzhengchang/token-party",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"description": "AI API reverse proxy gateway with token management, protocol conversion, and built-in dashboard",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"bin": {
|
|
7
|
-
"tokenparty": "
|
|
7
|
+
"tokenparty": "dist/cli.js"
|
|
8
8
|
},
|
|
9
9
|
"files": [
|
|
10
10
|
"dist/",
|
|
@@ -17,7 +17,14 @@
|
|
|
17
17
|
"build:publish": "tsc && pnpm --filter @tokenparty/dashboard build && rm -rf dashboard && cp -r ../dashboard/dist dashboard",
|
|
18
18
|
"start": "node dist/index.js"
|
|
19
19
|
},
|
|
20
|
-
"keywords": [
|
|
20
|
+
"keywords": [
|
|
21
|
+
"ai",
|
|
22
|
+
"proxy",
|
|
23
|
+
"openai",
|
|
24
|
+
"anthropic",
|
|
25
|
+
"api-gateway",
|
|
26
|
+
"token-management"
|
|
27
|
+
],
|
|
21
28
|
"license": "MIT",
|
|
22
29
|
"dependencies": {
|
|
23
30
|
"@hono/node-server": "^1.13.0",
|