@hashimkarim/usagestat-linux-x64-gnu 2.0.0 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/native-manifest.json +112 -40
  2. package/package.json +13 -1
  3. package/plugins/aixy/plugin.json +1 -1
  4. package/plugins/antigravity/plugin.js +16 -12
  5. package/plugins/antigravity-cli/plugin.js +7 -2
  6. package/plugins/atlascloud/plugin.json +1 -1
  7. package/plugins/bifrost/plugin.json +1 -1
  8. package/plugins/cursor/plugin.js +24 -6
  9. package/plugins/devpass/plugin.json +1 -1
  10. package/plugins/gitkraken/plugin.json +1 -1
  11. package/plugins/helmcode/plugin.js +1 -1
  12. package/plugins/helmcode/plugin.json +2 -2
  13. package/plugins/huggingface/plugin.json +1 -1
  14. package/plugins/hyper/plugin.json +1 -1
  15. package/plugins/lithosai/LICENSE +21 -0
  16. package/plugins/lithosai/icon.svg +1 -0
  17. package/plugins/lithosai/plugin.js +125 -0
  18. package/plugins/lithosai/plugin.json +25 -0
  19. package/plugins/llmman/plugin.json +1 -1
  20. package/plugins/muse/plugin.js +93 -129
  21. package/plugins/muse/plugin.json +2 -2
  22. package/plugins/museai/LICENSE +21 -0
  23. package/plugins/museai/icon.svg +3 -0
  24. package/plugins/museai/plugin.js +154 -0
  25. package/plugins/museai/plugin.json +25 -0
  26. package/plugins/nous/plugin.json +1 -1
  27. package/plugins/opencode-go/plugin.js +59 -22
  28. package/plugins/raycast/plugin.json +1 -1
  29. package/plugins/replicate/plugin.json +1 -1
  30. package/plugins/typesafe/plugin.json +1 -1
  31. package/plugins/v0/plugin.json +1 -1
  32. package/plugins/vercel/plugin.json +1 -1
  33. package/plugins/workbuddy/LICENSE +21 -0
  34. package/plugins/workbuddy/icon.svg +1 -0
  35. package/plugins/workbuddy/plugin.js +227 -0
  36. package/plugins/workbuddy/plugin.json +33 -0
  37. package/plugins/xkiro/plugin.json +1 -1
  38. package/usagestat +0 -0
  39. package/usagestatd +0 -0
@@ -2,8 +2,8 @@
2
2
  "arch": "x64",
3
3
  "archive": {
4
4
  "name": "usagestat-linux-x86_64.tar.gz",
5
- "sha256": "adabb318a816967f269dd1fded375ff594794e4d6d8d8d998691607843444c75",
6
- "size": 12859996
5
+ "sha256": "0b7b2de373bca09f50465384e59f49faf8a84606e975341008fa0be7db8bef88",
6
+ "size": 13232986
7
7
  },
8
8
  "buildSystem": "Linux-6.17.0-1022-azure-x86_64-with-glibc2.39",
9
9
  "dependencies": [
@@ -49,13 +49,13 @@
49
49
  "format": "elf",
50
50
  "machine": 62,
51
51
  "requiredGlibc": "2.39",
52
- "version": "2.0.0"
52
+ "version": "2.0.2"
53
53
  },
54
54
  "usagestatd": {
55
55
  "format": "elf",
56
56
  "machine": 62,
57
57
  "requiredGlibc": "2.39",
58
- "version": "2.0.0"
58
+ "version": "2.0.2"
59
59
  }
60
60
  },
