@velum-labs/routekit-registry 1.3.2 → 1.5.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 +4 -0
- package/dist/generated/data.d.ts +170 -0
- package/dist/generated/data.js +179 -6
- package/dist/index.d.ts +48 -8
- package/dist/index.js +13 -6
- package/dist/pricing-snapshot.d.ts +2 -0
- package/dist/pricing-snapshot.js +44 -0
- package/dist/pricing.d.ts +9 -0
- package/dist/pricing.js +6 -0
- package/dist/services/cost/service.d.ts +214 -0
- package/dist/services/cost/service.js +1002 -0
- package/dist/test/registry.test.js +870 -1
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -3,3 +3,7 @@
|
|
|
3
3
|
Product-neutral generated provider, subscription, catalog, capability, pricing,
|
|
4
4
|
and local model metadata from `spec/registry`. RouteKit packages consume this
|
|
5
5
|
neutral registry surface only.
|
|
6
|
+
|
|
7
|
+
`CostService` is the shared pricing, pre-run estimation, and observed-actuals
|
|
8
|
+
capability. Unknown pricing, billing modes, reasoning-token multipliers, and
|
|
9
|
+
missing usage remain explicit instead of becoming zero.
|
package/dist/generated/data.d.ts
CHANGED
|
@@ -19,6 +19,12 @@ export declare const REGISTRY: {
|
|
|
19
19
|
auth: string;
|
|
20
20
|
responseShape: string;
|
|
21
21
|
};
|
|
22
|
+
module: {
|
|
23
|
+
protocol: string;
|
|
24
|
+
accountClass: string;
|
|
25
|
+
billingMode: string;
|
|
26
|
+
firstLaunch: boolean;
|
|
27
|
+
};
|
|
22
28
|
};
|
|
23
29
|
anthropic: {
|
|
24
30
|
baseUrl: string;
|
|
@@ -46,6 +52,12 @@ export declare const REGISTRY: {
|
|
|
46
52
|
};
|
|
47
53
|
responseShape: string;
|
|
48
54
|
};
|
|
55
|
+
module: {
|
|
56
|
+
protocol: string;
|
|
57
|
+
accountClass: string;
|
|
58
|
+
billingMode: string;
|
|
59
|
+
firstLaunch: boolean;
|
|
60
|
+
};
|
|
49
61
|
};
|
|
50
62
|
bedrock: {
|
|
51
63
|
$comment: string;
|
|
@@ -59,6 +71,12 @@ export declare const REGISTRY: {
|
|
|
59
71
|
auth: string;
|
|
60
72
|
responseShape: string;
|
|
61
73
|
};
|
|
74
|
+
module: {
|
|
75
|
+
protocol: string;
|
|
76
|
+
accountClass: string;
|
|
77
|
+
billingMode: string;
|
|
78
|
+
firstLaunch: boolean;
|
|
79
|
+
};
|
|
62
80
|
};
|
|
63
81
|
google: {
|
|
64
82
|
baseUrl: string;
|
|
@@ -78,6 +96,12 @@ export declare const REGISTRY: {
|
|
|
78
96
|
auth: string;
|
|
79
97
|
responseShape: string;
|
|
80
98
|
};
|
|
99
|
+
module: {
|
|
100
|
+
protocol: string;
|
|
101
|
+
accountClass: string;
|
|
102
|
+
billingMode: string;
|
|
103
|
+
firstLaunch: boolean;
|
|
104
|
+
};
|
|
81
105
|
};
|
|
82
106
|
openrouter: {
|
|
83
107
|
baseUrl: string;
|
|
@@ -106,6 +130,12 @@ export declare const REGISTRY: {
|
|
|
106
130
|
responseShape: string;
|
|
107
131
|
pickerDefaultSource: string;
|
|
108
132
|
};
|
|
133
|
+
module: {
|
|
134
|
+
protocol: string;
|
|
135
|
+
accountClass: string;
|
|
136
|
+
billingMode: string;
|
|
137
|
+
firstLaunch: boolean;
|
|
138
|
+
};
|
|
109
139
|
};
|
|
110
140
|
cliproxy: {
|
|
111
141
|
$comment: string;
|
|
@@ -127,6 +157,12 @@ export declare const REGISTRY: {
|
|
|
127
157
|
auth: string;
|
|
128
158
|
responseShape: string;
|
|
129
159
|
};
|
|
160
|
+
module: {
|
|
161
|
+
protocol: string;
|
|
162
|
+
accountClass: string;
|
|
163
|
+
billingMode: string;
|
|
164
|
+
firstLaunch: boolean;
|
|
165
|
+
};
|
|
130
166
|
};
|
|
131
167
|
codex: {
|
|
132
168
|
baseUrl: string;
|
|
@@ -141,15 +177,48 @@ export declare const REGISTRY: {
|
|
|
141
177
|
auth: string;
|
|
142
178
|
responseShape: string;
|
|
143
179
|
};
|
|
180
|
+
module: {
|
|
181
|
+
protocol: string;
|
|
182
|
+
accountClass: string;
|
|
183
|
+
billingMode: string;
|
|
184
|
+
firstLaunch: boolean;
|
|
185
|
+
};
|
|
144
186
|
};
|
|
145
187
|
"ai-gateway": {
|
|
146
188
|
baseUrl: string;
|
|
147
189
|
keyEnv: string;
|
|
148
190
|
baseUrlEnv: string;
|
|
191
|
+
apiCompatibility: string;
|
|
192
|
+
wire: {
|
|
193
|
+
protocol: string;
|
|
194
|
+
basePath: string;
|
|
195
|
+
};
|
|
196
|
+
discovery: {
|
|
197
|
+
path: string;
|
|
198
|
+
auth: string;
|
|
199
|
+
responseShape: string;
|
|
200
|
+
};
|
|
201
|
+
module: {
|
|
202
|
+
protocol: string;
|
|
203
|
+
accountClass: string;
|
|
204
|
+
billingMode: string;
|
|
205
|
+
firstLaunch: boolean;
|
|
206
|
+
};
|
|
207
|
+
keyProbe: {
|
|
208
|
+
path: string;
|
|
209
|
+
auth: string;
|
|
210
|
+
invalidStatuses: number[];
|
|
211
|
+
};
|
|
149
212
|
};
|
|
150
213
|
"openai-compatible": {
|
|
151
214
|
baseUrl: string;
|
|
152
215
|
apiCompatibility: string;
|
|
216
|
+
module: {
|
|
217
|
+
protocol: string;
|
|
218
|
+
accountClass: string;
|
|
219
|
+
billingMode: string;
|
|
220
|
+
firstLaunch: boolean;
|
|
221
|
+
};
|
|
153
222
|
};
|
|
154
223
|
"mlx-lm": {
|
|
155
224
|
apiCompatibility: string;
|
|
@@ -157,6 +226,52 @@ export declare const REGISTRY: {
|
|
|
157
226
|
mlx: {};
|
|
158
227
|
custom: {
|
|
159
228
|
apiCompatibility: string;
|
|
229
|
+
module: {
|
|
230
|
+
protocol: string;
|
|
231
|
+
accountClass: string;
|
|
232
|
+
billingMode: string;
|
|
233
|
+
firstLaunch: boolean;
|
|
234
|
+
};
|
|
235
|
+
};
|
|
236
|
+
"claude-code": {
|
|
237
|
+
$comment: string;
|
|
238
|
+
apiCompatibility: string;
|
|
239
|
+
module: {
|
|
240
|
+
protocol: string;
|
|
241
|
+
accountClass: string;
|
|
242
|
+
billingMode: string;
|
|
243
|
+
firstLaunch: boolean;
|
|
244
|
+
};
|
|
245
|
+
};
|
|
246
|
+
"openai-azure": {
|
|
247
|
+
$comment: string;
|
|
248
|
+
apiCompatibility: string;
|
|
249
|
+
module: {
|
|
250
|
+
protocol: string;
|
|
251
|
+
accountClass: string;
|
|
252
|
+
billingMode: string;
|
|
253
|
+
firstLaunch: boolean;
|
|
254
|
+
};
|
|
255
|
+
};
|
|
256
|
+
"google-vertex": {
|
|
257
|
+
$comment: string;
|
|
258
|
+
apiCompatibility: string;
|
|
259
|
+
module: {
|
|
260
|
+
protocol: string;
|
|
261
|
+
accountClass: string;
|
|
262
|
+
billingMode: string;
|
|
263
|
+
firstLaunch: boolean;
|
|
264
|
+
};
|
|
265
|
+
};
|
|
266
|
+
"fake-openai": {
|
|
267
|
+
$comment: string;
|
|
268
|
+
apiCompatibility: string;
|
|
269
|
+
module: {
|
|
270
|
+
protocol: string;
|
|
271
|
+
accountClass: string;
|
|
272
|
+
billingMode: string;
|
|
273
|
+
firstLaunch: boolean;
|
|
274
|
+
};
|
|
160
275
|
};
|
|
161
276
|
};
|
|
162
277
|
subscriptions: {
|
|
@@ -183,6 +298,15 @@ export declare const REGISTRY: {
|
|
|
183
298
|
oauth: {
|
|
184
299
|
tokenEndpoint: string;
|
|
185
300
|
clientId: string;
|
|
301
|
+
authorizeUrl: string;
|
|
302
|
+
redirectUri: string;
|
|
303
|
+
manualRedirectUri: string;
|
|
304
|
+
scopes: string;
|
|
305
|
+
codeChallengeMethod: string;
|
|
306
|
+
tokenRequestFormat: string;
|
|
307
|
+
authorizeExtraParams: {
|
|
308
|
+
code: string;
|
|
309
|
+
};
|
|
186
310
|
usageEndpoint: string;
|
|
187
311
|
profileEndpoint: string;
|
|
188
312
|
};
|
|
@@ -234,8 +358,23 @@ export declare const REGISTRY: {
|
|
|
234
358
|
omitSampling: boolean;
|
|
235
359
|
};
|
|
236
360
|
oauth: {
|
|
361
|
+
issuer: string;
|
|
237
362
|
tokenEndpoint: string;
|
|
238
363
|
clientId: string;
|
|
364
|
+
authorizeUrl: string;
|
|
365
|
+
redirectUri: string;
|
|
366
|
+
scopes: string;
|
|
367
|
+
codeChallengeMethod: string;
|
|
368
|
+
tokenRequestFormat: string;
|
|
369
|
+
authorizeExtraParams: {
|
|
370
|
+
id_token_add_organizations: string;
|
|
371
|
+
codex_cli_simplified_flow: string;
|
|
372
|
+
originator: string;
|
|
373
|
+
};
|
|
374
|
+
deviceVerificationUrl: string;
|
|
375
|
+
deviceUserCodeEndpoint: string;
|
|
376
|
+
deviceTokenPollEndpoint: string;
|
|
377
|
+
deviceRedirectUri: string;
|
|
239
378
|
usageEndpoint: string;
|
|
240
379
|
usagePathFallback: string;
|
|
241
380
|
resetCreditsEndpoint: string;
|
|
@@ -370,18 +509,22 @@ export declare const REGISTRY: {
|
|
|
370
509
|
models: {
|
|
371
510
|
"claude-haiku": {
|
|
372
511
|
inputPer1mTokens: number;
|
|
512
|
+
cachedInputPer1mTokens: number;
|
|
373
513
|
outputPer1mTokens: number;
|
|
374
514
|
};
|
|
375
515
|
"claude-opus": {
|
|
376
516
|
inputPer1mTokens: number;
|
|
517
|
+
cachedInputPer1mTokens: number;
|
|
377
518
|
outputPer1mTokens: number;
|
|
378
519
|
};
|
|
379
520
|
"claude-sonnet": {
|
|
380
521
|
inputPer1mTokens: number;
|
|
522
|
+
cachedInputPer1mTokens: number;
|
|
381
523
|
outputPer1mTokens: number;
|
|
382
524
|
};
|
|
383
525
|
"claude-sonnet-4-6": {
|
|
384
526
|
inputPer1mTokens: number;
|
|
527
|
+
cachedInputPer1mTokens: number;
|
|
385
528
|
outputPer1mTokens: number;
|
|
386
529
|
};
|
|
387
530
|
"gemini-2.5-flash": {
|
|
@@ -394,22 +537,47 @@ export declare const REGISTRY: {
|
|
|
394
537
|
};
|
|
395
538
|
"gpt-4.1": {
|
|
396
539
|
inputPer1mTokens: number;
|
|
540
|
+
cachedInputPer1mTokens: number;
|
|
397
541
|
outputPer1mTokens: number;
|
|
398
542
|
};
|
|
399
543
|
"gpt-4o": {
|
|
400
544
|
inputPer1mTokens: number;
|
|
545
|
+
cachedInputPer1mTokens: number;
|
|
401
546
|
outputPer1mTokens: number;
|
|
402
547
|
};
|
|
403
548
|
"gpt-5": {
|
|
404
549
|
inputPer1mTokens: number;
|
|
550
|
+
cachedInputPer1mTokens: number;
|
|
405
551
|
outputPer1mTokens: number;
|
|
406
552
|
};
|
|
407
553
|
"gpt-5.5": {
|
|
408
554
|
inputPer1mTokens: number;
|
|
555
|
+
cachedInputPer1mTokens: number;
|
|
556
|
+
outputPer1mTokens: number;
|
|
557
|
+
};
|
|
558
|
+
"gpt-5.6-luna": {
|
|
559
|
+
inputPer1mTokens: number;
|
|
560
|
+
cachedInputPer1mTokens: number;
|
|
561
|
+
outputPer1mTokens: number;
|
|
562
|
+
};
|
|
563
|
+
"gpt-5.6-sol": {
|
|
564
|
+
inputPer1mTokens: number;
|
|
565
|
+
cachedInputPer1mTokens: number;
|
|
566
|
+
outputPer1mTokens: number;
|
|
567
|
+
};
|
|
568
|
+
"gpt-5.6-terra": {
|
|
569
|
+
inputPer1mTokens: number;
|
|
570
|
+
cachedInputPer1mTokens: number;
|
|
571
|
+
outputPer1mTokens: number;
|
|
572
|
+
};
|
|
573
|
+
"gpt-6-astra": {
|
|
574
|
+
inputPer1mTokens: number;
|
|
575
|
+
cachedInputPer1mTokens: number;
|
|
409
576
|
outputPer1mTokens: number;
|
|
410
577
|
};
|
|
411
578
|
o3: {
|
|
412
579
|
inputPer1mTokens: number;
|
|
580
|
+
cachedInputPer1mTokens: number;
|
|
413
581
|
outputPer1mTokens: number;
|
|
414
582
|
};
|
|
415
583
|
};
|
|
@@ -418,6 +586,7 @@ export declare const REGISTRY: {
|
|
|
418
586
|
"claude-haiku-4-5": string;
|
|
419
587
|
"claude-opus-4-8": string;
|
|
420
588
|
"claude-sonnet-4-5": string;
|
|
589
|
+
"codex/gpt-6-astra": string;
|
|
421
590
|
"gpt-4.1-mini": string;
|
|
422
591
|
"gpt-5.1": string;
|
|
423
592
|
"gpt-5.1-codex": string;
|
|
@@ -425,6 +594,7 @@ export declare const REGISTRY: {
|
|
|
425
594
|
"gpt-5.5-2026-05": string;
|
|
426
595
|
"gpt-5.5-codex": string;
|
|
427
596
|
"openai/gpt-5.5": string;
|
|
597
|
+
"openai/gpt-6-astra": string;
|
|
428
598
|
};
|
|
429
599
|
manualOverrides: {};
|
|
430
600
|
};
|
package/dist/generated/data.js
CHANGED
|
@@ -22,6 +22,12 @@ export const REGISTRY = {
|
|
|
22
22
|
"path": "/v1/models",
|
|
23
23
|
"auth": "bearer",
|
|
24
24
|
"responseShape": "openai"
|
|
25
|
+
},
|
|
26
|
+
"module": {
|
|
27
|
+
"protocol": "openai",
|
|
28
|
+
"accountClass": "api-key",
|
|
29
|
+
"billingMode": "metered-api",
|
|
30
|
+
"firstLaunch": true
|
|
25
31
|
}
|
|
26
32
|
},
|
|
27
33
|
"anthropic": {
|
|
@@ -52,6 +58,12 @@ export const REGISTRY = {
|
|
|
52
58
|
"anthropic-version": "2023-06-01"
|
|
53
59
|
},
|
|
54
60
|
"responseShape": "anthropic"
|
|
61
|
+
},
|
|
62
|
+
"module": {
|
|
63
|
+
"protocol": "anthropic",
|
|
64
|
+
"accountClass": "api-key",
|
|
65
|
+
"billingMode": "metered-api",
|
|
66
|
+
"firstLaunch": true
|
|
55
67
|
}
|
|
56
68
|
},
|
|
57
69
|
"bedrock": {
|
|
@@ -65,6 +77,12 @@ export const REGISTRY = {
|
|
|
65
77
|
"path": "ListFoundationModels+ListInferenceProfiles",
|
|
66
78
|
"auth": "aws-sdk",
|
|
67
79
|
"responseShape": "bedrock"
|
|
80
|
+
},
|
|
81
|
+
"module": {
|
|
82
|
+
"protocol": "bedrock",
|
|
83
|
+
"accountClass": "api-key",
|
|
84
|
+
"billingMode": "metered-api",
|
|
85
|
+
"firstLaunch": true
|
|
68
86
|
}
|
|
69
87
|
},
|
|
70
88
|
"google": {
|
|
@@ -88,6 +106,12 @@ export const REGISTRY = {
|
|
|
88
106
|
"path": "/v1beta/models",
|
|
89
107
|
"auth": "x-goog-api-key",
|
|
90
108
|
"responseShape": "google"
|
|
109
|
+
},
|
|
110
|
+
"module": {
|
|
111
|
+
"protocol": "google",
|
|
112
|
+
"accountClass": "api-key",
|
|
113
|
+
"billingMode": "metered-api",
|
|
114
|
+
"firstLaunch": false
|
|
91
115
|
}
|
|
92
116
|
},
|
|
93
117
|
"openrouter": {
|
|
@@ -119,6 +143,12 @@ export const REGISTRY = {
|
|
|
119
143
|
},
|
|
120
144
|
"responseShape": "openai",
|
|
121
145
|
"pickerDefaultSource": "curated"
|
|
146
|
+
},
|
|
147
|
+
"module": {
|
|
148
|
+
"protocol": "openai",
|
|
149
|
+
"accountClass": "api-key",
|
|
150
|
+
"billingMode": "metered-api",
|
|
151
|
+
"firstLaunch": true
|
|
122
152
|
}
|
|
123
153
|
},
|
|
124
154
|
"cliproxy": {
|
|
@@ -143,6 +173,12 @@ export const REGISTRY = {
|
|
|
143
173
|
"path": "/v1/models",
|
|
144
174
|
"auth": "bearer",
|
|
145
175
|
"responseShape": "openai"
|
|
176
|
+
},
|
|
177
|
+
"module": {
|
|
178
|
+
"protocol": "openai",
|
|
179
|
+
"accountClass": "proxy",
|
|
180
|
+
"billingMode": "upstream-managed",
|
|
181
|
+
"firstLaunch": false
|
|
146
182
|
}
|
|
147
183
|
},
|
|
148
184
|
"codex": {
|
|
@@ -160,23 +196,105 @@ export const REGISTRY = {
|
|
|
160
196
|
"path": "/models",
|
|
161
197
|
"auth": "bearer",
|
|
162
198
|
"responseShape": "codex"
|
|
199
|
+
},
|
|
200
|
+
"module": {
|
|
201
|
+
"protocol": "codex",
|
|
202
|
+
"accountClass": "subscription",
|
|
203
|
+
"billingMode": "subscription",
|
|
204
|
+
"firstLaunch": true
|
|
163
205
|
}
|
|
164
206
|
},
|
|
165
207
|
"ai-gateway": {
|
|
166
208
|
"baseUrl": "https://ai-gateway.vercel.sh",
|
|
167
209
|
"keyEnv": "AI_GATEWAY_API_KEY",
|
|
168
|
-
"baseUrlEnv": "AI_GATEWAY_BASE_URL"
|
|
210
|
+
"baseUrlEnv": "AI_GATEWAY_BASE_URL",
|
|
211
|
+
"apiCompatibility": "openai-chat-completions",
|
|
212
|
+
"wire": {
|
|
213
|
+
"protocol": "openai",
|
|
214
|
+
"basePath": "/v1"
|
|
215
|
+
},
|
|
216
|
+
"discovery": {
|
|
217
|
+
"path": "/v1/models",
|
|
218
|
+
"auth": "bearer",
|
|
219
|
+
"responseShape": "openai"
|
|
220
|
+
},
|
|
221
|
+
"module": {
|
|
222
|
+
"protocol": "openai",
|
|
223
|
+
"accountClass": "api-key",
|
|
224
|
+
"billingMode": "metered-api",
|
|
225
|
+
"firstLaunch": false
|
|
226
|
+
},
|
|
227
|
+
"keyProbe": {
|
|
228
|
+
"path": "/v1/credits",
|
|
229
|
+
"auth": "bearer",
|
|
230
|
+
"invalidStatuses": [
|
|
231
|
+
401,
|
|
232
|
+
403
|
|
233
|
+
]
|
|
234
|
+
}
|
|
169
235
|
},
|
|
170
236
|
"openai-compatible": {
|
|
171
237
|
"baseUrl": "http://127.0.0.1",
|
|
172
|
-
"apiCompatibility": "openai-chat-completions"
|
|
238
|
+
"apiCompatibility": "openai-chat-completions",
|
|
239
|
+
"module": {
|
|
240
|
+
"protocol": "openai",
|
|
241
|
+
"accountClass": "api-key",
|
|
242
|
+
"billingMode": "metered-api",
|
|
243
|
+
"firstLaunch": false
|
|
244
|
+
}
|
|
173
245
|
},
|
|
174
246
|
"mlx-lm": {
|
|
175
247
|
"apiCompatibility": "mlx-lm-server"
|
|
176
248
|
},
|
|
177
249
|
"mlx": {},
|
|
178
250
|
"custom": {
|
|
179
|
-
"apiCompatibility": "custom"
|
|
251
|
+
"apiCompatibility": "custom",
|
|
252
|
+
"module": {
|
|
253
|
+
"protocol": "openai",
|
|
254
|
+
"accountClass": "api-key",
|
|
255
|
+
"billingMode": "metered-api",
|
|
256
|
+
"firstLaunch": false
|
|
257
|
+
}
|
|
258
|
+
},
|
|
259
|
+
"claude-code": {
|
|
260
|
+
"$comment": "Claude Code OAuth subscription module; operational metadata lives in subscriptions.json.",
|
|
261
|
+
"apiCompatibility": "anthropic-messages",
|
|
262
|
+
"module": {
|
|
263
|
+
"protocol": "anthropic",
|
|
264
|
+
"accountClass": "subscription",
|
|
265
|
+
"billingMode": "subscription",
|
|
266
|
+
"firstLaunch": true
|
|
267
|
+
}
|
|
268
|
+
},
|
|
269
|
+
"openai-azure": {
|
|
270
|
+
"$comment": "Azure OpenAI deployment-scoped REST source.",
|
|
271
|
+
"apiCompatibility": "openai-chat-completions",
|
|
272
|
+
"module": {
|
|
273
|
+
"protocol": "openai",
|
|
274
|
+
"accountClass": "api-key",
|
|
275
|
+
"billingMode": "metered-api",
|
|
276
|
+
"firstLaunch": false
|
|
277
|
+
}
|
|
278
|
+
},
|
|
279
|
+
"google-vertex": {
|
|
280
|
+
"$comment": "Vertex AI publisher models authenticated with Application Default Credentials.",
|
|
281
|
+
"apiCompatibility": "google-generate-content",
|
|
282
|
+
"module": {
|
|
283
|
+
"protocol": "google",
|
|
284
|
+
"accountClass": "iam",
|
|
285
|
+
"billingMode": "metered-api",
|
|
286
|
+
"firstLaunch": false
|
|
287
|
+
}
|
|
288
|
+
},
|
|
289
|
+
"fake-openai": {
|
|
290
|
+
"$comment": "Private test fixture proving catalog-backed provider extensibility.",
|
|
291
|
+
"apiCompatibility": "openai-chat-completions",
|
|
292
|
+
"module": {
|
|
293
|
+
"protocol": "openai",
|
|
294
|
+
"accountClass": "api-key",
|
|
295
|
+
"billingMode": "metered-api",
|
|
296
|
+
"firstLaunch": false
|
|
297
|
+
}
|
|
180
298
|
}
|
|
181
299
|
},
|
|
182
300
|
"subscriptions": {
|
|
@@ -201,8 +319,17 @@ export const REGISTRY = {
|
|
|
201
319
|
}
|
|
202
320
|
},
|
|
203
321
|
"oauth": {
|
|
204
|
-
"tokenEndpoint": "https://
|
|
322
|
+
"tokenEndpoint": "https://platform.claude.com/v1/oauth/token",
|
|
205
323
|
"clientId": "9d1c250a-e61b-44d9-88ed-5944d1962f5e",
|
|
324
|
+
"authorizeUrl": "https://claude.com/cai/oauth/authorize",
|
|
325
|
+
"redirectUri": "http://localhost:54545/callback",
|
|
326
|
+
"manualRedirectUri": "https://platform.claude.com/oauth/code/callback",
|
|
327
|
+
"scopes": "org:create_api_key user:profile user:inference",
|
|
328
|
+
"codeChallengeMethod": "S256",
|
|
329
|
+
"tokenRequestFormat": "json",
|
|
330
|
+
"authorizeExtraParams": {
|
|
331
|
+
"code": "true"
|
|
332
|
+
},
|
|
206
333
|
"usageEndpoint": "https://api.anthropic.com/api/oauth/usage",
|
|
207
334
|
"profileEndpoint": "https://api.anthropic.com/api/oauth/profile"
|
|
208
335
|
},
|
|
@@ -243,7 +370,7 @@ export const REGISTRY = {
|
|
|
243
370
|
"discovery": {
|
|
244
371
|
"path": "/models",
|
|
245
372
|
"responseShape": "codex",
|
|
246
|
-
"clientVersion": "0.
|
|
373
|
+
"clientVersion": "0.153.0",
|
|
247
374
|
"cacheFallback": true,
|
|
248
375
|
"extraHeaders": {
|
|
249
376
|
"OpenAI-Beta": "responses=v1",
|
|
@@ -260,8 +387,23 @@ export const REGISTRY = {
|
|
|
260
387
|
"omitSampling": true
|
|
261
388
|
},
|
|
262
389
|
"oauth": {
|
|
390
|
+
"issuer": "https://auth.openai.com",
|
|
263
391
|
"tokenEndpoint": "https://auth.openai.com/oauth/token",
|
|
264
392
|
"clientId": "app_EMoamEEZ73f0CkXaXp7hrann",
|
|
393
|
+
"authorizeUrl": "https://auth.openai.com/oauth/authorize",
|
|
394
|
+
"redirectUri": "http://localhost:1455/auth/callback",
|
|
395
|
+
"scopes": "openid profile email offline_access api.connectors.read api.connectors.invoke",
|
|
396
|
+
"codeChallengeMethod": "S256",
|
|
397
|
+
"tokenRequestFormat": "form",
|
|
398
|
+
"authorizeExtraParams": {
|
|
399
|
+
"id_token_add_organizations": "true",
|
|
400
|
+
"codex_cli_simplified_flow": "true",
|
|
401
|
+
"originator": "routekit"
|
|
402
|
+
},
|
|
403
|
+
"deviceVerificationUrl": "https://auth.openai.com/codex/device",
|
|
404
|
+
"deviceUserCodeEndpoint": "https://auth.openai.com/api/accounts/deviceauth/usercode",
|
|
405
|
+
"deviceTokenPollEndpoint": "https://auth.openai.com/api/accounts/deviceauth/token",
|
|
406
|
+
"deviceRedirectUri": "https://auth.openai.com/deviceauth/callback",
|
|
265
407
|
"usageEndpoint": "https://chatgpt.com/backend-api/wham/usage",
|
|
266
408
|
"usagePathFallback": "/api/codex/usage",
|
|
267
409
|
"resetCreditsEndpoint": "https://chatgpt.com/backend-api/wham/rate-limit-reset-credits"
|
|
@@ -484,18 +626,22 @@ export const REGISTRY = {
|
|
|
484
626
|
"models": {
|
|
485
627
|
"claude-haiku": {
|
|
486
628
|
"inputPer1mTokens": 1,
|
|
629
|
+
"cachedInputPer1mTokens": 0.1,
|
|
487
630
|
"outputPer1mTokens": 5
|
|
488
631
|
},
|
|
489
632
|
"claude-opus": {
|
|
490
633
|
"inputPer1mTokens": 15,
|
|
634
|
+
"cachedInputPer1mTokens": 1.5,
|
|
491
635
|
"outputPer1mTokens": 75
|
|
492
636
|
},
|
|
493
637
|
"claude-sonnet": {
|
|
494
638
|
"inputPer1mTokens": 3,
|
|
639
|
+
"cachedInputPer1mTokens": 0.3,
|
|
495
640
|
"outputPer1mTokens": 15
|
|
496
641
|
},
|
|
497
642
|
"claude-sonnet-4-6": {
|
|
498
643
|
"inputPer1mTokens": 3,
|
|
644
|
+
"cachedInputPer1mTokens": 0.3,
|
|
499
645
|
"outputPer1mTokens": 15
|
|
500
646
|
},
|
|
501
647
|
"gemini-2.5-flash": {
|
|
@@ -508,22 +654,47 @@ export const REGISTRY = {
|
|
|
508
654
|
},
|
|
509
655
|
"gpt-4.1": {
|
|
510
656
|
"inputPer1mTokens": 2,
|
|
657
|
+
"cachedInputPer1mTokens": 0.5,
|
|
511
658
|
"outputPer1mTokens": 8
|
|
512
659
|
},
|
|
513
660
|
"gpt-4o": {
|
|
514
661
|
"inputPer1mTokens": 2.5,
|
|
662
|
+
"cachedInputPer1mTokens": 1.25,
|
|
515
663
|
"outputPer1mTokens": 10
|
|
516
664
|
},
|
|
517
665
|
"gpt-5": {
|
|
518
666
|
"inputPer1mTokens": 1.25,
|
|
667
|
+
"cachedInputPer1mTokens": 0.125,
|
|
519
668
|
"outputPer1mTokens": 10
|
|
520
669
|
},
|
|
521
670
|
"gpt-5.5": {
|
|
522
671
|
"inputPer1mTokens": 1.25,
|
|
672
|
+
"cachedInputPer1mTokens": 0.125,
|
|
523
673
|
"outputPer1mTokens": 10
|
|
524
674
|
},
|
|
675
|
+
"gpt-5.6-luna": {
|
|
676
|
+
"inputPer1mTokens": 0.2,
|
|
677
|
+
"cachedInputPer1mTokens": 0.02,
|
|
678
|
+
"outputPer1mTokens": 1.2
|
|
679
|
+
},
|
|
680
|
+
"gpt-5.6-sol": {
|
|
681
|
+
"inputPer1mTokens": 4,
|
|
682
|
+
"cachedInputPer1mTokens": 0.4,
|
|
683
|
+
"outputPer1mTokens": 20
|
|
684
|
+
},
|
|
685
|
+
"gpt-5.6-terra": {
|
|
686
|
+
"inputPer1mTokens": 2,
|
|
687
|
+
"cachedInputPer1mTokens": 0.2,
|
|
688
|
+
"outputPer1mTokens": 12
|
|
689
|
+
},
|
|
690
|
+
"gpt-6-astra": {
|
|
691
|
+
"inputPer1mTokens": 10,
|
|
692
|
+
"cachedInputPer1mTokens": 1,
|
|
693
|
+
"outputPer1mTokens": 50
|
|
694
|
+
},
|
|
525
695
|
"o3": {
|
|
526
696
|
"inputPer1mTokens": 2,
|
|
697
|
+
"cachedInputPer1mTokens": 0.5,
|
|
527
698
|
"outputPer1mTokens": 8
|
|
528
699
|
}
|
|
529
700
|
},
|
|
@@ -532,13 +703,15 @@ export const REGISTRY = {
|
|
|
532
703
|
"claude-haiku-4-5": "claude-haiku",
|
|
533
704
|
"claude-opus-4-8": "claude-opus",
|
|
534
705
|
"claude-sonnet-4-5": "claude-sonnet",
|
|
706
|
+
"codex/gpt-6-astra": "gpt-6-astra",
|
|
535
707
|
"gpt-4.1-mini": "gpt-4.1",
|
|
536
708
|
"gpt-5.1": "gpt-5",
|
|
537
709
|
"gpt-5.1-codex": "gpt-5",
|
|
538
710
|
"gpt-5.3-codex": "gpt-5",
|
|
539
711
|
"gpt-5.5-2026-05": "gpt-5.5",
|
|
540
712
|
"gpt-5.5-codex": "gpt-5.5",
|
|
541
|
-
"openai/gpt-5.5": "gpt-5.5"
|
|
713
|
+
"openai/gpt-5.5": "gpt-5.5",
|
|
714
|
+
"openai/gpt-6-astra": "gpt-6-astra"
|
|
542
715
|
},
|
|
543
716
|
"manualOverrides": {}
|
|
544
717
|
},
|