@hasna/switcher 0.1.1 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/openapi.json CHANGED
@@ -2,7 +2,7 @@
2
2
  "openapi": "3.0.3",
3
3
  "info": {
4
4
  "title": "Switcher API",
5
- "version": "0.1.1",
5
+ "version": "0.1.2",
6
6
  "description": "Authenticated provider/profile/catalog control plane. Launches run locally; the API never returns provider credentials."
7
7
  },
8
8
  "security": [
@@ -1216,7 +1216,8 @@
1216
1216
  "enum": [
1217
1217
  "anthropic-messages",
1218
1218
  "openai-responses",
1219
- "openai-chat"
1219
+ "openai-chat",
1220
+ "gemini-generate-content"
1220
1221
  ]
1221
1222
  },
1222
1223
  "baseUrl": {
@@ -1227,7 +1228,8 @@
1227
1228
  "type": "string",
1228
1229
  "enum": [
1229
1230
  "bearer",
1230
- "x-api-key"
1231
+ "x-api-key",
1232
+ "api-key"
1231
1233
  ]
1232
1234
  },
1233
1235
  "catalogBaseUrl": {
@@ -1243,6 +1245,7 @@
1243
1245
  "together",
1244
1246
  "fireworks",
1245
1247
  "dashscope",
1248
+ "gemini",
1246
1249
  "none"
1247
1250
  ]
1248
1251
  },
@@ -1251,6 +1254,7 @@
1251
1254
  "enum": [
1252
1255
  "bearer",
1253
1256
  "x-api-key",
1257
+ "api-key",
1254
1258
  "none"
1255
1259
  ]
1256
1260
  },
@@ -1320,7 +1324,8 @@
1320
1324
  "enum": [
1321
1325
  "anthropic-messages",
1322
1326
  "openai-responses",
1323
- "openai-chat"
1327
+ "openai-chat",
1328
+ "gemini-generate-content"
1324
1329
  ]
1325
1330
  },
1326
1331
  "credentialEnv": {
@@ -1331,7 +1336,8 @@
1331
1336
  "type": "string",
1332
1337
  "enum": [
1333
1338
  "bearer",
1334
- "x-api-key"
1339
+ "x-api-key",
1340
+ "api-key"
1335
1341
  ],
1336
1342
  "default": "bearer"
1337
1343
  },
@@ -1348,6 +1354,7 @@
1348
1354
  "together",
1349
1355
  "fireworks",
1350
1356
  "dashscope",
1357
+ "gemini",
1351
1358
  "none"
1352
1359
  ]
1353
1360
  },
@@ -1356,6 +1363,7 @@
1356
1363
  "enum": [
1357
1364
  "bearer",
1358
1365
  "x-api-key",
1366
+ "api-key",
1359
1367
  "none"
1360
1368
  ]
1361
1369
  },
@@ -1428,6 +1436,15 @@
1428
1436
  "maxLength": 100
1429
1437
  },
1430
1438
  "maxItems": 100
1439
+ },
1440
+ "supportedGenerationMethods": {
1441
+ "type": "array",
1442
+ "items": {
1443
+ "type": "string",
1444
+ "minLength": 1,
1445
+ "maxLength": 100
1446
+ },
1447
+ "maxItems": 100
1431
1448
  }
1432
1449
  },
1433
1450
  "required": [
@@ -1469,7 +1486,8 @@
1469
1486
  "enum": [
1470
1487
  "anthropic-messages",
1471
1488
  "openai-responses",
1472
- "openai-chat"
1489
+ "openai-chat",
1490
+ "gemini-generate-content"
1473
1491
  ]
1474
1492
  },
1475
1493
  "credentialEnv": {
@@ -1480,7 +1498,8 @@
1480
1498
  "type": "string",
1481
1499
  "enum": [
1482
1500
  "bearer",
1483
- "x-api-key"
1501
+ "x-api-key",
1502
+ "api-key"
1484
1503
  ],
1485
1504
  "default": "bearer"
1486
1505
  },
@@ -1497,6 +1516,7 @@
1497
1516
  "together",
1498
1517
  "fireworks",
1499
1518
  "dashscope",
1519
+ "gemini",
1500
1520
  "none"
1501
1521
  ]
1502
1522
  },
@@ -1505,6 +1525,7 @@
1505
1525
  "enum": [
1506
1526
  "bearer",
1507
1527
  "x-api-key",
1528
+ "api-key",
1508
1529
  "none"
1509
1530
  ]
