pi-io-provider 1.1.4 → 1.1.6
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 +19 -18
- package/models.json +77 -54
- package/package.json +1 -1
- package/scripts/update-models.js +28 -3
package/README.md
CHANGED
|
@@ -16,34 +16,35 @@ A [pi](https://github.com/badlogic/pi-mono) extension that adds [IO Intelligence
|
|
|
16
16
|
|
|
17
17
|
| Model | ID | Context | Max Output | Vision | Reasoning | Cache | Input $/M | Output $/M |
|
|
18
18
|
|-------|----|---------|------------|--------|-----------|-------|-----------|------------|
|
|
19
|
-
| Kimi K2.5 | `moonshotai/Kimi-K2.5` | 262K | 262K | ✅ | ✅ | ✅ | $0.
|
|
20
|
-
| Kimi K2.6 | `moonshotai/Kimi-K2.6` | 262K | 262K | ✅ | ✅ | ✅ | $0.
|
|
21
|
-
| Kimi K2.7 Code | `moonshotai/Kimi-K2.7-Code` | 262K | 262K | ✅ | ✅ | ✅ | $
|
|
22
|
-
| Kimi K3 | `moonshotai/Kimi-K3` | 1.0M | 1.0M | ✅ | ✅ | ✅ | $
|
|
23
|
-
| Qwen3.6 27B | `Qwen/Qwen3.6-27B` | 33K | 33K | ✅ | ✅ | ✅ | $0.
|
|
24
|
-
| Qwen3.6 35B A3B | `Qwen/Qwen3.6-35B-A3B` | 262K | 262K | ✅ | ✅ | ✅ | $0.
|
|
19
|
+
| Kimi K2.5 | `moonshotai/Kimi-K2.5` | 262K | 262K | ✅ | ✅ | ✅ | $0.57 | $3.00 |
|
|
20
|
+
| Kimi K2.6 | `moonshotai/Kimi-K2.6` | 262K | 262K | ✅ | ✅ | ✅ | $0.85 | $3.78 |
|
|
21
|
+
| Kimi K2.7 Code | `moonshotai/Kimi-K2.7-Code` | 262K | 262K | ✅ | ✅ | ✅ | $0.82 | $3.73 |
|
|
22
|
+
| Kimi K3 | `moonshotai/Kimi-K3` | 1.0M | 1.0M | ✅ | ✅ | ✅ | $2.93 | $14.65 |
|
|
23
|
+
| Qwen3.6 27B | `Qwen/Qwen3.6-27B` | 33K | 33K | ✅ | ✅ | ✅ | $0.40 | $3.03 |
|
|
24
|
+
| Qwen3.6 35B A3B | `Qwen/Qwen3.6-35B-A3B` | 262K | 262K | ✅ | ✅ | ✅ | $0.17 | $1.12 |
|
|
25
|
+
| Qwen3.8 27B | `Qwen/Qwen3.8-27B` | 66K | 66K | ✅ | ✅ | ✅ | $0.45 | $3.25 |
|
|
25
26
|
| DeepSeek R1 0528 | `deepseek-ai/DeepSeek-R1-0528` | 128K | 128K | ❌ | ✅ | ✅ | $0.57 | $2.28 |
|
|
26
|
-
| DeepSeek V3.2 | `deepseek-ai/DeepSeek-V3.2` | 164K | 164K | ❌ | ✅ | ✅ | $0.
|
|
27
|
-
| DeepSeek V4 Flash | `deepseek-ai/DeepSeek-V4-Flash` | 33K | 33K | ❌ | ✅ | ✅ | $0.
|
|
28
|
-
| DeepSeek V4 Flash 0731 | `deepseek-ai/DeepSeek-V4-Flash-0731` | 262K | 66K | ❌ | ✅ | ✅ | $0.
|
|
29
|
-
| DeepSeek V4 Pro | `deepseek-ai/DeepSeek-V4-Pro` | 1.0M | 600K | ❌ | ✅ | ✅ | $1.
|
|
27
|
+
| DeepSeek V3.2 | `deepseek-ai/DeepSeek-V3.2` | 164K | 164K | ❌ | ✅ | ✅ | $0.81 | $1.33 |
|
|
28
|
+
| DeepSeek V4 Flash | `deepseek-ai/DeepSeek-V4-Flash` | 33K | 33K | ❌ | ✅ | ✅ | $0.15 | $0.35 |
|
|
29
|
+
| DeepSeek V4 Flash 0731 | `deepseek-ai/DeepSeek-V4-Flash-0731` | 262K | 66K | ❌ | ✅ | ✅ | $0.18 | $0.48 |
|
|
30
|
+
| DeepSeek V4 Pro | `deepseek-ai/DeepSeek-V4-Pro` | 1.0M | 600K | ❌ | ✅ | ✅ | $1.61 | $3.27 |
|
|
30
31
|
| Gemma 4 26B A4B | `google/gemma-4-26b-a4b-it` | 262K | 262K | ❌ | ✅ | ✅ | $0.12 | $0.42 |
|
|
31
|
-
| MiniMax M2.5 | `MiniMaxAI/MiniMax-M2.5` | 197K | 197K | ❌ | ✅ | ✅ | $0.
|
|
32
|
-
| MiniMax M2.7 | `MiniMaxAI/MiniMax-M2.7` | 262K | 66K | ❌ | ✅ | ✅ | $0.
|
|
32
|
+
| MiniMax M2.5 | `MiniMaxAI/MiniMax-M2.5` | 197K | 197K | ❌ | ✅ | ✅ | $0.28 | $1.14 |
|
|
33
|
+
| MiniMax M2.7 | `MiniMaxAI/MiniMax-M2.7` | 262K | 66K | ❌ | ✅ | ✅ | $0.47 | $1.76 |
|
|
33
34
|
| Kimi K2 Thinking | `moonshotai/Kimi-K2-Thinking` | 262K | 262K | ❌ | ✅ | ✅ | $0.60 | $2.50 |
|
|
34
|
-
| gpt-oss-120b | `openai/gpt-oss-120b` | 131K | 131K | ❌ | ✅ | ✅ | $0.
|
|
35
|
+
| gpt-oss-120b | `openai/gpt-oss-120b` | 131K | 131K | ❌ | ✅ | ✅ | $0.19 | $0.70 |
|
|
35
36
|
| gpt-oss-20b | `openai/gpt-oss-20b` | 64K | 64K | ❌ | ✅ | ✅ | $0.06 | $0.22 |
|
|
36
|
-
| MiMo-V2.5 | `XiaomiMiMo/MiMo-V2.5` | 262K | 262K | ❌ | ✅ | ✅ | $0.
|
|
37
|
+
| MiMo-V2.5 | `XiaomiMiMo/MiMo-V2.5` | 262K | 262K | ❌ | ✅ | ✅ | $0.19 | $0.63 |
|
|
37
38
|
| GLM-4.5-Air | `zai-org/GLM-4.5-Air` | 131K | 131K | ❌ | ✅ | ✅ | $0.16 | $0.94 |
|
|
38
39
|
| GLM 4.6 | `zai-org/GLM-4.6` | 131K | 131K | ❌ | ✅ | ✅ | $0.54 | $2.07 |
|
|
39
40
|
| GLM 4.7 | `zai-org/GLM-4.7` | 203K | 203K | ❌ | ✅ | ✅ | $0.88 | $2.37 |
|
|
40
41
|
| GLM 4.7 Flash | `zai-org/GLM-4.7-Flash` | 200K | 200K | ❌ | ✅ | ✅ | $0.06 | $0.40 |
|
|
41
|
-
| GLM 5 | `zai-org/GLM-5` | 203K | 203K | ❌ | ✅ | ✅ | $0.
|
|
42
|
-
| GLM 5.1 | `zai-org/GLM-5.1` | 203K | 33K | ❌ | ✅ | ✅ | $1.
|
|
43
|
-
| GLM 5.2 | `zai-org/GLM-5.2` | 262K | 66K | ❌ | ✅ | ✅ | $1.
|
|
42
|
+
| GLM 5 | `zai-org/GLM-5` | 203K | 203K | ❌ | ✅ | ✅ | $0.84 | $2.61 |
|
|
43
|
+
| GLM 5.1 | `zai-org/GLM-5.1` | 203K | 33K | ❌ | ✅ | ✅ | $1.36 | $4.40 |
|
|
44
|
+
| GLM 5.2 | `zai-org/GLM-5.2` | 262K | 66K | ❌ | ✅ | ✅ | $1.55 | $4.98 |
|
|
44
45
|
| Llama 4 Maverick 17B 128E Instruct FP8 | `meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8` | 430K | 430K | ✅ | ❌ | ✅ | $0.27 | $0.90 |
|
|
45
46
|
| Qwen3 Coder 480B A35B Instruct INT4 Mixed AR | `Intel/Qwen3-Coder-480B-A35B-Instruct-int4-mixed-ar` | 106K | 106K | ❌ | ❌ | ✅ | $0.45 | $2.15 |
|
|
46
|
-
| Llama 3.3 70B Instruct | `meta-llama/Llama-3.3-70B-Instruct` | 128K | 128K | ❌ | ❌ | ✅ | $0.
|
|
47
|
+
| Llama 3.3 70B Instruct | `meta-llama/Llama-3.3-70B-Instruct` | 128K | 128K | ❌ | ❌ | ✅ | $0.64 | $0.77 |
|
|
47
48
|
| Mistral Nemo Instruct 2407 | `mistralai/Mistral-Nemo-Instruct-2407` | 128K | 128K | ❌ | ❌ | ✅ | $0.03 | $0.08 |
|
|
48
49
|
| Kimi K2 Instruct 0905 | `moonshotai/Kimi-K2-Instruct-0905` | 262K | 262K | ❌ | ❌ | ✅ | $0.57 | $2.30 |
|
|
49
50
|
| Qwen3 Next 80B A3B Instruct | `Qwen/Qwen3-Next-80B-A3B-Instruct` | 262K | 262K | ❌ | ❌ | ✅ | $0.12 | $1.14 |
|
package/models.json
CHANGED
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
[
|
|
2
|
+
{
|
|
3
|
+
"id": "Qwen/Qwen3.8-27B",
|
|
4
|
+
"name": "Qwen3.8 27B",
|
|
5
|
+
"reasoning": true,
|
|
6
|
+
"input": [
|
|
7
|
+
"text",
|
|
8
|
+
"image"
|
|
9
|
+
],
|
|
10
|
+
"cost": {
|
|
11
|
+
"input": 0.45,
|
|
12
|
+
"output": 3.25,
|
|
13
|
+
"cacheRead": 0.2,
|
|
14
|
+
"cacheWrite": 0
|
|
15
|
+
},
|
|
16
|
+
"contextWindow": 65500,
|
|
17
|
+
"maxTokens": 65536,
|
|
18
|
+
"compat": {
|
|
19
|
+
"supportsStore": false,
|
|
20
|
+
"supportsDeveloperRole": false,
|
|
21
|
+
"maxTokensField": "max_tokens",
|
|
22
|
+
"supportsReasoningEffort": true
|
|
23
|
+
}
|
|
24
|
+
},
|
|
2
25
|
{
|
|
3
26
|
"id": "deepseek-ai/DeepSeek-V4-Flash-0731",
|
|
4
27
|
"name": "DeepSeek V4 Flash 0731",
|
|
@@ -7,9 +30,9 @@
|
|
|
7
30
|
"text"
|
|
8
31
|
],
|
|
9
32
|
"cost": {
|
|
10
|
-
"input": 0.
|
|
11
|
-
"output": 0.
|
|
12
|
-
"cacheRead": 0.
|
|
33
|
+
"input": 0.183999,
|
|
34
|
+
"output": 0.4784,
|
|
35
|
+
"cacheRead": 0.092,
|
|
13
36
|
"cacheWrite": 0
|
|
14
37
|
},
|
|
15
38
|
"contextWindow": 262100,
|
|
@@ -30,9 +53,9 @@
|
|
|
30
53
|
"image"
|
|
31
54
|
],
|
|
32
55
|
"cost": {
|
|
33
|
-
"input":
|
|
34
|
-
"output":
|
|
35
|
-
"cacheRead": 1.
|
|
56
|
+
"input": 2.93,
|
|
57
|
+
"output": 14.65,
|
|
58
|
+
"cacheRead": 1.465,
|
|
36
59
|
"cacheWrite": 0
|
|
37
60
|
},
|
|
38
61
|
"contextWindow": 1048576,
|
|
@@ -52,9 +75,9 @@
|
|
|
52
75
|
"text"
|
|
53
76
|
],
|
|
54
77
|
"cost": {
|
|
55
|
-
"input": 0.
|
|
56
|
-
"output": 0.
|
|
57
|
-
"cacheRead": 0.
|
|
78
|
+
"input": 0.1934,
|
|
79
|
+
"output": 0.6268,
|
|
80
|
+
"cacheRead": 0.0967,
|
|
58
81
|
"cacheWrite": 0
|
|
59
82
|
},
|
|
60
83
|
"contextWindow": 262144,
|
|
@@ -74,9 +97,9 @@
|
|
|
74
97
|
"text"
|
|
75
98
|
],
|
|
76
99
|
"cost": {
|
|
77
|
-
"input": 1.
|
|
78
|
-
"output": 4.
|
|
79
|
-
"cacheRead": 0.
|
|
100
|
+
"input": 1.55,
|
|
101
|
+
"output": 4.98,
|
|
102
|
+
"cacheRead": 0.775,
|
|
80
103
|
"cacheWrite": 0
|
|
81
104
|
},
|
|
82
105
|
"contextWindow": 262144,
|
|
@@ -97,9 +120,9 @@
|
|
|
97
120
|
"image"
|
|
98
121
|
],
|
|
99
122
|
"cost": {
|
|
100
|
-
"input":
|
|
101
|
-
"output":
|
|
102
|
-
"cacheRead": 0.
|
|
123
|
+
"input": 0.822,
|
|
124
|
+
"output": 3.728,
|
|
125
|
+
"cacheRead": 0.411,
|
|
103
126
|
"cacheWrite": 0
|
|
104
127
|
},
|
|
105
128
|
"contextWindow": 262144,
|
|
@@ -120,9 +143,9 @@
|
|
|
120
143
|
"image"
|
|
121
144
|
],
|
|
122
145
|
"cost": {
|
|
123
|
-
"input": 0.
|
|
146
|
+
"input": 0.1748,
|
|
124
147
|
"output": 1.11675,
|
|
125
|
-
"cacheRead": 0.
|
|
148
|
+
"cacheRead": 0.0874,
|
|
126
149
|
"cacheWrite": 0
|
|
127
150
|
},
|
|
128
151
|
"contextWindow": 262140,
|
|
@@ -143,9 +166,9 @@
|
|
|
143
166
|
"image"
|
|
144
167
|
],
|
|
145
168
|
"cost": {
|
|
146
|
-
"input": 0.
|
|
169
|
+
"input": 0.3968,
|
|
147
170
|
"output": 3.03,
|
|
148
|
-
"cacheRead": 0.
|
|
171
|
+
"cacheRead": 0.1984,
|
|
149
172
|
"cacheWrite": 0
|
|
150
173
|
},
|
|
151
174
|
"contextWindow": 32768,
|
|
@@ -165,9 +188,9 @@
|
|
|
165
188
|
"text"
|
|
166
189
|
],
|
|
167
190
|
"cost": {
|
|
168
|
-
"input": 0.
|
|
169
|
-
"output": 1.
|
|
170
|
-
"cacheRead": 0.
|
|
191
|
+
"input": 0.47,
|
|
192
|
+
"output": 1.76,
|
|
193
|
+
"cacheRead": 0.235,
|
|
171
194
|
"cacheWrite": 0
|
|
172
195
|
},
|
|
173
196
|
"contextWindow": 262100,
|
|
@@ -187,9 +210,9 @@
|
|
|
187
210
|
"text"
|
|
188
211
|
],
|
|
189
212
|
"cost": {
|
|
190
|
-
"input": 0.
|
|
191
|
-
"output": 0.
|
|
192
|
-
"cacheRead": 0.
|
|
213
|
+
"input": 0.1548,
|
|
214
|
+
"output": 0.3536,
|
|
215
|
+
"cacheRead": 0.0774,
|
|
193
216
|
"cacheWrite": 0
|
|
194
217
|
},
|
|
195
218
|
"contextWindow": 32768,
|
|
@@ -209,9 +232,9 @@
|
|
|
209
232
|
"text"
|
|
210
233
|
],
|
|
211
234
|
"cost": {
|
|
212
|
-
"input": 1.
|
|
213
|
-
"output": 3.
|
|
214
|
-
"cacheRead": 0.
|
|
235
|
+
"input": 1.612,
|
|
236
|
+
"output": 3.274,
|
|
237
|
+
"cacheRead": 0.806,
|
|
215
238
|
"cacheWrite": 0
|
|
216
239
|
},
|
|
217
240
|
"contextWindow": 1048576,
|
|
@@ -232,9 +255,9 @@
|
|
|
232
255
|
"image"
|
|
233
256
|
],
|
|
234
257
|
"cost": {
|
|
235
|
-
"input": 0.
|
|
236
|
-
"output": 3.
|
|
237
|
-
"cacheRead": 0.
|
|
258
|
+
"input": 0.85,
|
|
259
|
+
"output": 3.782,
|
|
260
|
+
"cacheRead": 0.425,
|
|
238
261
|
"cacheWrite": 0
|
|
239
262
|
},
|
|
240
263
|
"contextWindow": 262142,
|
|
@@ -254,9 +277,9 @@
|
|
|
254
277
|
"text"
|
|
255
278
|
],
|
|
256
279
|
"cost": {
|
|
257
|
-
"input": 1.
|
|
258
|
-
"output":
|
|
259
|
-
"cacheRead": 0.
|
|
280
|
+
"input": 1.36,
|
|
281
|
+
"output": 4.4,
|
|
282
|
+
"cacheRead": 0.68,
|
|
260
283
|
"cacheWrite": 0
|
|
261
284
|
},
|
|
262
285
|
"contextWindow": 202750,
|
|
@@ -276,9 +299,9 @@
|
|
|
276
299
|
"text"
|
|
277
300
|
],
|
|
278
301
|
"cost": {
|
|
279
|
-
"input": 0.
|
|
280
|
-
"output": 1.
|
|
281
|
-
"cacheRead": 0.
|
|
302
|
+
"input": 0.283,
|
|
303
|
+
"output": 1.14,
|
|
304
|
+
"cacheRead": 0.1415,
|
|
282
305
|
"cacheWrite": 0
|
|
283
306
|
},
|
|
284
307
|
"contextWindow": 196600,
|
|
@@ -299,9 +322,9 @@
|
|
|
299
322
|
"image"
|
|
300
323
|
],
|
|
301
324
|
"cost": {
|
|
302
|
-
"input": 0.
|
|
303
|
-
"output":
|
|
304
|
-
"cacheRead": 0.
|
|
325
|
+
"input": 0.5744,
|
|
326
|
+
"output": 3.005,
|
|
327
|
+
"cacheRead": 0.2872,
|
|
305
328
|
"cacheWrite": 1.1
|
|
306
329
|
},
|
|
307
330
|
"contextWindow": 262144,
|
|
@@ -321,9 +344,9 @@
|
|
|
321
344
|
"text"
|
|
322
345
|
],
|
|
323
346
|
"cost": {
|
|
324
|
-
"input": 0.
|
|
325
|
-
"output": 2.
|
|
326
|
-
"cacheRead": 0.
|
|
347
|
+
"input": 0.84,
|
|
348
|
+
"output": 2.612,
|
|
349
|
+
"cacheRead": 0.42,
|
|
327
350
|
"cacheWrite": 0
|
|
328
351
|
},
|
|
329
352
|
"contextWindow": 202752,
|
|
@@ -343,9 +366,9 @@
|
|
|
343
366
|
"text"
|
|
344
367
|
],
|
|
345
368
|
"cost": {
|
|
346
|
-
"input": 0.
|
|
347
|
-
"output": 1.
|
|
348
|
-
"cacheRead": 0.
|
|
369
|
+
"input": 0.81476,
|
|
370
|
+
"output": 1.33257,
|
|
371
|
+
"cacheRead": 0.40738,
|
|
349
372
|
"cacheWrite": 0.5
|
|
350
373
|
},
|
|
351
374
|
"contextWindow": 163840,
|
|
@@ -409,9 +432,9 @@
|
|
|
409
432
|
"text"
|
|
410
433
|
],
|
|
411
434
|
"cost": {
|
|
412
|
-
"input": 0.
|
|
435
|
+
"input": 0.122,
|
|
413
436
|
"output": 0.42,
|
|
414
|
-
"cacheRead": 0.
|
|
437
|
+
"cacheRead": 0.061,
|
|
415
438
|
"cacheWrite": 0
|
|
416
439
|
},
|
|
417
440
|
"contextWindow": 262142,
|
|
@@ -496,9 +519,9 @@
|
|
|
496
519
|
"text"
|
|
497
520
|
],
|
|
498
521
|
"cost": {
|
|
499
|
-
"input": 0.
|
|
500
|
-
"output": 0.
|
|
501
|
-
"cacheRead": 0.
|
|
522
|
+
"input": 0.188,
|
|
523
|
+
"output": 0.7,
|
|
524
|
+
"cacheRead": 0.094,
|
|
502
525
|
"cacheWrite": 0.04
|
|
503
526
|
},
|
|
504
527
|
"contextWindow": 131072,
|
|
@@ -669,9 +692,9 @@
|
|
|
669
692
|
"text"
|
|
670
693
|
],
|
|
671
694
|
"cost": {
|
|
672
|
-
"input": 0.
|
|
673
|
-
"output": 0.
|
|
674
|
-
"cacheRead": 0.
|
|
695
|
+
"input": 0.638,
|
|
696
|
+
"output": 0.768,
|
|
697
|
+
"cacheRead": 0.319,
|
|
675
698
|
"cacheWrite": 0.2
|
|
676
699
|
},
|
|
677
700
|
"contextWindow": 128000,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "pi-io-provider",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.6",
|
|
4
4
|
"description": "IO Intelligence provider extension for pi - Access DeepSeek, Kimi, GLM, Llama, Qwen, Mistral, and more through the IO Intelligence API",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "index.ts",
|
package/scripts/update-models.js
CHANGED
|
@@ -297,9 +297,9 @@ function buildModels(baseModels, customModels, patchData) {
|
|
|
297
297
|
// ─── README generation ──────────────────────────────────────────────────────
|
|
298
298
|
|
|
299
299
|
function formatCost(cost) {
|
|
300
|
-
if (cost === 0) return '
|
|
301
|
-
if (cost
|
|
302
|
-
return
|
|
300
|
+
if (cost === 0) return '—';
|
|
301
|
+
if (cost === null || cost === undefined) return '—';
|
|
302
|
+
return '$' + cost.toFixed(2);
|
|
303
303
|
}
|
|
304
304
|
|
|
305
305
|
function formatCtx(num) {
|
|
@@ -513,6 +513,31 @@ function updateDeprecatedModels(modelsJsonPath, newModels) {
|
|
|
513
513
|
}
|
|
514
514
|
}
|
|
515
515
|
|
|
516
|
+
/**
|
|
517
|
+
* Grace-period deprecated models (deprecatedAt within TTL) with metadata stripped.
|
|
518
|
+
* Keeps the README table serving models that are delisted but still within their
|
|
519
|
+
* 14-day grace window.
|
|
520
|
+
*/
|
|
521
|
+
function withDeprecatedForReadme(models) {
|
|
522
|
+
const deprecatedPath = path.join(process.cwd(), 'deprecated-models.json');
|
|
523
|
+
let deprecated = {};
|
|
524
|
+
try {
|
|
525
|
+
const parsed = JSON.parse(fs.readFileSync(deprecatedPath, 'utf8'));
|
|
526
|
+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) deprecated = parsed;
|
|
527
|
+
} catch { /* no graveyard yet */ }
|
|
528
|
+
const now = Date.now();
|
|
529
|
+
const seen = new Set(models.map(m => m.id));
|
|
530
|
+
const extras = [];
|
|
531
|
+
for (const entry of Object.values(deprecated)) {
|
|
532
|
+
if (!entry || !entry.id || seen.has(entry.id)) continue;
|
|
533
|
+
const removedAt = Date.parse(entry.deprecatedAt || '');
|
|
534
|
+
if (Number.isNaN(removedAt) || now - removedAt > DEPRECATED_MODEL_TTL_MS) continue;
|
|
535
|
+
const m = { ...entry };
|
|
536
|
+
delete m.deprecatedAt;
|
|
537
|
+
extras.push(m);
|
|
538
|
+
}
|
|
539
|
+
return extras.length > 0 ? [...models, ...extras] : models;
|
|
540
|
+
}
|
|
516
541
|
async function main() {
|
|
517
542
|
const apiKey = resolveApiKey();
|
|
518
543
|
if (!apiKey) {
|