61
61
  "files": [
@@ -176,7 +176,7 @@
176
176
  {
177
177
  "executable": false,
178
178
  "path": "plugins/aixy/plugin.json",
179
- "sha256": "2db33152ed4ff201cfa58b8f55f07642c20a183a5ee8855cf34037ad9183aaab",
179
+ "sha256": "817d9b8d4aae61b053bd6a475ef70285f14fdef86eb26102c483e77f30293430",
180
180
  "size": 612
181
181
  },
182
182
  {
@@ -272,8 +272,8 @@
272
272
  {
273
273
  "executable": false,
274
274
  "path": "plugins/antigravity-cli/plugin.js",
275
- "sha256": "05f8afa20c932381090074dadda7d615b6dac0da41ba5e337eee1884036eb99d",
276
- "size": 19527
275
+ "sha256": "555e1d8471545d4a4e677640dab673ffa2d41605e6713789872561ad5fe3e744",
276
+ "size": 19806
277
277
  },
278
278
  {
279
279
  "executable": false,
@@ -326,8 +326,8 @@
326
326
  {
327
327
  "executable": false,
328
328
  "path": "plugins/antigravity/plugin.js",
329
- "sha256": "9956e232bf6e6fb84047b45b51691a85b0cda59ea1dedff74ca7f744cad44722",
330
- "size": 33250
329
+ "sha256": "e51b889922fe7fce7d06fe3c37ff882781f9db953e7bb07c0043b87a3943ba9e",
330
+ "size": 33932
331
331
  },
332
332
  {
333
333
  "executable": false,
@@ -362,7 +362,7 @@
362
362
  {
363
363
  "executable": false,
364
364
  "path": "plugins/atlascloud/plugin.json",
365
- "sha256": "d4e20e1f4198d588cbaf60553f0196c73990c9cf108688b8b294bbd4d62c5245",
365
+ "sha256": "88378bc181b8aa7e2942a1d27630c15bd97c48b2289d14b8e2d96bf431021e87",
366
366
  "size": 620
367
367
  },
368
368
  {
@@ -452,7 +452,7 @@
452
452
  {
453
453
  "executable": false,
454
454
  "path": "plugins/bifrost/plugin.json",
455
- "sha256": "c7c54fe9dd37ccf4ca63c4067389c0f891a5d54f8e4b342673d1d5d8a5dc7c7b",
455
+ "sha256": "883ce158e7be4f1c7f2dd4e963d4db9a9b0a3482b2932116409b177f47d232d4",
456
456
  "size": 571
457
457
  },
458
458
  {
@@ -740,8 +740,8 @@
740
740
  {
741
741
  "executable": false,
742
742
  "path": "plugins/cursor/plugin.js",
743
- "sha256": "6cdd892165022889bf662c3c09054837071084b458cb8f0b55bcc081790e0b77",
744
- "size": 51071
743
+ "sha256": "f24b1c7fe46f7a3f45fe17ed67c668b1cab7c49bc4364a754f8130f6d3c51cd3",
744
+ "size": 52554
745
745
  },
746
746
  {
747
747
  "executable": false,
@@ -848,7 +848,7 @@
848
848
  {
849
849
  "executable": false,
850
850
  "path": "plugins/devpass/plugin.json",
851
- "sha256": "e8428951def1df7c8d9f3e51f0de262fc646123eb99ab217aa6e240544119c64",
851
+ "sha256": "b26c9f24514778c35e832aacb2250db8f6441ecb38d7be770136e79b8d9bc708",
852
852
  "size": 613
853
853
  },
854
854
  {
@@ -1034,7 +1034,7 @@
1034
1034
  {
1035
1035
  "executable": false,
1036
1036
  "path": "plugins/gitkraken/plugin.json",
1037
- "sha256": "849acb7cc3b0adcbdcadc2b14641f1ef72c6bf1d395d744de6c1e8d46dacb6ca",
1037
+ "sha256": "75be12d7542fb82b300de53cf8ff2e10b10481edb3332ff878555d7ad2ae6ded",
1038
1038
  "size": 649
1039
1039
  },
1040
1040
  {
@@ -1094,13 +1094,13 @@
1094
1094
  {
1095
1095
  "executable": false,
1096
1096
  "path": "plugins/helmcode/plugin.js",
1097
- "sha256": "5774565d856a506642a43b00dcd78f877435203c56c3b17c2a025e867110c51f",
1098
- "size": 8031
1097
+ "sha256": "a5734830d942e4e10eaecd33035dc725dd43615bb8bdb88d138ee2db632c3b34",
1098
+ "size": 8075
1099
1099
  },
1100
1100
  {
1101
1101
  "executable": false,
1102
1102
  "path": "plugins/helmcode/plugin.json",
1103
- "sha256": "8d56bc4986643e414ca91b21aa9ea070779d046e6190455ce8a01cd73836a579",
1103
+ "sha256": "c91f9a9f7e2da29656a9dd48647dc27188c1a960609ed005f1d7245a9388b4d7",
1104
1104
  "size": 649
1105
1105
  },
1106
1106
  {
@@ -1130,7 +1130,7 @@
1130
1130
  {
1131
1131
  "executable": false,
1132
1132
  "path": "plugins/huggingface/plugin.json",
1133
- "sha256": "328bf38bd9ebbde209259fd3808a62df95d8ca5b2e28aceee37f7ab0ce42349c",
1133
+ "sha256": "727c3613cda9f1cf09deeb568ce438ca08deee1bb8ff60f8c7b04a5866f71c77",
1134
1134
  "size": 683
1135
1135
  },
1136
1136
  {
@@ -1148,7 +1148,7 @@
1148
1148
  {
1149
1149
  "executable": false,
1150
1150
  "path": "plugins/hyper/plugin.json",
1151
- "sha256": "7e7009af27f793bb579bedfe7e51de3ba0f41e971cd1cd096cf512c9e31f8bda",
1151
+ "sha256": "1944f21c6afb145ac151f909f35c3fddfb60d7f481e555edb86fce5ca28e4868",
1152
1152
  "size": 667
1153
1153
  },
1154
1154
  {
@@ -1325,6 +1325,30 @@
1325
1325
  "sha256": "98d8b350cceae29e62a1ae5c03186362a6ab97ae438d1e0effe15f5855aa6c0a",
1326
1326
  "size": 476
1327
1327
  },
1328
+ {
1329
+ "executable": false,
1330
+ "path": "plugins/lithosai/LICENSE",
1331
+ "sha256": "14293556b79940745123d0160c71d27ed0e9fe9b8a848093f3ed78f4853caafe",
1332
+ "size": 1074
1333
+ },
1334
+ {
1335
+ "executable": false,
1336
+ "path": "plugins/lithosai/icon.svg",
1337
+ "sha256": "8d7c8c56387ee74b6c1d99924d93d4a327551ae69f27262a1accf863cce3299c",
1338
+ "size": 138
1339
+ },
1340
+ {
1341
+ "executable": false,
1342
+ "path": "plugins/lithosai/plugin.js",
1343
+ "sha256": "3ba7bed78f248183bd70f0bbf6d59f6714106715ba57175e20c8870850115f53",
1344
+ "size": 5868
1345
+ },
1346
+ {
1347
+ "executable": false,
1348
+ "path": "plugins/lithosai/plugin.json",
1349
+ "sha256": "20a3b4a5d3ea247c6b5f0ea519e7887e996d30dad3b9d54b51789dff0e655da9",
1350
+ "size": 854
1351
+ },
1328
1352
  {
1329
1353
  "executable": false,
1330
1354
  "path": "plugins/llm-proxy/icon.svg",
@@ -1358,7 +1382,7 @@
1358
1382
  {
1359
1383
  "executable": false,
1360
1384
  "path": "plugins/llmman/plugin.json",
1361
- "sha256": "df91632fffe8f4bad5732fa6ca2af1462a921f752080bcff3e505fb789046fac",
1385
+ "sha256": "4f8145a4ed824afa886086e94c3f681d29fdcc278cc20cff888f9af595d6454a",
1362
1386
  "size": 562
1363
1387
  },
1364
1388
  {
@@ -1520,15 +1544,39 @@
1520
1544
  {
1521
1545
  "executable": false,
1522
1546
  "path": "plugins/muse/plugin.js",
1523
- "sha256": "1bb53d687b1ce19a0a5ac4f58ed7a0d762465e5deff2cdf1b8bf41bfdf049dd1",
1524
- "size": 14654
1547
+ "sha256": "e1e55685de63d92bef97f852045def8f01b2a0a6a7abf755fc2cfd9b64835489",
1548
+ "size": 14634
1525
1549
  },
1526
1550
  {
1527
1551
  "executable": false,
1528
1552
  "path": "plugins/muse/plugin.json",
1529
- "sha256": "4c47425f1e5947fd6b354ec320f0e7f2e8152f973c83bd9d1f4e6fb5d6953814",
1553
+ "sha256": "d1211200917d79779b0f700c38d9e901cffd40bc21517ac7b9f06e8e0a7ef5c1",
1530
1554
  "size": 669
1531
1555
  },
1556
+ {
1557
+ "executable": false,
1558
+ "path": "plugins/museai/LICENSE",
1559
+ "sha256": "14293556b79940745123d0160c71d27ed0e9fe9b8a848093f3ed78f4853caafe",
1560
+ "size": 1074
1561
+ },
1562
+ {
1563
+ "executable": false,
1564
+ "path": "plugins/museai/icon.svg",
1565
+ "sha256": "5cb25407c0a315d1ce546536365989f12a69562524b097cc4839f8ad121d84cf",
1566
+ "size": 2028
1567
+ },
1568
+ {
1569
+ "executable": false,
1570
+ "path": "plugins/museai/plugin.js",
1571
+ "sha256": "04f206c20f962450f272395775318905a353ba33fb416fdeb175f9a43000a6bd",
1572
+ "size": 7340
1573
+ },
1574
+ {
1575
+ "executable": false,
1576
+ "path": "plugins/museai/plugin.json",
1577
+ "sha256": "cefde6c1f2a33ac152e4e4dd08dfa32fa7047176d471078d019287d4629f3143",
1578
+ "size": 756
1579
+ },
1532
1580
  {
1533
1581
  "executable": false,
1534
1582
  "path": "plugins/nanogpt/icon-color.svg",
@@ -1616,7 +1664,7 @@
1616
1664
  {
1617
1665
  "executable": false,
1618
1666
  "path": "plugins/nous/plugin.json",
1619
- "sha256": "f6365f4c7d786ee42a97b62251df0a5ee8c66b2db3c09f3abef6b5b136ba43f2",
1667
+ "sha256": "6655dca66c0ee5aec0b771703c497716b92af38efa8bbc9e2e2ee1e459383fa4",
1620
1668
  "size": 636
1621
1669
  },
1622
1670
  {
@@ -1688,8 +1736,8 @@
1688
1736
  {
1689
1737
  "executable": false,
1690
1738
  "path": "plugins/opencode-go/plugin.js",
1691
- "sha256": "95a26f9184a68b9fc25c61488db3d62fd99cf0f631f2f5ff8f5dfdfacd6167f8",
1692
- "size": 26168
1739
+ "sha256": "bf3a95eb67ca55a45c83bf7da4388e13d95e84d5e9b58ad641c0e947a768111d",
1740
+ "size": 28616
1693
1741
  },
1694
1742
  {
1695
1743
  "executable": false,
@@ -1862,7 +1910,7 @@
1862
1910
  {
1863
1911
  "executable": false,
1864
1912
  "path": "plugins/raycast/plugin.json",
1865
- "sha256": "0c93302b898cb0c6f64b9486f7c568b34573e9b783a4214f932932b97b1a6644",
1913
+ "sha256": "a3ad3ace83a4aa5c489c1fb22bbab50f9916134db7ed186a9bb39890958293db",
1866
1914
  "size": 640
1867
1915
  },
1868
1916
  {
@@ -1892,7 +1940,7 @@
1892
1940
  {
1893
1941
  "executable": false,
1894
1942
  "path": "plugins/replicate/plugin.json",
1895
- "sha256": "64b1466259bd3c07df9d7561dc63faac3e8598c9c876534101231ac5f66abecd",
1943
+ "sha256": "d152da6ad52c9467e6e7b44a9f75a2a49088e37862c8d6586e088e5528f52473",
1896
1944
  "size": 655
1897
1945
  },
1898
1946
  {
@@ -2024,7 +2072,7 @@
2024
2072
  {
2025
2073
  "executable": false,
2026
2074
  "path": "plugins/typesafe/plugin.json",
2027
- "sha256": "ef13ae937833da47fe812dcc9a6ff6acc5c6a67141406f7dbe529b9b8d87ef18",
2075
+ "sha256": "4c568f57131619eb8abacd40632f6ad68dddcd75a0a395e37379952811f5699b",
2028
2076
  "size": 653
2029
2077
  },
2030
2078
  {
@@ -2054,7 +2102,7 @@
2054
2102
  {
2055
2103
  "executable": false,
2056
2104
  "path": "plugins/v0/plugin.json",
2057
- "sha256": "e890781cdc0494968ca94f6c4a9b6a50fd1d3b6f3129035dd18b35b4d37d1e6e",
2105
+ "sha256": "222b7520957a018a794af8129ed6ccfd7b1b67dd2fda61edc4e10ad53b72b097",
2058
2106
  "size": 601
2059
2107
  },
2060
2108
  {
@@ -2108,7 +2156,7 @@
2108
2156
  {
2109
2157
  "executable": false,
2110
2158
  "path": "plugins/vercel/plugin.json",
2111
- "sha256": "1d1a6de2ac852b3f8dd88ec171ee75cdab6fa910973696c12d1fcf42e0ec095d",
2159
+ "sha256": "be0400962b61c8ae58c14f5ef7674918e3f06bd71e067ad7915c43463caab87d",
2112
2160
  "size": 641
2113
2161
  },
2114
2162
  {
@@ -2207,6 +2255,30 @@
2207
2255
  "sha256": "7af5748dd267c9c90f9ed87330bc521ec8de5b8d97fd9cae559a2f1072c25779",
2208
2256
  "size": 483
2209
2257
  },
2258
+ {
2259
+ "executable": false,
2260
+ "path": "plugins/workbuddy/LICENSE",
2261
+ "sha256": "14293556b79940745123d0160c71d27ed0e9fe9b8a848093f3ed78f4853caafe",
2262
+ "size": 1074
2263
+ },
2264
+ {
2265
+ "executable": false,
2266
+ "path": "plugins/workbuddy/icon.svg",
2267
+ "sha256": "147bb6eb01873c56de838a7c549b9a433b3673c78138cb459b49c4259ba845e4",
2268
+ "size": 195
2269
+ },
2270
+ {
2271
+ "executable": false,
2272
+ "path": "plugins/workbuddy/plugin.js",
2273
+ "sha256": "ff107a1b54a9007f1b6b856ccf7e46486608550afda0c1e2ac41e12f0f6f8c15",
2274
+ "size": 10097
2275
+ },
2276
+ {
2277
+ "executable": false,
2278
+ "path": "plugins/workbuddy/plugin.json",
2279
+ "sha256": "aae41efedc3085fd1618d6724c948b546554f7ad1d059ee38af09fa249b2e69b",
2280
+ "size": 1089
2281
+ },
2210
2282
  {
2211
2283
  "executable": false,
2212
2284
  "path": "plugins/xai/icon-color.svg",
@@ -2246,7 +2318,7 @@
2246
2318
  {
2247
2319
  "executable": false,
2248
2320
  "path": "plugins/xkiro/plugin.json",
2249
- "sha256": "ec85b34efb7ba42990e94bff74855a6312667e8a33e93ba842ad7407989ed5f7",
2321
+ "sha256": "d2de13f96d46dcb16b03ac45780a4fde57b8bf2224dedd7df51597d4558809a8",
2250
2322
  "size": 583
2251
2323
  },
2252
2324
  {
@@ -2342,14 +2414,14 @@
2342
2414
  {
2343
2415
  "executable": true,
2344
2416
  "path": "usagestat",
2345
- "sha256": "69575b2cceae2e5b741e9b31abc6c73ca63a4ec0efbb92b2e2ef382654150a0f",
2346
- "size": 15219888
2417
+ "sha256": "6a08d9bb8c57449bc39667842088ab9b274787a6c7a80725fd8833cb3f8b457a",
2418
+ "size": 15401880
2347
2419
  },
2348
2420
  {
2349
2421
  "executable": true,
2350
2422
  "path": "usagestatd",
2351
- "sha256": "dc3338f29b111e629191ac1d196dc39c51f71ac016881dd3f960add59af3acb9",
2352
- "size": 15078080
2423
+ "sha256": "9cd4bd800981e8a73d1ed920885bdd797c65986e54193a9f4ed3c43cc17cec29",
2424
+ "size": 15876368
2353
2425
  }
2354
2426
  ],
2355
2427
  "libc": "glibc",
@@ -2357,12 +2429,12 @@
2357
2429
  "minimumSystemQualified": true,
2358
2430
  "os": "linux",
2359
2431
  "package": "usagestat",
2360
- "resourcesSha256": "d03362c9d6104bd044c9b5530f129bc2e4ca613090edc4eb470122375bc3e4d5",
2432
+ "resourcesSha256": "7f9c7e403a928389473c8696f574f3a92d7d9771bc1d10a54b6dd243956ba50e",
2361
2433
  "schemaVersion": 1,
2362
2434
  "signing": "unsigned",
2363
- "sourceCommit": "fbf84796d80fd5567516cec2e11b0784e7c187db",
2435
+ "sourceCommit": "f70ad758064dea4a8581814dfea8cd3e841c7dff",
2364
2436
  "sourceDirty": false,
2365
2437
  "target": "x86_64-unknown-linux-gnu",
2366
2438
  "toolchain": "rustc 1.89.0 (29483883e 2025-08-04)\nbinary: rustc\ncommit-hash: 29483883eed69d5fb4db01964cdf2af4d86e9cb2\ncommit-date: 2025-08-04\nhost: x86_64-unknown-linux-gnu\nrelease: 1.89.0\nLLVM version: 20.1.7",
2367
- "version": "2.0.0"
2439
+ "version": "2.0.2"
2368
2440
  }
package/package.json CHANGED
@@ -219,6 +219,10 @@
219
219
  "plugins/litellm/icon.svg",
220
220
  "plugins/litellm/plugin.js",
221
221
  "plugins/litellm/plugin.json",
222
+ "plugins/lithosai/LICENSE",
223
+ "plugins/lithosai/icon.svg",
224
+ "plugins/lithosai/plugin.js",
225
+ "plugins/lithosai/plugin.json",
222
226
  "plugins/llm-proxy/icon.svg",
223
227
  "plugins/llm-proxy/plugin.js",
224
228
  "plugins/llm-proxy/plugin.json",
@@ -253,6 +257,10 @@
253
257
  "plugins/muse/LICENSE",
254
258
  "plugins/muse/plugin.js",
255
259
  "plugins/muse/plugin.json",
260
+ "plugins/museai/LICENSE",
261
+ "plugins/museai/icon.svg",
262
+ "plugins/museai/plugin.js",
263
+ "plugins/museai/plugin.json",
256
264
  "plugins/nanogpt/icon-color.svg",
257
265
  "plugins/nanogpt/icon.svg",
258
266
  "plugins/nanogpt/plugin.js",
@@ -366,6 +374,10 @@
366
374
  "plugins/windsurf/icon.svg",
367
375
  "plugins/windsurf/plugin.js",
368
376
  "plugins/windsurf/plugin.json",
377
+ "plugins/workbuddy/LICENSE",
378
+ "plugins/workbuddy/icon.svg",
379
+ "plugins/workbuddy/plugin.js",
380
+ "plugins/workbuddy/plugin.json",
369
381
  "plugins/xai/icon-color.svg",
370
382
  "plugins/xai/icon.svg",
371
383
  "plugins/xai/plugin.js",
@@ -409,5 +421,5 @@
409
421
  "type": "git",
410
422
  "url": "https://github.com/hashimkarim/usagestat.git"
411
423
  },
412
- "version": "2.0.0"
424
+ "version": "2.0.2"
413
425
  }
@@ -16,7 +16,7 @@
16
16
  ],
17
17
  "upstream": {
18
18
  "repository": "https://github.com/steipete/CodexBar",
19
- "revision": "25bba9b7fd9ce83c33053958f7366e23b2dc8a82",
19
+ "revision": "6ba06fe9ec1522dd5c59e16810115bce28aa148f",
20
20
  "path": "Sources/CodexBarCore/Resources/Plugins/aixy.js",
21
21
  "sha256": "975d98525503e286f9425c2a1d64fe00da8e2fdc0b00890e15c2cbcb9a37c125",
22
22
  "license": "MIT"
@@ -10,6 +10,7 @@
10
10
  var FETCH_MODELS_PATH = "/v1internal:fetchAvailableModels"
11
11
  var RETRIEVE_QUOTA_PATH = "/v1internal:retrieveUserQuota"
12
12
  var LOGIN_MESSAGE = "Start Antigravity or run `agy` and try again."
13
+ var QUOTA_DENIED_MESSAGE = "Google denied Antigravity quota access for this account. Open the latest Antigravity or agy client and check account access."
13
14
  var GOOGLE_OAUTH_URL = "https://oauth2.googleapis.com/token"
14
15
  var GOOGLE_CLIENT_ID = "1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com"
15
16
  var GOOGLE_CLIENT_SECRET = "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"
@@ -370,17 +371,17 @@
370
371
  // reports per-model quota, so use it before treating the token as rejected.
371
372
  function probeAgyToken(ctx, token) {
372
373
  var quota = probeAgyCloudCode(ctx, token)
373
- if (quota && !quota._authFailed) return quota
374
+ if (quota && !quota._authFailed && !quota._quotaDenied) return quota
374
375
  var models = probeCloudCode(ctx, token, "agy", true)
375
- if (models && !models._authFailed) {
376
+ if (models && !models._authFailed && !models._quotaDenied) {
376
377
  if (models._summaryLines) return { plan: null, lines: models._summaryLines }
377
378
  var lines = buildModelLines(ctx, parseCloudCodeModels(models))
378
379
  if (lines.length > 0) return { plan: null, lines: lines }
379
- return null
380
+ return quota && quota._quotaDenied ? quota : null
380
381
  }
381
382
  // A quota 403 can mean "no license", not an invalid bearer. If the model
382
383
  // endpoint is temporarily unavailable, don't turn that into a token refresh.
383
- return models
384
+ return models || (quota && quota._quotaDenied ? quota : null)
384
385
  }
385
386
 
386
387
  // --- LS discovery ---
@@ -559,7 +560,7 @@
559
560
  Accept: "application/json",
560
561
  "Content-Type": "application/json",
561
562
  Authorization: "Bearer " + token,
562
- "User-Agent": userAgent || "antigravity",
563
+ "User-Agent": ctx.util.antigravityHubUserAgent(),
563
564
  },
564
565
  bodyText: JSON.stringify(body || {}),
565
566
  timeoutMs: timeoutMs || 15000,
@@ -568,7 +569,8 @@
568
569
  ctx.host.log.warn("Cloud Code returned invalid response shape (" + CLOUD_CODE_URLS[i] + ")")
569
570
  continue
570
571
  }
571
- if (ctx.util.isAuthStatus(resp.status)) return { _authFailed: true }
572
+ if (resp.status === 401) return { _authFailed: true }
573
+ if (resp.status === 403) return { _quotaDenied: true }
572
574
  if (resp.status >= 200 && resp.status < 300) {
573
575
  var json = ctx.util.tryParseJson(resp.bodyText)
574
576
  if (!json || typeof json !== "object") {
@@ -654,7 +656,7 @@
654
656
 
655
657
  function probeAgyCloudCode(ctx, token) {
656
658
  var loadData = requestCloudCodeJson(ctx, LOAD_CODE_ASSIST_PATH, token, "agy", {})
657
- if (!loadData || loadData._authFailed) return loadData
659
+ if (!loadData || loadData._authFailed || loadData._quotaDenied) return loadData
658
660
 
659
661
  var project =
660
662
  typeof loadData.cloudaicompanionProject === "string" && loadData.cloudaicompanionProject.trim()
@@ -667,10 +669,10 @@
667
669
  if (project) {
668
670
  quotaData = requestCloudCodeJson(ctx, RETRIEVE_QUOTA_PATH, token, "agy", { project: project })
669
671
  }
670
- if (!quotaData || quotaData._authFailed) {
672
+ if (!quotaData || quotaData._authFailed || quotaData._quotaDenied) {
671
673
  quotaData = requestCloudCodeJson(ctx, RETRIEVE_QUOTA_PATH, token, "agy", {})
672
674
  }
673
- if (!quotaData || quotaData._authFailed) return quotaData
675
+ if (!quotaData || quotaData._authFailed || quotaData._quotaDenied) return quotaData || (summary && summary._quotaDenied ? summary : null)
674
676
 
675
677
  var lines = buildModelLines(ctx, parseAgyQuotaBuckets(quotaData))
676
678
  if (lines.length === 0) return null
@@ -830,19 +832,21 @@
830
832
  }
831
833
 
832
834
  // agy's own login also covers users whose IDE database is stale or absent.
833
- if (!explicitDb && (!ccData || ccData._authFailed)) {
835
+ if (!explicitDb && (!ccData || ccData._authFailed || ccData._quotaDenied)) {
834
836
  var agyResult = probeAgyCredentials(ctx)
835
- if (agyResult && !agyResult._authFailed) return agyResult
837
+ if (agyResult && !agyResult._authFailed && !agyResult._quotaDenied) return agyResult
838
+ if (agyResult && agyResult._quotaDenied) ccData = agyResult
836
839
  if (agyResult && agyResult._authFailed) ccData = agyResult
837
840
  }
838
841
 
839
- if (ccData && !ccData._authFailed) {
842
+ if (ccData && !ccData._authFailed && !ccData._quotaDenied) {
840
843
  if (ccData._summaryLines) return { plan: null, lines: ccData._summaryLines }
841
844
  var configs = parseCloudCodeModels(ccData)
842
845
  var lines = buildModelLines(ctx, configs)
843
846
  if (lines.length > 0) return { plan: null, lines: lines }
844
847
  }
845
848
 
849
+ if (ccData && ccData._quotaDenied) throw QUOTA_DENIED_MESSAGE
846
850
  throw LOGIN_MESSAGE
847
851
  }
848
852
 
@@ -7,6 +7,7 @@
7
7
  const SESSION_EXPIRED_MESSAGE =
8
8
  "Google sign-in expired. Run `agy` and complete Google sign-in again."
9
9
  const REQUEST_FAILED_MESSAGE = "Antigravity CLI quota request failed. Check your connection and try again."
10
+ const QUOTA_DENIED_MESSAGE = "Google denied Antigravity quota access for this account. Open the latest Antigravity or agy client and check account access."
10
11
  const GOOGLE_OAUTH_URL = "https://oauth2.googleapis.com/token"
11
12
  const GOOGLE_CLIENT_ID =
12
13
  "1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com"
@@ -291,7 +292,7 @@
291
292
  Authorization: "Bearer " + token,
292
293
  Accept: "application/json",
293
294
  "Content-Type": "application/json",
294
- "User-Agent": "agy",
295
+ "User-Agent": ctx.util.antigravityHubUserAgent(),
295
296
  },
296
297
  bodyText: JSON.stringify(body || {}),
297
298
  timeoutMs: opts.timeoutMs || 15000,
@@ -307,7 +308,11 @@
307
308
  if (opts.optional) return null
308
309
  throw REQUEST_FAILED_MESSAGE
309
310
  }
310
- if (ctx.util.isAuthStatus(resp.status)) {
311
+ if (resp.status === 403) {
312
+ if (opts.optional) return null
313
+ throw QUOTA_DENIED_MESSAGE
314
+ }
315
+ if (resp.status === 401) {
311
316
  if (opts.optional) {
312
317
  ctx.host.log.warn(
313
318
  "antigravity-cli optional request HTTP " +
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "upstream": {
17
17
  "repository": "https://github.com/steipete/CodexBar",
18
- "revision": "25bba9b7fd9ce83c33053958f7366e23b2dc8a82",
18
+ "revision": "6ba06fe9ec1522dd5c59e16810115bce28aa148f",
19
19
  "path": "Sources/CodexBarCore/Resources/Plugins/atlascloud.js",
20
20
  "sha256": "852fb78abaf4fcdbbfbfeac0b60d6b82a9ca9b1d1d2f9014f6e5299b41ac47fa",
21
21
  "license": "MIT"
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "upstream": {
17
17
  "repository": "https://github.com/steipete/CodexBar",
18
- "revision": "25bba9b7fd9ce83c33053958f7366e23b2dc8a82",
18
+ "revision": "6ba06fe9ec1522dd5c59e16810115bce28aa148f",
19
19
  "path": "Sources/CodexBarCore/Resources/Plugins/bifrost.js",
20
20
  "sha256": "b7576d59ccd077c812118cf09d282042589a80df470c621e414583050f03aa07",
21
21
  "license": "MIT"
@@ -643,11 +643,21 @@ globalThis.__OPENUSAGE_PLUGIN_REGISTRATION_ID__ = "cursor";
643
643
  const hasPlanUsageLimit = hasPlanUsage && Number.isFinite(limitN)
644
644
  const planUsageLimitMissing = hasPlanUsage && !hasPlanUsageLimit
645
645
  const hasTotalUsagePercent = hasPlanUsage && Number.isFinite(pctN)
646
+ const auto = hasPlanUsage && typeof pu.autoPercentUsed === "number" ? pu.autoPercentUsed : NaN
647
+ const api = hasPlanUsage && typeof pu.apiPercentUsed === "number" ? pu.apiPercentUsed : NaN
648
+ const reportedSpend = hasPlanUsage ? readFiniteNumber(pu.totalSpend) : NaN
649
+ const remaining = hasPlanUsage ? readFiniteNumber(pu.remaining) : NaN
650
+ const spent = Number.isFinite(reportedSpend) ? reportedSpend
651
+ : (Number.isFinite(limitN) ? limitN - (Number.isFinite(remaining) ? remaining : limitN) : 0)
652
+ // Legacy Teams reports zero pool placeholders beside positive dollar spend.
653
+ const hasModelPools = Number.isFinite(auto) && auto >= 0 && Number.isFinite(api) && api >= 0 &&
654
+ (auto > 0 || api > 0 || spent === 0)
646
655
  return {
647
656
  hasPlanUsage: hasPlanUsage,
648
657
  hasPlanUsageLimit: hasPlanUsageLimit,
649
- planUsageLimitMissing: planUsageLimitMissing,
658
+ planUsageLimitMissing: planUsageLimitMissing && !hasModelPools,
650
659
  hasTotalUsagePercent: hasTotalUsagePercent,
660
+ hasModelPools: hasModelPools,
651
661
  pu: pu,
652
662
  }
653
663
  }
@@ -676,7 +686,7 @@ globalThis.__OPENUSAGE_PLUGIN_REGISTRATION_ID__ = "cursor";
676
686
  const hasTotalUsagePercent = flags.hasTotalUsagePercent
677
687
  const pu = flags.pu
678
688
 
679
- if (!hasPlanUsageLimit && !hasTotalUsagePercent) {
689
+ if (!hasPlanUsageLimit && !hasTotalUsagePercent && !flags.hasModelPools) {
680
690
  throw "Total usage limit missing from API response."
681
691
  }
682
692
 
@@ -734,7 +744,14 @@ globalThis.__OPENUSAGE_PLUGIN_REGISTRATION_ID__ = "cursor";
734
744
  (su && typeof su.pooledLimit === "number" && su.pooledLimit > 0)
735
745
  )
736
746
 
737
- if (isTeamAccount) {
747
+ if (isTeamAccount && flags.hasModelPools) {
748
+ // A combined percentage cannot be reconstructed from independent pools.
749
+ if (hasTotalUsagePercent) lines.push(ctx.line.progress({
750
+ label: "Total usage", used: pu.totalPercentUsed, limit: 100,
751
+ format: { kind: "percent" }, resetsAt: ctx.util.toIso(usage.billingCycleEnd),
752
+ periodDurationMs: billingPeriodMs,
753
+ }))
754
+ } else if (isTeamAccount) {
738
755
  if (!hasPlanUsageLimit) {
739
756
  return null
740
757
  }
@@ -761,7 +778,8 @@ globalThis.__OPENUSAGE_PLUGIN_REGISTRATION_ID__ = "cursor";
761
778
  }))
762
779
  }
763
780
 
764
- if (typeof pu.autoPercentUsed === "number" && Number.isFinite(pu.autoPercentUsed)) {
781
+ const showModelPools = !(isTeamAccount && !flags.hasModelPools && pu.autoPercentUsed === 0 && pu.apiPercentUsed === 0)
782
+ if (showModelPools && typeof pu.autoPercentUsed === "number" && Number.isFinite(pu.autoPercentUsed) && pu.autoPercentUsed >= 0) {
765
783
  lines.push(ctx.line.progress({
766
784
  label: "Cursor Models",
767
785
  used: pu.autoPercentUsed,
@@ -772,7 +790,7 @@ globalThis.__OPENUSAGE_PLUGIN_REGISTRATION_ID__ = "cursor";
772
790
  }))
773
791
  }
774
792
 
775
- if (typeof pu.apiPercentUsed === "number" && Number.isFinite(pu.apiPercentUsed)) {
793
+ if (showModelPools && typeof pu.apiPercentUsed === "number" && Number.isFinite(pu.apiPercentUsed) && pu.apiPercentUsed >= 0) {
776
794
  lines.push(ctx.line.progress({
777
795
  label: "Other Models",
778
796
  used: pu.apiPercentUsed,
@@ -1335,7 +1353,7 @@ globalThis.__OPENUSAGE_PLUGIN_REGISTRATION_ID__ = "cursor";
1335
1353
  const hasPlanUsageLimit = hasPlanUsage &&
1336
1354
  typeof usage.planUsage.limit === "number" &&
1337
1355
  Number.isFinite(usage.planUsage.limit)
1338
- const planUsageLimitMissing = hasPlanUsage && !hasPlanUsageLimit
1356
+ const planUsageLimitMissing = hasPlanUsage && !hasPlanUsageLimit && !getConnectUsageMetricFlags(usage).hasModelPools
1339
1357
  const hasTotalUsagePercent = hasPlanUsage &&
1340
1358
  typeof usage.planUsage.totalPercentUsed === "number" &&
1341
1359
  Number.isFinite(usage.planUsage.totalPercentUsed)
@@ -15,7 +15,7 @@
15
15
  ],
16
16
  "upstream": {
17
17
  "repository": "https://github.com/steipete/CodexBar",
18
- "revision": "25bba9b7fd9ce83c33053958f7366e23b2dc8a82",
18
+ "revision": "6ba06fe9ec1522dd5c59e16810115bce28aa148f",
19
19
  "path": "Sources/CodexBarCore/Resources/Plugins/devpass.js",
20
20
  "sha256": "6fdfab17f543fc88f28b90f76fbe6edc6db3f4d3c7fa657a899c573d363a0886",
21
21
  "license": "MIT"
@@ -16,7 +16,7 @@
16
16
  ],
17
17
  "upstream": {
18
18
  "repository": "https://github.com/steipete/CodexBar",
19
- "revision": "25bba9b7fd9ce83c33053958f7366e23b2dc8a82",
19
+ "revision": "6ba06fe9ec1522dd5c59e16810115bce28aa148f",
20
20
  "path": "Sources/CodexBarCore/Resources/Plugins/gitkraken.js",
21
21
  "sha256": "c583890b74fc4c054cd818e560b30a17dd716c7611b554bd5b559f533a824ca2",
22
22
  "license": "MIT"
@@ -182,7 +182,7 @@ defineProvider({
182
182
  }
183
183
  if (rejected) throw ctx.fail.authenticationExpired("Helmcode dashboard session expired. Sign in again.");
184
184
  throw ctx.fail.missingCredential(
185
- "Sign in to cloud.helmcode.com or cloud.nan.builders in Chrome, or paste a Cookie header.",
185
+ `Sign in to cloud.helmcode.com or cloud.nan.builders. Supported browsers: ${ctx.browser.supportedBrowsers}. Or paste a Cookie header.`,
186
186
  );
187
187
  },
188
188
  });