1510
1531
  },
@@ -1577,6 +1598,15 @@
1577
1598
  "maxLength": 100
1578
1599
  },
1579
1600
  "maxItems": 100
1601
+ },
1602
+ "supportedGenerationMethods": {
1603
+ "type": "array",
1604
+ "items": {
1605
+ "type": "string",
1606
+ "minLength": 1,
1607
+ "maxLength": 100
1608
+ },
1609
+ "maxItems": 100
1580
1610
  }
1581
1611
  },
1582
1612
  "required": [
@@ -1629,8 +1659,17 @@
1629
1659
  "claude",
1630
1660
  "codex",
1631
1661
  "grok",
1662
+ "opencode",
1632
1663
  "opencode2",
1633
- "pi"
1664
+ "pi",
1665
+ "omp",
1666
+ "dsh",
1667
+ "cline",
1668
+ "hermes",
1669
+ "prime-agent",
1670
+ "gemini",
1671
+ "aider",
1672
+ "kilo"
1634
1673
  ]
1635
1674
  },
1636
1675
  "model": {
@@ -1670,8 +1709,17 @@
1670
1709
  "claude",
1671
1710
  "codex",
1672
1711
  "grok",
1712
+ "opencode",
1673
1713
  "opencode2",
1674
- "pi"
1714
+ "pi",
1715
+ "omp",
1716
+ "dsh",
1717
+ "cline",
1718
+ "hermes",
1719
+ "prime-agent",
1720
+ "gemini",
1721
+ "aider",
1722
+ "kilo"
1675
1723
  ]
1676
1724
  },
1677
1725
  "model": {
@@ -1752,6 +1800,15 @@
1752
1800
  "maxLength": 100
1753
1801
  },
1754
1802
  "maxItems": 100
1803
+ },
1804
+ "supportedGenerationMethods": {
1805
+ "type": "array",
1806
+ "items": {
1807
+ "type": "string",
1808
+ "minLength": 1,
1809
+ "maxLength": 100
1810
+ },
1811
+ "maxItems": 100
1755
1812
  }
1756
1813
  },
1757
1814
  "required": [
@@ -1819,6 +1876,15 @@
1819
1876
  },
1820
1877
  "maxItems": 100
1821
1878
  },
1879
+ "supportedGenerationMethods": {
1880
+ "type": "array",
1881
+ "items": {
1882
+ "type": "string",
1883
+ "minLength": 1,
1884
+ "maxLength": 100
1885
+ },
1886
+ "maxItems": 100
1887
+ },
1822
1888
  "codingEligible": {
1823
1889
  "type": "boolean"
1824
1890
  }
@@ -1919,6 +1985,15 @@
1919
1985
  "maxLength": 100
1920
1986
  },
1921
1987
  "maxItems": 100
1988
+ },
1989
+ "supportedGenerationMethods": {
1990
+ "type": "array",
1991
+ "items": {
1992
+ "type": "string",
1993
+ "minLength": 1,
1994
+ "maxLength": 100
1995
+ },
1996
+ "maxItems": 100
1922
1997
  }
1923
1998
  },
1924
1999
  "required": [
@@ -1970,7 +2045,8 @@
1970
2045
  "enum": [
1971
2046
  "anthropic-messages",
1972
2047
  "openai-responses",
1973
- "openai-chat"
2048
+ "openai-chat",
2049
+ "gemini-generate-content"
1974
2050
  ]
1975
2051
  },
1976
2052
  "credentialEnv": {
@@ -1981,7 +2057,8 @@
1981
2057
  "type": "string",
1982
2058
  "enum": [
1983
2059
  "bearer",
1984
- "x-api-key"
2060
+ "x-api-key",
2061
+ "api-key"
1985
2062
  ],
1986
2063
  "default": "bearer"
1987
2064
  },
@@ -1998,6 +2075,7 @@
1998
2075
  "together",
1999
2076
  "fireworks",
2000
2077
  "dashscope",
2078
+ "gemini",
2001
2079
  "none"
2002
2080
  ]
2003
2081
  },
@@ -2006,6 +2084,7 @@
2006
2084
  "enum": [
2007
2085
  "bearer",
2008
2086
  "x-api-key",
2087
+ "api-key",
2009
2088
  "none"
2010
2089
  ]
2011
2090
  },
@@ -2078,6 +2157,15 @@
2078
2157
  "maxLength": 100
