@jeffreycao/copilot-api 1.12.9 → 1.13.1

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.
@@ -1,4 +1,4 @@
1
- import { T as PATHS, _ as isResponsesApiWebSocketEnabled, p as isCopilotUseLocalModelsEnabled, u as getRawProviderConfig, w as setProviderConfig } from "./config-B71_S_hQ.js";
1
+ import { C as setProviderConfig, g as isResponsesApiWebSocketEnabled, u as getRawProviderConfig, w as PATHS } from "./config-DODTXsGz.js";
2
2
  import consola from "consola";
3
3
  import { createHash, randomBytes, randomUUID } from "node:crypto";
4
4
  import fs, { readFile } from "node:fs/promises";
@@ -1177,7 +1177,7 @@ const getCopilotToken = async () => {
1177
1177
  //#region src/services/github/get-copilot-usage.ts
1178
1178
  const getCopilotUsage = async (githubToken) => {
1179
1179
  const resolvedGithubToken = githubToken ?? state.githubToken;
1180
- if (!resolvedGithubToken) throw new Error("GitHub token not found");
1180
+ if (!resolvedGithubToken) return null;
1181
1181
  const authState = {
1182
1182
  ...state,
1183
1183
  githubToken: resolvedGithubToken
@@ -1216,1935 +1216,8 @@ async function getGitHubUser(githubToken) {
1216
1216
  return await response.json();
1217
1217
  }
1218
1218
  //#endregion
1219
- //#region src/services/copilot/local-models.json
1220
- var local_models_default = {
1221
- data: [
1222
- {
1223
- "billing": {
1224
- "restricted_to": [
1225
- "pro_plus",
1226
- "business",
1227
- "enterprise",
1228
- "max"
1229
- ],
1230
- "token_prices": {
1231
- "batch_size": 1e6,
1232
- "default": {
1233
- "cache_price": 50,
1234
- "cache_write_price": 625,
1235
- "context_max": 2e5,
1236
- "input_price": 500,
1237
- "output_price": 2500
1238
- },
1239
- "long_context": {
1240
- "cache_price": 50,
1241
- "cache_write_price": 625,
1242
- "context_max": 936e3,
1243
- "input_price": 500,
1244
- "output_price": 2500
1245
- }
1246
- }
1247
- },
1248
- "capabilities": {
1249
- "family": "claude-opus-4.7",
1250
- "limits": {
1251
- "max_context_window_tokens": 1e6,
1252
- "max_non_streaming_output_tokens": 16e3,
1253
- "max_output_tokens": 64e3,
1254
- "max_prompt_tokens": 936e3,
1255
- "vision": {
1256
- "max_prompt_image_size": 3145728,
1257
- "max_prompt_images": 1,
1258
- "supported_media_types": [
1259
- "image/jpeg",
1260
- "image/png",
1261
- "image/webp",
1262
- "image/gif"
1263
- ]
1264
- }
1265
- },
1266
- "object": "model_capabilities",
1267
- "supports": {
1268
- "adaptive_thinking": true,
1269
- "max_thinking_budget": 32e3,
1270
- "min_thinking_budget": 1024,
1271
- "parallel_tool_calls": true,
1272
- "reasoning_effort": [
1273
- "low",
1274
- "medium",
1275
- "high",
1276
- "xhigh",
1277
- "max"
1278
- ],
1279
- "streaming": true,
1280
- "structured_outputs": true,
1281
- "tool_calls": true,
1282
- "vision": true
1283
- },
1284
- "tokenizer": "o200k_base",
1285
- "type": "chat"
1286
- },
1287
- "id": "claude-opus-4.7",
1288
- "is_chat_default": false,
1289
- "is_chat_fallback": false,
1290
- "model_picker_category": "powerful",
1291
- "model_picker_enabled": false,
1292
- "model_picker_price_category": "high",
1293
- "name": "Claude Opus 4.7",
1294
- "object": "model",
1295
- "policy": {
1296
- "state": "disabled",
1297
- "terms": "Enable access to the latest Claude Opus 4.7 model from Anthropic. [Learn more about how GitHub Copilot serves Claude Opus 4.7](https://gh.io/copilot-claude-opus)."
1298
- },
1299
- "preview": false,
1300
- "supported_endpoints": ["/v1/messages", "/chat/completions"],
1301
- "vendor": "Anthropic",
1302
- "version": "claude-opus-4.7"
1303
- },
1304
- {
1305
- "billing": {
1306
- "restricted_to": [
1307
- "pro_plus",
1308
- "business",
1309
- "enterprise",
1310
- "max"
1311
- ],
1312
- "token_prices": {
1313
- "batch_size": 1e6,
1314
- "default": {
1315
- "cache_price": 50,
1316
- "cache_write_price": 625,
1317
- "context_max": 2e5,
1318
- "input_price": 500,
1319
- "output_price": 2500
1320
- },
1321
- "long_context": {
1322
- "cache_price": 50,
1323
- "cache_write_price": 625,
1324
- "context_max": 936e3,
1325
- "input_price": 500,
1326
- "output_price": 2500
1327
- }
1328
- }
1329
- },
1330
- "capabilities": {
1331
- "family": "claude-opus-4.8",
1332
- "limits": {
1333
- "max_context_window_tokens": 1e6,
1334
- "max_non_streaming_output_tokens": 16e3,
1335
- "max_output_tokens": 64e3,
1336
- "max_prompt_tokens": 936e3,
1337
- "vision": {
1338
- "max_prompt_image_size": 3145728,
1339
- "max_prompt_images": 1,
1340
- "supported_media_types": [
1341
- "image/jpeg",
1342
- "image/png",
1343
- "image/webp",
1344
- "image/gif"
1345
- ]
1346
- }
1347
- },
1348
- "object": "model_capabilities",
1349
- "supports": {
1350
- "adaptive_thinking": true,
1351
- "max_thinking_budget": 32e3,
1352
- "min_thinking_budget": 1024,
1353
- "parallel_tool_calls": true,
1354
- "reasoning_effort": [
1355
- "low",
1356
- "medium",
1357
- "high",
1358
- "xhigh",
1359
- "max"
1360
- ],
1361
- "streaming": true,
1362
- "structured_outputs": true,
1363
- "tool_calls": true,
1364
- "vision": true
1365
- },
1366
- "tokenizer": "o200k_base",
1367
- "type": "chat"
1368
- },
1369
- "id": "claude-opus-4.8",
1370
- "is_chat_default": false,
1371
- "is_chat_fallback": false,
1372
- "model_picker_category": "powerful",
1373
- "model_picker_enabled": false,
1374
- "model_picker_price_category": "high",
1375
- "name": "Claude Opus 4.8",
1376
- "object": "model",
1377
- "policy": {
1378
- "state": "disabled",
1379
- "terms": "Enable access to the latest Claude Opus 4.8 model from Anthropic. [Learn more about how GitHub Copilot serves Claude Opus 4.8](https://gh.io/copilot-claude-opus)."
1380
- },
1381
- "preview": false,
1382
- "supported_endpoints": ["/v1/messages", "/chat/completions"],
1383
- "vendor": "Anthropic",
1384
- "version": "claude-opus-4.8"
1385
- },
1386
- {
1387
- "billing": {
1388
- "restricted_to": [
1389
- "pro",
1390
- "pro_plus",
1391
- "individual_trial",
1392
- "business",
1393
- "enterprise",
1394
- "max"
1395
- ],
1396
- "token_prices": {
1397
- "batch_size": 1e6,
1398
- "default": {
1399
- "cache_price": 30,
1400
- "cache_write_price": 375,
1401
- "context_max": 2e5,
1402
- "input_price": 300,
1403
- "output_price": 1500
1404
- },
1405
- "long_context": {
1406
- "cache_price": 30,
1407
- "cache_write_price": 375,
1408
- "context_max": 936e3,
1409
- "input_price": 300,
1410
- "output_price": 1500
1411
- }
1412
- }
1413
- },
1414
- "capabilities": {
1415
- "family": "claude-sonnet-4.6",
1416
- "limits": {
1417
- "max_context_window_tokens": 1e6,
1418
- "max_non_streaming_output_tokens": 16e3,
1419
- "max_output_tokens": 64e3,
1420
- "max_prompt_tokens": 936e3,
1421
- "vision": {
1422
- "max_prompt_image_size": 3145728,
1423
- "max_prompt_images": 5,
1424
- "supported_media_types": [
1425
- "image/jpeg",
1426
- "image/png",
1427
- "image/webp",
1428
- "image/gif"
1429
- ]
1430
- }
1431
- },
1432
- "object": "model_capabilities",
1433
- "supports": {
1434
- "adaptive_thinking": true,
1435
- "max_thinking_budget": 32e3,
1436
- "min_thinking_budget": 1024,
1437
- "parallel_tool_calls": true,
1438
- "reasoning_effort": [
1439
- "low",
1440
- "medium",
1441
- "high",
1442
- "max"
1443
- ],
1444
- "streaming": true,
1445
- "structured_outputs": true,
1446
- "tool_calls": true,
1447
- "vision": true
1448
- },
1449
- "tokenizer": "o200k_base",
1450
- "type": "chat"
1451
- },
1452
- "id": "claude-sonnet-4.6",
1453
- "is_chat_default": false,
1454
- "is_chat_fallback": false,
1455
- "model_picker_category": "versatile",
1456
- "model_picker_enabled": true,
1457
- "model_picker_price_category": "medium",
1458
- "name": "Claude Sonnet 4.6",
1459
- "object": "model",
1460
- "policy": {
1461
- "state": "enabled",
1462
- "terms": "Enable access to the latest Claude Sonnet 4.6 model from Anthropic. [Learn more about how GitHub Copilot serves Claude Sonnet 4.6](https://gh.io/copilot-claude-opus)."
1463
- },
1464
- "preview": false,
1465
- "supported_endpoints": ["/chat/completions", "/v1/messages"],
1466
- "vendor": "Anthropic",
1467
- "version": "claude-sonnet-4.6"
1468
- },
1469
- {
1470
- "billing": {
1471
- "restricted_to": [
1472
- "edu",
1473
- "pro",
1474
- "pro_plus",
1475
- "individual_trial",
1476
- "business",
1477
- "enterprise",
1478
- "max"
1479
- ],
1480
- "token_prices": {
1481
- "batch_size": 1e6,
1482
- "default": {
1483
- "cache_price": 20,
1484
- "context_max": 2e5,
1485
- "input_price": 200,
1486
- "output_price": 1200
1487
- },
1488
- "long_context": {
1489
- "cache_price": 40,
1490
- "context_max": 936e3,
1491
- "input_price": 400,
1492
- "output_price": 1800
1493
- }
1494
- }
1495
- },
1496
- "capabilities": {
1497
- "family": "gemini-3.1-pro-preview",
1498
- "limits": {
1499
- "max_context_window_tokens": 1e6,
1500
- "max_output_tokens": 64e3,
1501
- "max_prompt_tokens": 936e3,
1502
- "vision": {
1503
- "max_prompt_image_size": 3145728,
1504
- "max_prompt_images": 10,
1505
- "supported_media_types": [
1506
- "image/jpeg",
1507
- "image/png",
1508
- "image/webp",
1509
- "image/heic",
1510
- "image/heif"
1511
- ]
1512
- }
1513
- },
1514
- "object": "model_capabilities",
1515
- "supports": {
1516
- "max_thinking_budget": 32e3,
1517
- "min_thinking_budget": 256,
1518
- "parallel_tool_calls": true,
1519
- "reasoning_effort": [
1520
- "low",
1521
- "medium",
1522
- "high"
1523
- ],
1524
- "streaming": true,
1525
- "tool_calls": true,
1526
- "vision": true
1527
- },
1528
- "tokenizer": "o200k_base",
1529
- "type": "chat"
1530
- },
1531
- "id": "gemini-3.1-pro-preview",
1532
- "is_chat_default": false,
1533
- "is_chat_fallback": false,
1534
- "model_picker_category": "powerful",
1535
- "model_picker_enabled": true,
1536
- "model_picker_price_category": "medium",
1537
- "name": "Gemini 3.1 Pro",
1538
- "object": "model",
1539
- "policy": {
1540
- "state": "enabled",
1541
- "terms": "Enable access to the latest Gemini 3 Pro model from Google. [Learn more about how GitHub Copilot serves Gemini 3 Pro](https://docs.github.com/en/copilot/reference/ai-models/model-hosting#google-models)."
1542
- },
1543
- "preview": true,
1544
- "supported_endpoints": ["/chat/completions"],
1545
- "vendor": "Google",
1546
- "version": "gemini-3.1-pro-preview"
1547
- },
1548
- {
1549
- "billing": {
1550
- "restricted_to": [
1551
- "pro",
1552
- "pro_plus",
1553
- "business",
1554
- "enterprise",
1555
- "max"
1556
- ],
1557
- "token_prices": {
1558
- "batch_size": 1e6,
1559
- "default": {
1560
- "cache_price": 15,
1561
- "context_max": 2e5,
1562
- "input_price": 150,
1563
- "output_price": 900
1564
- },
1565
- "long_context": {
1566
- "cache_price": 15,
1567
- "context_max": 936e3,
1568
- "input_price": 150,
1569
- "output_price": 900
1570
- }
1571
- }
1572
- },
1573
- "capabilities": {
1574
- "family": "gemini-3.5-flash",
1575
- "limits": {
1576
- "max_context_window_tokens": 1e6,
1577
- "max_output_tokens": 64e3,
1578
- "max_prompt_tokens": 936e3,
1579
- "vision": {
1580
- "max_prompt_image_size": 3145728,
1581
- "max_prompt_images": 10,
1582
- "supported_media_types": [
1583
- "image/jpeg",
1584
- "image/png",
1585
- "image/webp",
1586
- "image/heic",
1587
- "image/heif"
1588
- ]
1589
- }
1590
- },
1591
- "object": "model_capabilities",
1592
- "supports": {
1593
- "max_thinking_budget": 24e3,
1594
- "min_thinking_budget": 256,
1595
- "parallel_tool_calls": true,
1596
- "reasoning_effort": [
1597
- "minimal",
1598
- "low",
1599
- "medium",
1600
- "high"
1601
- ],
1602
- "streaming": true,
1603
- "tool_calls": true,
1604
- "vision": true
1605
- },
1606
- "tokenizer": "o200k_base",
1607
- "type": "chat"
1608
- },
1609
- "id": "gemini-3.5-flash",
1610
- "is_chat_default": false,
1611
- "is_chat_fallback": false,
1612
- "model_picker_category": "lightweight",
1613
- "model_picker_enabled": true,
1614
- "model_picker_price_category": "medium",
1615
- "name": "Gemini 3.5 Flash",
1616
- "object": "model",
1617
- "policy": {
1618
- "state": "enabled",
1619
- "terms": "Enable access to the latest Gemini 3.5 Flash model from Google. [Learn more about how GitHub Copilot serves Gemini 3.5 Flash](https://docs.github.com/en/copilot/reference/ai-models/model-hosting#google-models)."
1620
- },
1621
- "preview": false,
1622
- "supported_endpoints": ["/chat/completions"],
1623
- "vendor": "Google",
1624
- "version": "gemini-3.5-flash"
1625
- },
1626
- {
1627
- "billing": {
1628
- "restricted_to": [
1629
- "pro",
1630
- "edu",
1631
- "pro_plus",
1632
- "individual_trial",
1633
- "business",
1634
- "enterprise",
1635
- "max"
1636
- ],
1637
- "token_prices": {
1638
- "batch_size": 1e6,
1639
- "default": {
1640
- "cache_price": 17,
1641
- "context_max": 272e3,
1642
- "input_price": 175,
1643
- "output_price": 1400
1644
- }
1645
- }
1646
- },
1647
- "capabilities": {
1648
- "family": "gpt-5.3-codex",
1649
- "limits": {
1650
- "max_context_window_tokens": 4e5,
1651
- "max_output_tokens": 128e3,
1652
- "max_prompt_tokens": 272e3,
1653
- "vision": {
1654
- "max_prompt_image_size": 3145728,
1655
- "max_prompt_images": 1,
1656
- "supported_media_types": [
1657
- "image/jpeg",
1658
- "image/png",
1659
- "image/webp",
1660
- "image/gif"
1661
- ]
1662
- }
1663
- },
1664
- "object": "model_capabilities",
1665
- "supports": {
1666
- "parallel_tool_calls": true,
1667
- "reasoning_effort": [
1668
- "low",
1669
- "medium",
1670
- "high",
1671
- "xhigh"
1672
- ],
1673
- "streaming": true,
1674
- "structured_outputs": true,
1675
- "tool_calls": true,
1676
- "vision": true
1677
- },
1678
- "tokenizer": "o200k_base",
1679
- "type": "chat"
1680
- },
1681
- "id": "gpt-5.3-codex",
1682
- "is_chat_default": false,
1683
- "is_chat_fallback": true,
1684
- "model_picker_category": "powerful",
1685
- "model_picker_enabled": true,
1686
- "model_picker_price_category": "medium",
1687
- "name": "GPT-5.3-Codex",
1688
- "object": "model",
1689
- "preview": false,
1690
- "supported_endpoints": ["/responses", "ws:/responses"],
1691
- "vendor": "OpenAI",
1692
- "version": "gpt-5.3-codex"
1693
- },
1694
- {
1695
- "billing": {
1696
- "restricted_to": [
1697
- "pro",
1698
- "pro_plus",
1699
- "individual_trial",
1700
- "edu",
1701
- "business",
1702
- "enterprise",
1703
- "max"
1704
- ],
1705
- "token_prices": {
1706
- "batch_size": 1e6,
1707
- "default": {
1708
- "cache_price": 7,
1709
- "context_max": 272e3,
1710
- "input_price": 75,
1711
- "output_price": 450
1712
- }
1713
- }
1714
- },
1715
- "capabilities": {
1716
- "family": "gpt-5.4-mini",
1717
- "limits": {
1718
- "max_context_window_tokens": 4e5,
1719
- "max_output_tokens": 128e3,
1720
- "max_prompt_tokens": 272e3,
1721
- "vision": {
1722
- "max_prompt_image_size": 3145728,
1723
- "max_prompt_images": 1,
1724
- "supported_media_types": [
1725
- "image/jpeg",
1726
- "image/png",
1727
- "image/webp",
1728
- "image/gif"
1729
- ]
1730
- }
1731
- },
1732
- "object": "model_capabilities",
1733
- "supports": {
1734
- "parallel_tool_calls": true,
1735
- "reasoning_effort": [
1736
- "none",
1737
- "low",
1738
- "medium",
1739
- "high",
1740
- "xhigh"
1741
- ],
1742
- "streaming": true,
1743
- "structured_outputs": true,
1744
- "tool_calls": true,
1745
- "vision": true
1746
- },
1747
- "tokenizer": "o200k_base",
1748
- "type": "chat"
1749
- },
1750
- "id": "gpt-5.4-mini",
1751
- "is_chat_default": false,
1752
- "is_chat_fallback": false,
1753
- "model_picker_category": "lightweight",
1754
- "model_picker_enabled": true,
1755
- "model_picker_price_category": "low",
1756
- "name": "GPT-5.4 mini",
1757
- "object": "model",
1758
- "policy": {
1759
- "state": "enabled",
1760
- "terms": "Enable access to the latest GPT-5.4 mini model from OpenAI. [Learn more about how GitHub Copilot serves GPT-5.4 mini](https://gh.io/copilot-openai)."
1761
- },
1762
- "preview": false,
1763
- "supported_endpoints": ["/responses", "ws:/responses"],
1764
- "vendor": "OpenAI",
1765
- "version": "gpt-5.4-mini"
1766
- },
1767
- {
1768
- "billing": {
1769
- "restricted_to": [
1770
- "pro",
1771
- "pro_plus",
1772
- "individual_trial",
1773
- "business",
1774
- "enterprise",
1775
- "max"
1776
- ],
1777
- "token_prices": {
1778
- "batch_size": 1e6,
1779
- "default": {
1780
- "cache_price": 25,
1781
- "context_max": 272e3,
1782
- "input_price": 250,
1783
- "output_price": 1500
1784
- },
1785
- "long_context": {
1786
- "cache_price": 50,
1787
- "context_max": 922e3,
1788
- "input_price": 500,
1789
- "output_price": 2250
1790
- }
1791
- }
1792
- },
1793
- "capabilities": {
1794
- "family": "gpt-5.4",
1795
- "limits": {
1796
- "max_context_window_tokens": 105e4,
1797
- "max_output_tokens": 128e3,
1798
- "max_prompt_tokens": 922e3,
1799
- "vision": {
1800
- "max_prompt_image_size": 3145728,
1801
- "max_prompt_images": 1,
1802
- "supported_media_types": [
1803
- "image/jpeg",
1804
- "image/png",
1805
- "image/webp",
1806
- "image/gif"
1807
- ]
1808
- }
1809
- },
1810
- "object": "model_capabilities",
1811
- "supports": {
1812
- "parallel_tool_calls": true,
1813
- "reasoning_effort": [
1814
- "none",
1815
- "low",
1816
- "medium",
1817
- "high",
1818
- "xhigh"
1819
- ],
1820
- "streaming": true,
1821
- "structured_outputs": true,
1822
- "tool_calls": true,
1823
- "vision": true
1824
- },
1825
- "tokenizer": "o200k_base",
1826
- "type": "chat"
1827
- },
1828
- "id": "gpt-5.4",
1829
- "is_chat_default": false,
1830
- "is_chat_fallback": false,
1831
- "model_picker_category": "powerful",
1832
- "model_picker_enabled": true,
1833
- "model_picker_price_category": "medium",
1834
- "name": "GPT-5.4",
1835
- "object": "model",
1836
- "policy": {
1837
- "state": "enabled",
1838
- "terms": "Enable access to the latest GPT-5.4 model from OpenAI. [Learn more about how GitHub Copilot serves GPT-5.4](https://gh.io/copilot-openai)."
1839
- },
1840
- "preview": false,
1841
- "supported_endpoints": [
1842
- "/responses",
1843
- "/chat/completions",
1844
- "ws:/responses"
1845
- ],
1846
- "vendor": "OpenAI",
1847
- "version": "gpt-5.4"
1848
- },
1849
- {
1850
- "billing": {
1851
- "restricted_to": [
1852
- "pro_plus",
1853
- "business",
1854
- "enterprise",
1855
- "max"
1856
- ],
1857
- "token_prices": {
1858
- "batch_size": 1e6,
1859
- "default": {
1860
- "cache_price": 50,
1861
- "context_max": 272e3,
1862
- "input_price": 500,
1863
- "output_price": 3e3
1864
- },
1865
- "long_context": {
1866
- "cache_price": 100,
1867
- "context_max": 922e3,
1868
- "input_price": 1e3,
1869
- "output_price": 4500
1870
- }
1871
- }
1872
- },
1873
- "capabilities": {
1874
- "family": "gpt-5.5",
1875
- "limits": {
1876
- "max_context_window_tokens": 105e4,
1877
- "max_output_tokens": 128e3,
1878
- "max_prompt_tokens": 922e3,
1879
- "vision": {
1880
- "max_prompt_image_size": 3145728,
1881
- "max_prompt_images": 1,
1882
- "supported_media_types": [
1883
- "image/jpeg",
1884
- "image/png",
1885
- "image/webp",
1886
- "image/gif"
1887
- ]
1888
- }
1889
- },
1890
- "object": "model_capabilities",
1891
- "supports": {
1892
- "parallel_tool_calls": true,
1893
- "reasoning_effort": [
1894
- "none",
1895
- "low",
1896
- "medium",
1897
- "high",
1898
- "xhigh"
1899
- ],
1900
- "streaming": true,
1901
- "structured_outputs": true,
1902
- "tool_calls": true,
1903
- "vision": true
1904
- },
1905
- "tokenizer": "o200k_base",
1906
- "type": "chat"
1907
- },
1908
- "id": "gpt-5.5",
1909
- "is_chat_default": false,
1910
- "is_chat_fallback": false,
1911
- "model_picker_category": "powerful",
1912
- "model_picker_enabled": false,
1913
- "model_picker_price_category": "high",
1914
- "name": "GPT-5.5",
1915
- "object": "model",
1916
- "policy": {
1917
- "state": "disabled",
1918
- "terms": "Enable access to the latest GPT-5.5 model from OpenAI. [Learn more about how GitHub Copilot serves GPT-5.5](https://gh.io/copilot-openai)."
1919
- },
1920
- "preview": false,
1921
- "supported_endpoints": ["/responses", "ws:/responses"],
1922
- "vendor": "OpenAI",
1923
- "version": "gpt-5.5"
1924
- },
1925
- {
1926
- "billing": {
1927
- "restricted_to": [
1928
- "free",
1929
- "edu",
1930
- "pro",
1931
- "pro_plus",
1932
- "max"
1933
- ],
1934
- "token_prices": {
1935
- "batch_size": 1e6,
1936
- "default": {
1937
- "cache_price": 7,
1938
- "context_max": 128e3,
1939
- "input_price": 75,
1940
- "output_price": 450
1941
- }
1942
- }
1943
- },
1944
- "capabilities": {
1945
- "family": "oswe-vscode-modelD",
1946
- "limits": {
1947
- "max_context_window_tokens": 256e3,
1948
- "max_output_tokens": 128e3,
1949
- "max_prompt_tokens": 128e3
1950
- },
1951
- "object": "model_capabilities",
1952
- "supports": {
1953
- "parallel_tool_calls": true,
1954
- "reasoning_effort": [
1955
- "low",
1956
- "medium",
1957
- "high"
1958
- ],
1959
- "streaming": true,
1960
- "structured_outputs": true,
1961
- "tool_calls": true
1962
- },
1963
- "tokenizer": "o200k_base",
1964
- "type": "chat"
1965
- },
1966
- "id": "mai-code-1-flash-picker",
1967
- "is_chat_default": false,
1968
- "is_chat_fallback": false,
1969
- "model_picker_category": "versatile",
1970
- "model_picker_enabled": true,
1971
- "model_picker_price_category": "low",
1972
- "name": "MAI-Code-1-Flash",
1973
- "object": "model",
1974
- "policy": {
1975
- "state": "enabled",
1976
- "terms": ""
1977
- },
1978
- "preview": false,
1979
- "supported_endpoints": ["/responses"],
1980
- "vendor": "Azure OpenAI",
1981
- "version": "mai-code-1-flash-picker"
1982
- },
1983
- {
1984
- "billing": { "token_prices": {
1985
- "batch_size": 0,
1986
- "default": {
1987
- "cache_price": 0,
1988
- "input_price": 0,
1989
- "output_price": 0
1990
- }
1991
- } },
1992
- "capabilities": {
1993
- "family": "trajectory-compaction",
1994
- "limits": {
1995
- "max_context_window_tokens": 262144,
1996
- "max_output_tokens": 16384,
1997
- "max_prompt_tokens": 245760
1998
- },
1999
- "object": "model_capabilities",
2000
- "supports": {
2001
- "parallel_tool_calls": true,
2002
- "streaming": true,
2003
- "tool_calls": true
2004
- },
2005
- "tokenizer": "o200k_base",
2006
- "type": "chat"
2007
- },
2008
- "id": "trajectory-compaction",
2009
- "is_chat_default": false,
2010
- "is_chat_fallback": false,
2011
- "model_picker_enabled": false,
2012
- "model_picker_price_category": "low",
2013
- "name": "Trajectory Compaction",
2014
- "object": "model",
2015
- "preview": true,
2016
- "supported_endpoints": ["/chat/completions"],
2017
- "vendor": "Experimental",
2018
- "version": "trajectory-compaction"
2019
- },
2020
- {
2021
- "billing": { "token_prices": {
2022
- "batch_size": 1e6,
2023
- "default": {
2024
- "cache_price": 2,
2025
- "input_price": 25,
2026
- "output_price": 200
2027
- }
2028
- } },
2029
- "capabilities": {
2030
- "family": "gpt-5-mini",
2031
- "limits": {
2032
- "max_context_window_tokens": 264e3,
2033
- "max_output_tokens": 64e3,
2034
- "max_prompt_tokens": 128e3,
2035
- "vision": {
2036
- "max_prompt_image_size": 3145728,
2037
- "max_prompt_images": 1,
2038
- "supported_media_types": [
2039
- "image/jpeg",
2040
- "image/png",
2041
- "image/webp",
2042
- "image/gif"
2043
- ]
2044
- }
2045
- },
2046
- "object": "model_capabilities",
2047
- "supports": {
2048
- "parallel_tool_calls": true,
2049
- "reasoning_effort": [
2050
- "low",
2051
- "medium",
2052
- "high"
2053
- ],
2054
- "streaming": true,
2055
- "structured_outputs": true,
2056
- "tool_calls": true,
2057
- "vision": true
2058
- },
2059
- "tokenizer": "o200k_base",
2060
- "type": "chat"
2061
- },
2062
- "id": "gpt-5-mini",
2063
- "is_chat_default": true,
2064
- "is_chat_fallback": false,
2065
- "model_picker_category": "lightweight",
2066
- "model_picker_enabled": true,
2067
- "model_picker_price_category": "low",
2068
- "name": "GPT-5 mini",
2069
- "object": "model",
2070
- "policy": {
2071
- "state": "enabled",
2072
- "terms": "Enable access to the latest GPT-5 mini model from OpenAI. [Learn more about how GitHub Copilot serves GPT-5 mini](https://gh.io/copilot-openai)."
2073
- },
2074
- "preview": false,
2075
- "supported_endpoints": [
2076
- "/chat/completions",
2077
- "/responses",
2078
- "ws:/responses"
2079
- ],
2080
- "vendor": "Azure OpenAI",
2081
- "version": "gpt-5-mini"
2082
- },
2083
- {
2084
- "billing": { "token_prices": {
2085
- "batch_size": 0,
2086
- "default": {
2087
- "cache_price": 0,
2088
- "input_price": 0,
2089
- "output_price": 0
2090
- }
2091
- } },
2092
- "capabilities": {
2093
- "family": "gpt-4o-mini",
2094
- "limits": {
2095
- "max_context_window_tokens": 128e3,
2096
- "max_output_tokens": 4096,
2097
- "max_prompt_tokens": 12288
2098
- },
2099
- "object": "model_capabilities",
2100
- "supports": {
2101
- "parallel_tool_calls": true,
2102
- "streaming": true,
2103
- "tool_calls": true
2104
- },
2105
- "tokenizer": "o200k_base",
2106
- "type": "chat"
2107
- },
2108
- "id": "gpt-4o-mini-2024-07-18",
2109
- "is_chat_default": false,
2110
- "is_chat_fallback": false,
2111
- "model_picker_enabled": false,
2112
- "model_picker_price_category": "low",
2113
- "name": "GPT-4o mini",
2114
- "object": "model",
2115
- "preview": false,
2116
- "vendor": "Azure OpenAI",
2117
- "version": "gpt-4o-mini-2024-07-18"
2118
- },
2119
- {
2120
- "billing": { "token_prices": {
2121
- "batch_size": 0,
2122
- "default": {
2123
- "cache_price": 0,
2124
- "input_price": 0,
2125
- "output_price": 0
2126
- }
2127
- } },
2128
- "capabilities": {
2129
- "family": "gpt-4o",
2130
- "limits": {
2131
- "max_context_window_tokens": 128e3,
2132
- "max_output_tokens": 16384,
2133
- "max_prompt_tokens": 64e3
2134
- },
2135
- "object": "model_capabilities",
2136
- "supports": {
2137
- "parallel_tool_calls": true,
2138
- "streaming": true,
2139
- "tool_calls": true
2140
- },
2141
- "tokenizer": "o200k_base",
2142
- "type": "chat"
2143
- },
2144
- "id": "gpt-4o-2024-11-20",
2145
- "is_chat_default": false,
2146
- "is_chat_fallback": false,
2147
- "model_picker_enabled": false,
2148
- "model_picker_price_category": "medium",
2149
- "name": "GPT-4o",
2150
- "object": "model",
2151
- "preview": false,
2152
- "vendor": "Azure OpenAI",
2153
- "version": "gpt-4o-2024-11-20"
2154
- },
2155
- {
2156
- "billing": { "token_prices": {
2157
- "batch_size": 0,
2158
- "default": {
2159
- "cache_price": 0,
2160
- "input_price": 0,
2161
- "output_price": 0
2162
- }
2163
- } },
2164
- "capabilities": {
2165
- "family": "gpt-4o",
2166
- "limits": {
2167
- "max_context_window_tokens": 128e3,
2168
- "max_output_tokens": 16384,
2169
- "max_prompt_tokens": 64e3
2170
- },
2171
- "object": "model_capabilities",
2172
- "supports": {
2173
- "parallel_tool_calls": true,
2174
- "streaming": true,
2175
- "tool_calls": true
2176
- },
2177
- "tokenizer": "o200k_base",
2178
- "type": "chat"
2179
- },
2180
- "id": "gpt-4o-2024-08-06",
2181
- "is_chat_default": false,
2182
- "is_chat_fallback": false,
2183
- "model_picker_enabled": false,
2184
- "model_picker_price_category": "high",
2185
- "name": "GPT-4o",
2186
- "object": "model",
2187
- "preview": false,
2188
- "vendor": "Azure OpenAI",
2189
- "version": "gpt-4o-2024-08-06"
2190
- },
2191
- {
2192
- "billing": { "token_prices": {
2193
- "batch_size": 0,
2194
- "default": {
2195
- "cache_price": 0,
2196
- "input_price": 0,
2197
- "output_price": 0
2198
- }
2199
- } },
2200
- "capabilities": {
2201
- "family": "text-embedding-3-small",
2202
- "limits": { "max_inputs": 512 },
2203
- "object": "model_capabilities",
2204
- "supports": { "dimensions": true },
2205
- "tokenizer": "cl100k_base",
2206
- "type": "embeddings"
2207
- },
2208
- "id": "text-embedding-3-small",
2209
- "is_chat_default": false,
2210
- "is_chat_fallback": false,
2211
- "model_picker_enabled": false,
2212
- "name": "Embedding V3 small",
2213
- "object": "model",
2214
- "preview": false,
2215
- "vendor": "Azure OpenAI",
2216
- "version": "text-embedding-3-small"
2217
- },
2218
- {
2219
- "billing": { "token_prices": {
2220
- "batch_size": 0,
2221
- "default": {
2222
- "cache_price": 0,
2223
- "input_price": 0,
2224
- "output_price": 0
2225
- }
2226
- } },
2227
- "capabilities": {
2228
- "family": "text-embedding-3-small",
2229
- "object": "model_capabilities",
2230
- "supports": { "dimensions": true },
2231
- "tokenizer": "cl100k_base",
2232
- "type": "embeddings"
2233
- },
2234
- "id": "text-embedding-3-small-inference",
2235
- "is_chat_default": false,
2236
- "is_chat_fallback": false,
2237
- "model_picker_enabled": false,
2238
- "name": "Embedding V3 small (Inference)",
2239
- "object": "model",
2240
- "preview": false,
2241
- "vendor": "Azure OpenAI",
2242
- "version": "text-embedding-3-small"
2243
- },
2244
- {
2245
- "billing": {
2246
- "restricted_to": [
2247
- "pro",
2248
- "pro_plus",
2249
- "max",
2250
- "business",
2251
- "enterprise"
2252
- ],
2253
- "token_prices": {
2254
- "batch_size": 1e6,
2255
- "default": {
2256
- "cache_price": 30,
2257
- "cache_write_price": 375,
2258
- "input_price": 300,
2259
- "output_price": 1500
2260
- }
2261
- }
2262
- },
2263
- "capabilities": {
2264
- "family": "claude-sonnet-4.5",
2265
- "limits": {
2266
- "max_context_window_tokens": 2e5,
2267
- "max_non_streaming_output_tokens": 16e3,
2268
- "max_output_tokens": 32e3,
2269
- "max_prompt_tokens": 128e3,
2270
- "vision": {
2271
- "max_prompt_image_size": 3145728,
2272
- "max_prompt_images": 5,
2273
- "supported_media_types": [
2274
- "image/jpeg",
2275
- "image/png",
2276
- "image/webp"
2277
- ]
2278
- }
2279
- },
2280
- "object": "model_capabilities",
2281
- "supports": {
2282
- "max_thinking_budget": 32e3,
2283
- "min_thinking_budget": 1024,
2284
- "parallel_tool_calls": true,
2285
- "streaming": true,
2286
- "tool_calls": true,
2287
- "vision": true
2288
- },
2289
- "tokenizer": "o200k_base",
2290
- "type": "chat"
2291
- },
2292
- "id": "claude-sonnet-4.5",
2293
- "is_chat_default": false,
2294
- "is_chat_fallback": false,
2295
- "model_picker_category": "versatile",
2296
- "model_picker_enabled": true,
2297
- "model_picker_price_category": "medium",
2298
- "name": "Claude Sonnet 4.5",
2299
- "object": "model",
2300
- "policy": {
2301
- "state": "enabled",
2302
- "terms": "Enable access to the latest Claude Sonnet 4.5 model from Anthropic. [Learn more about how GitHub Copilot serves Claude Sonnet 4.5](https://docs.github.com/en/copilot/using-github-copilot/ai-models/using-claude-sonnet-in-github-copilot)."
2303
- },
2304
- "preview": false,
2305
- "supported_endpoints": ["/chat/completions", "/v1/messages"],
2306
- "vendor": "Anthropic",
2307
- "version": "claude-sonnet-4.5"
2308
- },
2309
- {
2310
- "billing": {
2311
- "restricted_to": [
2312
- "max",
2313
- "business",
2314
- "enterprise"
2315
- ],
2316
- "token_prices": {
2317
- "batch_size": 1e6,
2318
- "default": {
2319
- "cache_price": 50,
2320
- "cache_write_price": 625,
2321
- "input_price": 500,
2322
- "output_price": 2500
2323
- }
2324
- }
2325
- },
2326
- "capabilities": {
2327
- "family": "claude-opus-4.5",
2328
- "limits": {
2329
- "max_context_window_tokens": 2e5,
2330
- "max_non_streaming_output_tokens": 16e3,
2331
- "max_output_tokens": 32e3,
2332
- "max_prompt_tokens": 128e3,
2333
- "vision": {
2334
- "max_prompt_image_size": 3145728,
2335
- "max_prompt_images": 5,
2336
- "supported_media_types": [
2337
- "image/jpeg",
2338
- "image/png",
2339
- "image/webp"
2340
- ]
2341
- }
2342
- },
2343
- "object": "model_capabilities",
2344
- "supports": {
2345
- "max_thinking_budget": 32e3,
2346
- "min_thinking_budget": 1024,
2347
- "parallel_tool_calls": true,
2348
- "streaming": true,
2349
- "tool_calls": true,
2350
- "vision": true
2351
- },
2352
- "tokenizer": "o200k_base",
2353
- "type": "chat"
2354
- },
2355
- "id": "claude-opus-4.5",
2356
- "is_chat_default": false,
2357
- "is_chat_fallback": false,
2358
- "model_picker_category": "powerful",
2359
- "model_picker_enabled": false,
2360
- "model_picker_price_category": "high",
2361
- "name": "Claude Opus 4.5",
2362
- "object": "model",
2363
- "policy": {
2364
- "state": "enabled",
2365
- "terms": "Enable access to the latest Claude Opus 4.5 model from Anthropic. [Learn more about how GitHub Copilot serves Claude Opus 4.5](https://gh.io/copilot-anthropic)."
2366
- },
2367
- "preview": false,
2368
- "supported_endpoints": ["/chat/completions", "/v1/messages"],
2369
- "vendor": "Anthropic",
2370
- "version": "claude-opus-4.5"
2371
- },
2372
- {
2373
- "billing": { "token_prices": {
2374
- "batch_size": 1e6,
2375
- "default": {
2376
- "cache_price": 10,
2377
- "cache_write_price": 125,
2378
- "input_price": 100,
2379
- "output_price": 500
2380
- }
2381
- } },
2382
- "capabilities": {
2383
- "family": "claude-haiku-4.5",
2384
- "limits": {
2385
- "max_context_window_tokens": 2e5,
2386
- "max_non_streaming_output_tokens": 16e3,
2387
- "max_output_tokens": 32e3,
2388
- "max_prompt_tokens": 128e3,
2389
- "vision": {
2390
- "max_prompt_image_size": 3145728,
2391
- "max_prompt_images": 5,
2392
- "supported_media_types": [
2393
- "image/jpeg",
2394
- "image/png",
2395
- "image/webp"
2396
- ]
2397
- }
2398
- },
2399
- "object": "model_capabilities",
2400
- "supports": {
2401
- "max_thinking_budget": 32e3,
2402
- "min_thinking_budget": 1024,
2403
- "parallel_tool_calls": true,
2404
- "streaming": true,
2405
- "tool_calls": true,
2406
- "vision": true
2407
- },
2408
- "tokenizer": "o200k_base",
2409
- "type": "chat"
2410
- },
2411
- "id": "claude-haiku-4.5",
2412
- "is_chat_default": false,
2413
- "is_chat_fallback": false,
2414
- "model_picker_category": "lightweight",
2415
- "model_picker_enabled": true,
2416
- "model_picker_price_category": "low",
2417
- "name": "Claude Haiku 4.5",
2418
- "object": "model",
2419
- "policy": {
2420
- "state": "enabled",
2421
- "terms": "Enable access to the latest Claude Haiku 4.5 model from Anthropic. [Learn more about how GitHub Copilot serves Claude Haiku 4.5](https://gh.io/copilot-anthropic)."
2422
- },
2423
- "preview": false,
2424
- "supported_endpoints": ["/chat/completions", "/v1/messages"],
2425
- "vendor": "Anthropic",
2426
- "version": "claude-haiku-4.5"
2427
- },
2428
- {
2429
- "billing": {
2430
- "restricted_to": [
2431
- "pro",
2432
- "pro_plus",
2433
- "max",
2434
- "business",
2435
- "enterprise",
2436
- "individual_trial",
2437
- "edu"
2438
- ],
2439
- "token_prices": {
2440
- "batch_size": 1e6,
2441
- "default": {
2442
- "cache_price": 5,
2443
- "input_price": 50,
2444
- "output_price": 300
2445
- }
2446
- }
2447
- },
2448
- "capabilities": {
2449
- "family": "gemini-3-flash",
2450
- "limits": {
2451
- "max_context_window_tokens": 128e3,
2452
- "max_output_tokens": 64e3,
2453
- "max_prompt_tokens": 128e3,
2454
- "vision": {
2455
- "max_prompt_image_size": 3145728,
2456
- "max_prompt_images": 10,
2457
- "supported_media_types": [
2458
- "image/jpeg",
2459
- "image/png",
2460
- "image/webp",
2461
- "image/heic",
2462
- "image/heif"
2463
- ]
2464
- }
2465
- },
2466
- "object": "model_capabilities",
2467
- "supports": {
2468
- "max_thinking_budget": 32e3,
2469
- "min_thinking_budget": 256,
2470
- "parallel_tool_calls": true,
2471
- "reasoning_effort": [
2472
- "low",
2473
- "medium",
2474
- "high"
2475
- ],
2476
- "streaming": true,
2477
- "tool_calls": true,
2478
- "vision": true
2479
- },
2480
- "tokenizer": "o200k_base",
2481
- "type": "chat"
2482
- },
2483
- "id": "gemini-3-flash-preview",
2484
- "is_chat_default": false,
2485
- "is_chat_fallback": false,
2486
- "model_picker_category": "lightweight",
2487
- "model_picker_enabled": true,
2488
- "model_picker_price_category": "low",
2489
- "name": "Gemini 3 Flash (Preview)",
2490
- "object": "model",
2491
- "policy": {
2492
- "state": "enabled",
2493
- "terms": "Enable access to the latest Gemini 3 Flash model from Google. [Learn more about how GitHub Copilot serves Gemini 3 Flash](https://docs.github.com/en/copilot/reference/ai-models/model-hosting#google-models)"
2494
- },
2495
- "preview": true,
2496
- "vendor": "Google",
2497
- "version": "gemini-3-flash-preview"
2498
- },
2499
- {
2500
- "billing": {
2501
- "restricted_to": [
2502
- "pro",
2503
- "pro_plus",
2504
- "max",
2505
- "business",
2506
- "enterprise",
2507
- "individual_trial",
2508
- "edu"
2509
- ],
2510
- "token_prices": {
2511
- "batch_size": 1e6,
2512
- "default": {
2513
- "cache_price": 12,
2514
- "input_price": 125,
2515
- "output_price": 1e3
2516
- }
2517
- }
2518
- },
2519
- "capabilities": {
2520
- "family": "gemini-2.5-pro",
2521
- "limits": {
2522
- "max_context_window_tokens": 128e3,
2523
- "max_output_tokens": 64e3,
2524
- "max_prompt_tokens": 128e3,
2525
- "vision": {
2526
- "max_prompt_image_size": 3145728,
2527
- "max_prompt_images": 10,
2528
- "supported_media_types": [
2529
- "image/jpeg",
2530
- "image/png",
2531
- "image/webp",
2532
- "image/heic",
2533
- "image/heif"
2534
- ]
2535
- }
2536
- },
2537
- "object": "model_capabilities",
2538
- "supports": {
2539
- "max_thinking_budget": 32768,
2540
- "min_thinking_budget": 128,
2541
- "parallel_tool_calls": true,
2542
- "streaming": true,
2543
- "tool_calls": true,
2544
- "vision": true
2545
- },
2546
- "tokenizer": "o200k_base",
2547
- "type": "chat"
2548
- },
2549
- "id": "gemini-2.5-pro",
2550
- "is_chat_default": false,
2551
- "is_chat_fallback": false,
2552
- "model_picker_category": "powerful",
2553
- "model_picker_enabled": true,
2554
- "model_picker_price_category": "medium",
2555
- "name": "Gemini 2.5 Pro",
2556
- "object": "model",
2557
- "policy": {
2558
- "state": "enabled",
2559
- "terms": "Enable access to the latest Gemini 2.5 Pro model from Google. [Learn more about how GitHub Copilot serves Gemini 2.5 Pro](https://docs.github.com/en/copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task#gemini-25-pro)."
2560
- },
2561
- "preview": false,
2562
- "vendor": "Google",
2563
- "version": "gemini-2.5-pro"
2564
- },
2565
- {
2566
- "billing": { "token_prices": {
2567
- "batch_size": 0,
2568
- "default": {
2569
- "cache_price": 0,
2570
- "input_price": 0,
2571
- "output_price": 0
2572
- }
2573
- } },
2574
- "capabilities": {
2575
- "family": "gpt-4.1",
2576
- "limits": {
2577
- "max_context_window_tokens": 128e3,
2578
- "max_output_tokens": 16384,
2579
- "max_prompt_tokens": 128e3,
2580
- "vision": {
2581
- "max_prompt_image_size": 3145728,
2582
- "max_prompt_images": 1,
2583
- "supported_media_types": [
2584
- "image/jpeg",
2585
- "image/png",
2586
- "image/webp",
2587
- "image/gif"
2588
- ]
2589
- }
2590
- },
2591
- "object": "model_capabilities",
2592
- "supports": {
2593
- "parallel_tool_calls": true,
2594
- "streaming": true,
2595
- "structured_outputs": true,
2596
- "tool_calls": true,
2597
- "vision": true
2598
- },
2599
- "tokenizer": "o200k_base",
2600
- "type": "chat"
2601
- },
2602
- "id": "gpt-4.1-2025-04-14",
2603
- "is_chat_default": false,
2604
- "is_chat_fallback": false,
2605
- "model_picker_enabled": false,
2606
- "model_picker_price_category": "medium",
2607
- "name": "GPT-4.1",
2608
- "object": "model",
2609
- "policy": {
2610
- "state": "enabled",
2611
- "terms": "Enable access to the latest GPT-4.1 model from OpenAI. [Learn more about how GitHub Copilot serves GPT-4.1](https://docs.github.com/en/copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task#gpt-41)."
2612
- },
2613
- "preview": false,
2614
- "vendor": "Azure OpenAI",
2615
- "version": "gpt-4.1-2025-04-14"
2616
- },
2617
- {
2618
- "billing": { "token_prices": {
2619
- "batch_size": 1e6,
2620
- "default": {
2621
- "cache_price": 2,
2622
- "input_price": 25,
2623
- "output_price": 200
2624
- }
2625
- } },
2626
- "capabilities": {
2627
- "family": "oswe-vscode",
2628
- "limits": {
2629
- "max_context_window_tokens": 264e3,
2630
- "max_output_tokens": 64e3,
2631
- "max_prompt_tokens": 2e5,
2632
- "vision": {
2633
- "max_prompt_image_size": 3145728,
2634
- "max_prompt_images": 1,
2635
- "supported_media_types": [
2636
- "image/jpeg",
2637
- "image/png",
2638
- "image/webp",
2639
- "image/gif"
2640
- ]
2641
- }
2642
- },
2643
- "object": "model_capabilities",
2644
- "supports": {
2645
- "parallel_tool_calls": true,
2646
- "streaming": true,
2647
- "structured_outputs": true,
2648
- "tool_calls": true,
2649
- "vision": true
2650
- },
2651
- "tokenizer": "o200k_base",
2652
- "type": "chat"
2653
- },
2654
- "id": "oswe-vscode-prime",
2655
- "is_chat_default": false,
2656
- "is_chat_fallback": false,
2657
- "model_picker_category": "versatile",
2658
- "model_picker_enabled": true,
2659
- "model_picker_price_category": "low",
2660
- "name": "Raptor mini (Preview)",
2661
- "object": "model",
2662
- "policy": {
2663
- "state": "enabled",
2664
- "terms": "Enable access to the latest Raptor mini model from Microsoft. [Learn more about how GitHub Copilot serves Raptor mini](https://gh.io/copilot-openai-fine-tuned-by-microsoft)."
2665
- },
2666
- "preview": true,
2667
- "supported_endpoints": ["/chat/completions", "/responses"],
2668
- "vendor": "Azure OpenAI",
2669
- "version": "raptor-mini"
2670
- },
2671
- {
2672
- "billing": { "token_prices": {
2673
- "batch_size": 1e6,
2674
- "default": {
2675
- "cache_price": 50,
2676
- "input_price": 200,
2677
- "output_price": 800
2678
- }
2679
- } },
2680
- "capabilities": {
2681
- "family": "gpt-4.1",
2682
- "object": "model_capabilities",
2683
- "supports": { "streaming": true },
2684
- "tokenizer": "o200k_base",
2685
- "type": "completion"
2686
- },
2687
- "id": "gpt-41-copilot",
2688
- "is_chat_default": false,
2689
- "is_chat_fallback": false,
2690
- "model_picker_category": "versatile",
2691
- "model_picker_enabled": false,
2692
- "model_picker_price_category": "medium",
2693
- "name": "GPT-4.1 Copilot",
2694
- "object": "model",
2695
- "preview": false,
2696
- "vendor": "Azure OpenAI",
2697
- "version": "gpt-41-copilot"
2698
- },
2699
- {
2700
- "billing": { "token_prices": {
2701
- "batch_size": 0,
2702
- "default": {
2703
- "cache_price": 0,
2704
- "input_price": 0,
2705
- "output_price": 0
2706
- }
2707
- } },
2708
- "capabilities": {
2709
- "family": "gpt-3.5-turbo",
2710
- "limits": {
2711
- "max_context_window_tokens": 16384,
2712
- "max_output_tokens": 4096,
2713
- "max_prompt_tokens": 12288
2714
- },
2715
- "object": "model_capabilities",
2716
- "supports": {
2717
- "streaming": true,
2718
- "tool_calls": true
2719
- },
2720
- "tokenizer": "cl100k_base",
2721
- "type": "chat"
2722
- },
2723
- "id": "gpt-3.5-turbo-0613",
2724
- "is_chat_default": false,
2725
- "is_chat_fallback": false,
2726
- "model_picker_enabled": false,
2727
- "model_picker_price_category": "medium",
2728
- "name": "GPT 3.5 Turbo",
2729
- "object": "model",
2730
- "preview": false,
2731
- "vendor": "Azure OpenAI",
2732
- "version": "gpt-3.5-turbo-0613"
2733
- },
2734
- {
2735
- "billing": { "token_prices": {
2736
- "batch_size": 1e6,
2737
- "default": {
2738
- "cache_price": 125,
2739
- "input_price": 250,
2740
- "output_price": 1e3
2741
- }
2742
- } },
2743
- "capabilities": {
2744
- "family": "gpt-4",
2745
- "limits": {
2746
- "max_context_window_tokens": 32768,
2747
- "max_output_tokens": 4096,
2748
- "max_prompt_tokens": 32768
2749
- },
2750
- "object": "model_capabilities",
2751
- "supports": {
2752
- "streaming": true,
2753
- "tool_calls": true
2754
- },
2755
- "tokenizer": "cl100k_base",
2756
- "type": "chat"
2757
- },
2758
- "id": "gpt-4",
2759
- "is_chat_default": false,
2760
- "is_chat_fallback": false,
2761
- "model_picker_enabled": false,
2762
- "model_picker_price_category": "medium",
2763
- "name": "GPT 4",
2764
- "object": "model",
2765
- "preview": false,
2766
- "vendor": "Azure OpenAI",
2767
- "version": "gpt-4-0613"
2768
- },
2769
- {
2770
- "billing": { "token_prices": {
2771
- "batch_size": 1e6,
2772
- "default": {
2773
- "cache_price": 125,
2774
- "input_price": 250,
2775
- "output_price": 1e3
2776
- }
2777
- } },
2778
- "capabilities": {
2779
- "family": "gpt-4",
2780
- "limits": {
2781
- "max_context_window_tokens": 32768,
2782
- "max_output_tokens": 4096,
2783
- "max_prompt_tokens": 32768
2784
- },
2785
- "object": "model_capabilities",
2786
- "supports": {
2787
- "streaming": true,
2788
- "tool_calls": true
2789
- },
2790
- "tokenizer": "cl100k_base",
2791
- "type": "chat"
2792
- },
2793
- "id": "gpt-4-0613",
2794
- "is_chat_default": false,
2795
- "is_chat_fallback": false,
2796
- "model_picker_enabled": false,
2797
- "model_picker_price_category": "medium",
2798
- "name": "GPT 4",
2799
- "object": "model",
2800
- "preview": false,
2801
- "vendor": "Azure OpenAI",
2802
- "version": "gpt-4-0613"
2803
- },
2804
- {
2805
- "billing": { "token_prices": {
2806
- "batch_size": 1e6,
2807
- "default": {
2808
- "cache_price": 0,
2809
- "input_price": 1e3,
2810
- "output_price": 3e3
2811
- }
2812
- } },
2813
- "capabilities": {
2814
- "family": "gpt-4-turbo",
2815
- "limits": {
2816
- "max_context_window_tokens": 128e3,
2817
- "max_output_tokens": 4096,
2818
- "max_prompt_tokens": 64e3
2819
- },
2820
- "object": "model_capabilities",
2821
- "supports": {
2822
- "parallel_tool_calls": true,
2823
- "streaming": true,
2824
- "tool_calls": true
2825
- },
2826
- "tokenizer": "cl100k_base",
2827
- "type": "chat"
2828
- },
2829
- "id": "gpt-4-0125-preview",
2830
- "is_chat_default": false,
2831
- "is_chat_fallback": false,
2832
- "model_picker_enabled": false,
2833
- "model_picker_price_category": "very_high",
2834
- "name": "GPT 4 Turbo",
2835
- "object": "model",
2836
- "preview": false,
2837
- "vendor": "Azure OpenAI",
2838
- "version": "gpt-4-0125-preview"
2839
- },
2840
- {
2841
- "billing": { "token_prices": {
2842
- "batch_size": 0,
2843
- "default": {
2844
- "cache_price": 0,
2845
- "input_price": 0,
2846
- "output_price": 0
2847
- }
2848
- } },
2849
- "capabilities": {
2850
- "family": "gpt-4o",
2851
- "limits": {
2852
- "max_context_window_tokens": 128e3,
2853
- "max_output_tokens": 4096,
2854
- "max_prompt_tokens": 64e3,
2855
- "vision": {
2856
- "max_prompt_image_size": 3145728,
2857
- "max_prompt_images": 1,
2858
- "supported_media_types": [
2859
- "image/jpeg",
2860
- "image/png",
2861
- "image/webp",
2862
- "image/gif"
2863
- ]
2864
- }
2865
- },
2866
- "object": "model_capabilities",
2867
- "supports": {
2868
- "parallel_tool_calls": true,
2869
- "streaming": true,
2870
- "tool_calls": true,
2871
- "vision": true
2872
- },
2873
- "tokenizer": "o200k_base",
2874
- "type": "chat"
2875
- },
2876
- "id": "gpt-4o-2024-05-13",
2877
- "is_chat_default": false,
2878
- "is_chat_fallback": false,
2879
- "model_picker_enabled": false,
2880
- "model_picker_price_category": "medium",
2881
- "name": "GPT-4o",
2882
- "object": "model",
2883
- "preview": false,
2884
- "vendor": "Azure OpenAI",
2885
- "version": "gpt-4o-2024-05-13"
2886
- },
2887
- {
2888
- "billing": { "token_prices": {
2889
- "batch_size": 0,
2890
- "default": {
2891
- "cache_price": 0,
2892
- "input_price": 0,
2893
- "output_price": 0
2894
- }
2895
- } },
2896
- "capabilities": {
2897
- "family": "gpt-4o",
2898
- "limits": {
2899
- "max_context_window_tokens": 128e3,
2900
- "max_output_tokens": 4096,
2901
- "max_prompt_tokens": 64e3
2902
- },
2903
- "object": "model_capabilities",
2904
- "supports": {
2905
- "parallel_tool_calls": true,
2906
- "streaming": true,
2907
- "tool_calls": true
2908
- },
2909
- "tokenizer": "o200k_base",
2910
- "type": "chat"
2911
- },
2912
- "id": "gpt-4-o-preview",
2913
- "is_chat_default": false,
2914
- "is_chat_fallback": false,
2915
- "model_picker_enabled": false,
2916
- "model_picker_price_category": "high",
2917
- "name": "GPT-4o",
2918
- "object": "model",
2919
- "preview": false,
2920
- "vendor": "Azure OpenAI",
2921
- "version": "gpt-4o-2024-05-13"
2922
- },
2923
- {
2924
- "billing": { "token_prices": {
2925
- "batch_size": 0,
2926
- "default": {
2927
- "cache_price": 0,
2928
- "input_price": 0,
2929
- "output_price": 0
2930
- }
2931
- } },
2932
- "capabilities": {
2933
- "family": "gpt-4.1",
2934
- "limits": {
2935
- "max_context_window_tokens": 128e3,
2936
- "max_output_tokens": 16384,
2937
- "max_prompt_tokens": 128e3,
2938
- "vision": {
2939
- "max_prompt_image_size": 3145728,
2940
- "max_prompt_images": 1,
2941
- "supported_media_types": [
2942
- "image/jpeg",
2943
- "image/png",
2944
- "image/webp",
2945
- "image/gif"
2946
- ]
2947
- }
2948
- },
2949
- "object": "model_capabilities",
2950
- "supports": {
2951
- "parallel_tool_calls": true,
2952
- "streaming": true,
2953
- "structured_outputs": true,
2954
- "tool_calls": true,
2955
- "vision": true
2956
- },
2957
- "tokenizer": "o200k_base",
2958
- "type": "chat"
2959
- },
2960
- "id": "gpt-4.1",
2961
- "info_messages": [{
2962
- "code": "model_pending_deprecation",
2963
- "message": "GPT-4.1 has a planned deprecation date of 2026-06-01."
2964
- }],
2965
- "is_chat_default": false,
2966
- "is_chat_fallback": false,
2967
- "model_picker_category": "versatile",
2968
- "model_picker_enabled": false,
2969
- "model_picker_price_category": "medium",
2970
- "name": "GPT-4.1",
2971
- "object": "model",
2972
- "policy": {
2973
- "state": "enabled",
2974
- "terms": "Enable access to the latest GPT-4.1 model from OpenAI. [Learn more about how GitHub Copilot serves GPT-4.1](https://docs.github.com/en/copilot/using-github-copilot/ai-models/choosing-the-right-ai-model-for-your-task#gpt-41)."
2975
- },
2976
- "preview": false,
2977
- "vendor": "Azure OpenAI",
2978
- "version": "gpt-4.1-2025-04-14"
2979
- },
2980
- {
2981
- "billing": {
2982
- "restricted_to": [
2983
- "pro",
2984
- "pro_plus",
2985
- "max",
2986
- "business",
2987
- "enterprise",
2988
- "individual_trial",
2989
- "edu"
2990
- ],
2991
- "token_prices": {
2992
- "batch_size": 0,
2993
- "default": {
2994
- "cache_price": 0,
2995
- "input_price": 0,
2996
- "output_price": 0
2997
- }
2998
- }
2999
- },
3000
- "capabilities": {
3001
- "family": "gpt-3.5-turbo",
3002
- "limits": {
3003
- "max_context_window_tokens": 16384,
3004
- "max_output_tokens": 4096,
3005
- "max_prompt_tokens": 12288
3006
- },
3007
- "object": "model_capabilities",
3008
- "supports": {
3009
- "streaming": true,
3010
- "tool_calls": true
3011
- },
3012
- "tokenizer": "cl100k_base",
3013
- "type": "chat"
3014
- },
3015
- "id": "gpt-3.5-turbo",
3016
- "is_chat_default": false,
3017
- "is_chat_fallback": false,
3018
- "model_picker_enabled": false,
3019
- "model_picker_price_category": "medium",
3020
- "name": "GPT 3.5 Turbo",
3021
- "object": "model",
3022
- "preview": false,
3023
- "vendor": "Azure OpenAI",
3024
- "version": "gpt-3.5-turbo-0613"
3025
- },
3026
- {
3027
- "billing": { "token_prices": {
3028
- "batch_size": 0,
3029
- "default": {
3030
- "cache_price": 0,
3031
- "input_price": 0,
3032
- "output_price": 0
3033
- }
3034
- } },
3035
- "capabilities": {
3036
- "family": "gpt-4o-mini",
3037
- "limits": {
3038
- "max_context_window_tokens": 128e3,
3039
- "max_output_tokens": 4096,
3040
- "max_prompt_tokens": 12288
3041
- },
3042
- "object": "model_capabilities",
3043
- "supports": {
3044
- "parallel_tool_calls": true,
3045
- "streaming": true,
3046
- "tool_calls": true
3047
- },
3048
- "tokenizer": "o200k_base",
3049
- "type": "chat"
3050
- },
3051
- "id": "gpt-4o-mini",
3052
- "is_chat_default": false,
3053
- "is_chat_fallback": false,
3054
- "model_picker_enabled": false,
3055
- "model_picker_price_category": "low",
3056
- "name": "GPT-4o mini",
3057
- "object": "model",
3058
- "preview": false,
3059
- "vendor": "Azure OpenAI",
3060
- "version": "gpt-4o-mini-2024-07-18"
3061
- },
3062
- {
3063
- "billing": { "token_prices": {
3064
- "batch_size": 0,
3065
- "default": {
3066
- "cache_price": 0,
3067
- "input_price": 0,
3068
- "output_price": 0
3069
- }
3070
- } },
3071
- "capabilities": {
3072
- "family": "gpt-4o",
3073
- "limits": {
3074
- "max_context_window_tokens": 128e3,
3075
- "max_output_tokens": 4096,
3076
- "max_prompt_tokens": 64e3,
3077
- "vision": {
3078
- "max_prompt_image_size": 3145728,
3079
- "max_prompt_images": 1,
3080
- "supported_media_types": [
3081
- "image/jpeg",
3082
- "image/png",
3083
- "image/webp",
3084
- "image/gif"
3085
- ]
3086
- }
3087
- },
3088
- "object": "model_capabilities",
3089
- "supports": {
3090
- "parallel_tool_calls": true,
3091
- "streaming": true,
3092
- "tool_calls": true,
3093
- "vision": true
3094
- },
3095
- "tokenizer": "o200k_base",
3096
- "type": "chat"
3097
- },
3098
- "id": "gpt-4o",
3099
- "is_chat_default": false,
3100
- "is_chat_fallback": false,
3101
- "model_picker_enabled": false,
3102
- "model_picker_price_category": "medium",
3103
- "name": "GPT-4o",
3104
- "object": "model",
3105
- "preview": false,
3106
- "vendor": "Azure OpenAI",
3107
- "version": "gpt-4o-2024-11-20"
3108
- },
3109
- {
3110
- "billing": { "token_prices": {
3111
- "batch_size": 0,
3112
- "default": {
3113
- "cache_price": 0,
3114
- "input_price": 0,
3115
- "output_price": 0
3116
- }
3117
- } },
3118
- "capabilities": {
3119
- "family": "text-embedding-ada-002",
3120
- "limits": { "max_inputs": 512 },
3121
- "object": "model_capabilities",
3122
- "supports": {},
3123
- "tokenizer": "cl100k_base",
3124
- "type": "embeddings"
3125
- },
3126
- "id": "text-embedding-ada-002",
3127
- "is_chat_default": false,
3128
- "is_chat_fallback": false,
3129
- "model_picker_enabled": false,
3130
- "name": "Embedding V2 Ada",
3131
- "object": "model",
3132
- "preview": false,
3133
- "vendor": "Azure OpenAI",
3134
- "version": "text-embedding-3-small"
3135
- }
3136
- ],
3137
- object: "list"
3138
- };
3139
- //#endregion
3140
1219
  //#region src/services/copilot/get-models.ts
3141
1220
  const getModels = async () => {
3142
- if (isCopilotUseLocalModelsEnabled()) {
3143
- const models = local_models_default;
3144
- for (const model of models.data) if (model.policy?.state === "disabled") model.model_picker_enabled = true;
3145
- consola.info(`Loaded ${models.data.length} models from local file`);
3146
- return models;
3147
- }
3148
1221
  consola.info(`Fetching models from ${copilotBaseUrl(state)}/models`);
3149
1222
  const response = await fetch(`${copilotBaseUrl(state)}/models`, { headers: copilotModelsHeaders(state) });
3150
1223
  if (!response.ok) {
@@ -3324,7 +1397,7 @@ const refreshModels = async (fetcher) => {
3324
1397
  };
3325
1398
  const nextIds = state.models.data.map((m) => m.id);
3326
1399
  const added = nextIds.filter((id) => !prevIds.has(id));
3327
- if (added.length > 0) consola.info(`Models refresh: ${added.length} new -- ${added.join(", ")}`);
1400
+ if (added.length > 0) consola.info(`Models refresh: ${added.length} new`);
3328
1401
  else consola.debug(`Models refresh: no changes (${nextIds.length} total)`);
3329
1402
  };
3330
1403
  const scheduleModelsRefresh = (fetcher, intervalMs) => {
@@ -3539,7 +1612,8 @@ function syncCodexProviderConfig(options) {
3539
1612
  type: "openai-responses",
3540
1613
  enabled: options?.enabled ?? existingProviderConfig.enabled,
3541
1614
  baseUrl: CODEX_API_BASE_URL,
3542
- authType: "oauth2"
1615
+ authType: "oauth2",
1616
+ pricingCurrency: "USD"
3543
1617
  });
3544
1618
  }
3545
1619
  async function persistCodexCredentials(credentials, options) {
@@ -3689,10 +1763,11 @@ async function logUser() {
3689
1763
  state.userName = user.login;
3690
1764
  consola.info(`Logged in as ${user.login}`);
3691
1765
  const copilotUser = await getCopilotUsage();
1766
+ if (!copilotUser) throw new Error("GitHub token not found");
3692
1767
  state.copilotApiUrl = copilotUser.endpoints.api;
3693
1768
  state.tokenBasedBilling = copilotUser.token_based_billing;
3694
1769
  }
3695
1770
  //#endregion
3696
- export { loginCodex as A, prepareMessageProxyHeaders as C, compactSummaryPromptStart as D, compactMessageSections as E, createPooledWebSocketStream as F, createWebSocketUrl as I, state as L, generateTraceId as M, requestContext as N, compactSystemPromptStarts as O, resolveTraceId as P, HTTPError as R, prepareInteractionHeaders as S, compactAutoContinuePromptStarts as T, getCopilotUsage as _, setupGitHubToken as a, copilotWebSocketHeaders as b, cacheVSCodeVersion as c, generateRequestIdFromPayload as d, getRootSessionId as f, sleep as g, parseUserIdMetadata as h, setupCopilotToken as i, forwardCodexResponses as j, compactTextOnlyGuard as k, cacheVsCodeDeviceId as l, isNullish as m, persistCodexCredentials as n, cacheMacMachineId as o, getUUID as p, setupCodexToken as r, cacheModels as s, logUser as t, cacheVsCodeSessionId as u, copilotBaseUrl as v, initOpencodeVersion as w, prepareForCompact as x, copilotHeaders as y, forwardError as z };
1771
+ export { compactTextOnlyGuard as A, forwardError as B, prepareInteractionHeaders as C, compactMessageSections as D, compactAutoContinuePromptStarts as E, resolveTraceId as F, createPooledWebSocketStream as I, createWebSocketUrl as L, forwardCodexResponses as M, generateTraceId as N, compactSummaryPromptStart as O, requestContext as P, state as R, prepareForCompact as S, initOpencodeVersion as T, getCopilotUsage as _, setupGitHubToken as a, copilotHeaders as b, cacheVSCodeVersion as c, generateRequestIdFromPayload as d, getRootSessionId as f, sleep as g, parseUserIdMetadata as h, setupCopilotToken as i, loginCodex as j, compactSystemPromptStarts as k, cacheVsCodeDeviceId as l, isNullish as m, persistCodexCredentials as n, cacheMacMachineId as o, getUUID as p, setupCodexToken as r, cacheModels as s, logUser as t, cacheVsCodeSessionId as u, readGitHubToken as v, prepareMessageProxyHeaders as w, copilotWebSocketHeaders as x, copilotBaseUrl as y, HTTPError as z };
3697
1772
 
3698
- //# sourceMappingURL=token-fpw8tAQS.js.map
1773
+ //# sourceMappingURL=token-DigcCxDR.js.map