2079
2158
  },
2080
2159
  "maxItems": 100
2160
+ },
2161
+ "supportedGenerationMethods": {
2162
+ "type": "array",
2163
+ "items": {
2164
+ "type": "string",
2165
+ "minLength": 1,
2166
+ "maxLength": 100
2167
+ },
2168
+ "maxItems": 100
2081
2169
  }
2082
2170
  },
2083
2171
  "required": [
@@ -2130,8 +2218,17 @@
2130
2218
  "claude",
2131
2219
  "codex",
2132
2220
  "grok",
2221
+ "opencode",
2133
2222
  "opencode2",
2134
- "pi"
2223
+ "pi",
2224
+ "omp",
2225
+ "dsh",
2226
+ "cline",
2227
+ "hermes",
2228
+ "prime-agent",
2229
+ "gemini",
2230
+ "aider",
2231
+ "kilo"
2135
2232
  ]
2136
2233
  },
2137
2234
  "model": {
@@ -2217,6 +2314,15 @@
2217
2314
  "maxLength": 100
2218
2315
  },
2219
2316
  "maxItems": 100
2317
+ },
2318
+ "supportedGenerationMethods": {
2319
+ "type": "array",
2320
+ "items": {
2321
+ "type": "string",
2322
+ "minLength": 1,
2323
+ "maxLength": 100
2324
+ },
2325
+ "maxItems": 100
2220
2326
  }
2221
2327
  },
2222
2328
  "required": [
@@ -2276,8 +2382,17 @@
2276
2382
  "claude",
2277
2383
  "codex",
2278
2384
  "grok",
2385
+ "opencode",
2279
2386
  "opencode2",
2280
- "pi"
2387
+ "pi",
2388
+ "omp",
2389
+ "dsh",
2390
+ "cline",
2391
+ "hermes",
2392
+ "prime-agent",
2393
+ "gemini",
2394
+ "aider",
2395
+ "kilo"
2281
2396
  ]
2282
2397
  },
2283
2398
  "model": {
@@ -2334,8 +2449,17 @@
2334
2449
  "claude",
2335
2450
  "codex",
2336
2451
  "grok",
2452
+ "opencode",
2337
2453
  "opencode2",
2338
- "pi"
2454
+ "pi",
2455
+ "omp",
2456
+ "dsh",
2457
+ "cline",
2458
+ "hermes",
2459
+ "prime-agent",
2460
+ "gemini",
2461
+ "aider",
2462
+ "kilo"
2339
2463
  ]
2340
2464
  },
2341
2465
  "model": {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hasna/switcher",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "type": "module",
5
5
  "description": "Universal provider and model switcher for coding harnesses with an API, SDK and self-hosted storage",
6
6
  "license": "Apache-2.0",
@@ -47,8 +47,18 @@
47
47
  "scan:artifact": "bun scripts/artifact-scan.ts",
48
48
  "prepack": "bun run verify && bun run scan:artifact",
49
49
  "test:native-opencode-resume": "bun scripts/test-native-resume.ts",
50
+ "test:native-omp": "bun scripts/test-native-omp.ts",
50
51
  "test:native-opencode2-authority": "bun scripts/test-native-opencode2-authority.ts",
51
- "test:native-grok-resume": "SWITCHER_TEST_NATIVE_HARNESS=grok bun scripts/test-native-resume.ts"
52
+ "test:native-grok-resume": "SWITCHER_TEST_NATIVE_HARNESS=grok bun scripts/test-native-resume.ts",
53
+ "test:native-dsh": "bun scripts/test-native-dsh.ts",
54
+ "test:native-dsh-web": "bun scripts/test-native-dsh-web.ts",
55
+ "test:native-cline": "bun scripts/test-native-cline.ts",
56
+ "test:native-hermes": "bun scripts/test-native-hermes.ts",
57
+ "test:native-gemini": "bun scripts/test-native-gemini.ts",
58
+ "test:native-aider": "bun scripts/test-native-aider.ts",
59
+ "test:native-opencode-legacy": "bun scripts/test-native-opencode-legacy.ts",
60
+ "test:native-kilo": "bun scripts/test-native-kilo.ts",
61
+ "test:native-kilo-lifecycle": "bun scripts/test-native-kilo-lifecycle.ts"
52
62
  },
53
63
  "devDependencies": {
54
64
  "@types/bun": "1.3.14",