@jacobbd/relay-ai 0.9.7 → 0.9.8
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/dist/{chunk-NYKVDBQC.js → chunk-P4IS6537.js} +7 -1
- package/dist/chunk-P4IS6537.js.map +1 -0
- package/dist/{chunk-BJ4AE3PS.js → chunk-WIXM2H2D.js} +3 -3
- package/dist/{chunk-BJ4AE3PS.js.map → chunk-WIXM2H2D.js.map} +1 -1
- package/dist/cli.js +3 -3
- package/dist/core/index.d.ts +1 -0
- package/dist/core/index.js +428 -1
- package/dist/core/index.js.map +1 -1
- package/dist/{provider-templates-CGWE66TD.js → provider-templates-7M24FAAI.js} +2 -2
- package/dist/{ui-command-NM4MNZLO.js → ui-command-JIRLAHM6.js} +4 -4
- package/package.json +1 -1
- package/dist/chunk-NYKVDBQC.js.map +0 -1
- /package/dist/{provider-templates-CGWE66TD.js.map → provider-templates-7M24FAAI.js.map} +0 -0
- /package/dist/{ui-command-NM4MNZLO.js.map → ui-command-JIRLAHM6.js.map} +0 -0
package/dist/cli.js
CHANGED
|
@@ -199,7 +199,7 @@ import {
|
|
|
199
199
|
waitForCodexAppQuit,
|
|
200
200
|
writeSecureLogLine,
|
|
201
201
|
zenRegistryStub
|
|
202
|
-
} from "./chunk-
|
|
202
|
+
} from "./chunk-WIXM2H2D.js";
|
|
203
203
|
import {
|
|
204
204
|
filterTemplates,
|
|
205
205
|
getTemplateById,
|
|
@@ -207,7 +207,7 @@ import {
|
|
|
207
207
|
listAddableTemplates,
|
|
208
208
|
listSupportedTemplates,
|
|
209
209
|
listVisibleOAuthTemplates
|
|
210
|
-
} from "./chunk-
|
|
210
|
+
} from "./chunk-P4IS6537.js";
|
|
211
211
|
|
|
212
212
|
// src/cli.ts
|
|
213
213
|
import pc12 from "picocolors";
|
|
@@ -15792,7 +15792,7 @@ Options:
|
|
|
15792
15792
|
--trace Write debug logs under ~/.relay-ai/logs/`);
|
|
15793
15793
|
return 0;
|
|
15794
15794
|
}
|
|
15795
|
-
const { runUiCommand } = await import("./ui-command-
|
|
15795
|
+
const { runUiCommand } = await import("./ui-command-JIRLAHM6.js");
|
|
15796
15796
|
return runUiCommand({ trace: parsed.trace, serverMode: parsed.uiServerMode });
|
|
15797
15797
|
}
|
|
15798
15798
|
if (parsed.command === "models") {
|
package/dist/core/index.d.ts
CHANGED
package/dist/core/index.js
CHANGED
|
@@ -50,7 +50,7 @@ import { join as join2 } from "path";
|
|
|
50
50
|
// package.json
|
|
51
51
|
var package_default = {
|
|
52
52
|
name: "@jacobbd/relay-ai",
|
|
53
|
-
version: "0.9.
|
|
53
|
+
version: "0.9.8",
|
|
54
54
|
publishConfig: {
|
|
55
55
|
access: "public"
|
|
56
56
|
},
|
|
@@ -1739,6 +1739,431 @@ function saveRegistry(registry, path = getProvidersPath()) {
|
|
|
1739
1739
|
renameSync2(tmp, path);
|
|
1740
1740
|
}
|
|
1741
1741
|
|
|
1742
|
+
// src/provider-templates.ts
|
|
1743
|
+
var PROVIDER_TEMPLATES = [
|
|
1744
|
+
{
|
|
1745
|
+
id: "cline-pass",
|
|
1746
|
+
name: "ClinePass",
|
|
1747
|
+
authType: "api",
|
|
1748
|
+
authMethods: ["api", "oauth"],
|
|
1749
|
+
npm: "@ai-sdk/openai-compatible",
|
|
1750
|
+
defaultBaseUrl: "https://api.cline.bot/api/v1",
|
|
1751
|
+
signupUrl: "https://app.cline.bot",
|
|
1752
|
+
modelSource: "cline-recommended",
|
|
1753
|
+
headers: { "HTTP-Referer": "https://cline.bot", "X-Title": "Cline" },
|
|
1754
|
+
supported: true,
|
|
1755
|
+
subscriptionRisk: true
|
|
1756
|
+
},
|
|
1757
|
+
{
|
|
1758
|
+
id: "groq",
|
|
1759
|
+
name: "Groq",
|
|
1760
|
+
authType: "api",
|
|
1761
|
+
npm: "@ai-sdk/groq",
|
|
1762
|
+
defaultBaseUrl: "https://api.groq.com/openai/v1",
|
|
1763
|
+
signupUrl: "https://console.groq.com/keys",
|
|
1764
|
+
modelSource: "api-list",
|
|
1765
|
+
supported: true
|
|
1766
|
+
},
|
|
1767
|
+
{
|
|
1768
|
+
id: "nvidia",
|
|
1769
|
+
name: "Nvidia",
|
|
1770
|
+
authType: "api",
|
|
1771
|
+
npm: "@ai-sdk/openai-compatible",
|
|
1772
|
+
defaultBaseUrl: "https://integrate.api.nvidia.com/v1",
|
|
1773
|
+
signupUrl: "https://build.nvidia.com",
|
|
1774
|
+
modelSource: "api-list",
|
|
1775
|
+
supported: true
|
|
1776
|
+
},
|
|
1777
|
+
{
|
|
1778
|
+
id: "mistral",
|
|
1779
|
+
name: "Mistral",
|
|
1780
|
+
authType: "api",
|
|
1781
|
+
npm: "@ai-sdk/mistral",
|
|
1782
|
+
defaultBaseUrl: "https://api.mistral.ai/v1",
|
|
1783
|
+
signupUrl: "https://console.mistral.ai/api-keys",
|
|
1784
|
+
modelSource: "api-list",
|
|
1785
|
+
supported: true
|
|
1786
|
+
},
|
|
1787
|
+
{
|
|
1788
|
+
id: "togetherai",
|
|
1789
|
+
name: "Together AI",
|
|
1790
|
+
authType: "api",
|
|
1791
|
+
npm: "@ai-sdk/togetherai",
|
|
1792
|
+
defaultBaseUrl: "https://api.together.xyz/v1",
|
|
1793
|
+
signupUrl: "https://api.together.xyz/settings/api-keys",
|
|
1794
|
+
modelSource: "api-list",
|
|
1795
|
+
supported: true
|
|
1796
|
+
},
|
|
1797
|
+
{
|
|
1798
|
+
id: "cerebras",
|
|
1799
|
+
name: "Cerebras",
|
|
1800
|
+
authType: "api",
|
|
1801
|
+
npm: "@ai-sdk/cerebras",
|
|
1802
|
+
defaultBaseUrl: "https://api.cerebras.ai/v1",
|
|
1803
|
+
signupUrl: "https://cloud.cerebras.ai",
|
|
1804
|
+
modelSource: "api-list",
|
|
1805
|
+
supported: true
|
|
1806
|
+
},
|
|
1807
|
+
{
|
|
1808
|
+
id: "deepinfra",
|
|
1809
|
+
name: "DeepInfra",
|
|
1810
|
+
authType: "api",
|
|
1811
|
+
npm: "@ai-sdk/deepinfra",
|
|
1812
|
+
defaultBaseUrl: "https://api.deepinfra.com/v1/openai",
|
|
1813
|
+
signupUrl: "https://deepinfra.com/dash/api_keys",
|
|
1814
|
+
modelSource: "api-list",
|
|
1815
|
+
supported: true
|
|
1816
|
+
},
|
|
1817
|
+
{
|
|
1818
|
+
id: "deepseek",
|
|
1819
|
+
name: "DeepSeek",
|
|
1820
|
+
authType: "api",
|
|
1821
|
+
npm: "@ai-sdk/openai-compatible",
|
|
1822
|
+
defaultBaseUrl: "https://api.deepseek.com/v1",
|
|
1823
|
+
signupUrl: "https://platform.deepseek.com",
|
|
1824
|
+
modelSource: "api-list",
|
|
1825
|
+
supported: true
|
|
1826
|
+
},
|
|
1827
|
+
{
|
|
1828
|
+
id: "zhipu",
|
|
1829
|
+
name: "Zhipu AI (GLM)",
|
|
1830
|
+
authType: "api",
|
|
1831
|
+
npm: "@ai-sdk/openai-compatible",
|
|
1832
|
+
defaultBaseUrl: "https://open.bigmodel.cn/api/paas/v4",
|
|
1833
|
+
signupUrl: "https://open.bigmodel.cn",
|
|
1834
|
+
modelSource: "api-list",
|
|
1835
|
+
supported: true
|
|
1836
|
+
},
|
|
1837
|
+
{
|
|
1838
|
+
id: "moonshot",
|
|
1839
|
+
name: "Moonshot (Kimi)",
|
|
1840
|
+
authType: "api",
|
|
1841
|
+
npm: "@ai-sdk/openai-compatible",
|
|
1842
|
+
defaultBaseUrl: "https://api.moonshot.cn/v1",
|
|
1843
|
+
signupUrl: "https://platform.moonshot.cn",
|
|
1844
|
+
modelSource: "api-list",
|
|
1845
|
+
supported: true
|
|
1846
|
+
},
|
|
1847
|
+
{
|
|
1848
|
+
id: "moonshot-global",
|
|
1849
|
+
name: "Moonshot Global (kimi.ai)",
|
|
1850
|
+
authType: "api",
|
|
1851
|
+
npm: "@ai-sdk/openai-compatible",
|
|
1852
|
+
defaultBaseUrl: "https://api.moonshot.ai/v1",
|
|
1853
|
+
signupUrl: "https://platform.kimi.ai",
|
|
1854
|
+
modelSource: "api-list",
|
|
1855
|
+
supported: true
|
|
1856
|
+
},
|
|
1857
|
+
{
|
|
1858
|
+
id: "kimi-code",
|
|
1859
|
+
name: "Kimi Code (Subscription Required)",
|
|
1860
|
+
authType: "api",
|
|
1861
|
+
npm: "@ai-sdk/openai-compatible",
|
|
1862
|
+
defaultBaseUrl: "https://api.kimi.com/coding/v1",
|
|
1863
|
+
modelSource: "static-seed",
|
|
1864
|
+
staticModels: [
|
|
1865
|
+
{ id: "kimi-for-coding", name: "Kimi Code K2.7 (Unified)" }
|
|
1866
|
+
],
|
|
1867
|
+
supported: true
|
|
1868
|
+
},
|
|
1869
|
+
{
|
|
1870
|
+
id: "xai",
|
|
1871
|
+
name: "xAI",
|
|
1872
|
+
authType: "api",
|
|
1873
|
+
npm: "@ai-sdk/xai",
|
|
1874
|
+
defaultBaseUrl: "https://api.x.ai/v1",
|
|
1875
|
+
signupUrl: "https://console.x.ai",
|
|
1876
|
+
modelSource: "api-list",
|
|
1877
|
+
supported: true
|
|
1878
|
+
},
|
|
1879
|
+
{
|
|
1880
|
+
id: "perplexity",
|
|
1881
|
+
name: "Perplexity",
|
|
1882
|
+
authType: "api",
|
|
1883
|
+
npm: "@ai-sdk/perplexity",
|
|
1884
|
+
defaultBaseUrl: "https://api.perplexity.ai",
|
|
1885
|
+
signupUrl: "https://www.perplexity.ai/settings/api",
|
|
1886
|
+
modelSource: "api-list",
|
|
1887
|
+
supported: true
|
|
1888
|
+
},
|
|
1889
|
+
{
|
|
1890
|
+
id: "cohere",
|
|
1891
|
+
name: "Cohere",
|
|
1892
|
+
authType: "api",
|
|
1893
|
+
npm: "@ai-sdk/cohere",
|
|
1894
|
+
defaultBaseUrl: "https://api.cohere.com/compatibility/v1",
|
|
1895
|
+
signupUrl: "https://dashboard.cohere.com/api-keys",
|
|
1896
|
+
modelSource: "api-list",
|
|
1897
|
+
supported: true
|
|
1898
|
+
},
|
|
1899
|
+
{
|
|
1900
|
+
id: "openai",
|
|
1901
|
+
name: "OpenAI",
|
|
1902
|
+
authType: "api",
|
|
1903
|
+
npm: "@ai-sdk/openai",
|
|
1904
|
+
defaultBaseUrl: "https://api.openai.com/v1",
|
|
1905
|
+
signupUrl: "https://platform.openai.com/api-keys",
|
|
1906
|
+
modelSource: "api-list",
|
|
1907
|
+
supported: true
|
|
1908
|
+
},
|
|
1909
|
+
{
|
|
1910
|
+
id: "google",
|
|
1911
|
+
name: "Google Gemini",
|
|
1912
|
+
authType: "api",
|
|
1913
|
+
npm: "@ai-sdk/google",
|
|
1914
|
+
defaultBaseUrl: "https://generativelanguage.googleapis.com/v1beta/openai",
|
|
1915
|
+
signupUrl: "https://aistudio.google.com/apikey",
|
|
1916
|
+
modelSource: "api-list",
|
|
1917
|
+
supported: true
|
|
1918
|
+
},
|
|
1919
|
+
{
|
|
1920
|
+
id: "alibaba",
|
|
1921
|
+
name: "Alibaba DashScope (China)",
|
|
1922
|
+
authType: "api",
|
|
1923
|
+
npm: "@ai-sdk/alibaba",
|
|
1924
|
+
defaultBaseUrl: "https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
1925
|
+
signupUrl: "https://dashscope.console.aliyun.com/apiKey",
|
|
1926
|
+
modelSource: "api-list",
|
|
1927
|
+
supported: true
|
|
1928
|
+
},
|
|
1929
|
+
{
|
|
1930
|
+
id: "qwen-cloud-token-plan",
|
|
1931
|
+
name: "Qwen Cloud (Token Plan)",
|
|
1932
|
+
shortName: "Qwen Cloud",
|
|
1933
|
+
authType: "api",
|
|
1934
|
+
npm: "@ai-sdk/alibaba",
|
|
1935
|
+
defaultBaseUrl: "https://token-plan.ap-southeast-1.maas.aliyuncs.com/compatible-mode/v1",
|
|
1936
|
+
signupUrl: "https://home.qwencloud.com/api-keys",
|
|
1937
|
+
modelSource: "api-list",
|
|
1938
|
+
supported: true
|
|
1939
|
+
},
|
|
1940
|
+
{
|
|
1941
|
+
id: "qwen-cloud-payg",
|
|
1942
|
+
name: "Qwen Cloud (Pay-As-You-Go)",
|
|
1943
|
+
shortName: "Qwen Cloud",
|
|
1944
|
+
authType: "api",
|
|
1945
|
+
npm: "@ai-sdk/alibaba",
|
|
1946
|
+
defaultBaseUrl: "https://dashscope-intl.aliyuncs.com/compatible-mode/v1",
|
|
1947
|
+
signupUrl: "https://home.qwencloud.com/api-keys",
|
|
1948
|
+
modelSource: "api-list",
|
|
1949
|
+
supported: true
|
|
1950
|
+
},
|
|
1951
|
+
{
|
|
1952
|
+
id: "openrouter",
|
|
1953
|
+
name: "OpenRouter",
|
|
1954
|
+
authType: "api",
|
|
1955
|
+
npm: "@openrouter/ai-sdk-provider",
|
|
1956
|
+
defaultBaseUrl: "https://openrouter.ai/api/v1",
|
|
1957
|
+
signupUrl: "https://openrouter.ai/keys",
|
|
1958
|
+
modelSource: "api-list",
|
|
1959
|
+
supported: true
|
|
1960
|
+
},
|
|
1961
|
+
{
|
|
1962
|
+
id: "kilo",
|
|
1963
|
+
name: "Kilo Code",
|
|
1964
|
+
authType: "api",
|
|
1965
|
+
npm: "@ai-sdk/openai-compatible",
|
|
1966
|
+
defaultBaseUrl: "https://api.kilo.ai/api/gateway",
|
|
1967
|
+
modelsPath: "/models",
|
|
1968
|
+
signupUrl: "https://app.kilo.ai",
|
|
1969
|
+
apiKeyOptional: true,
|
|
1970
|
+
anonymousFreeModels: true,
|
|
1971
|
+
modelSource: "api-list",
|
|
1972
|
+
supported: true
|
|
1973
|
+
},
|
|
1974
|
+
{
|
|
1975
|
+
id: "ollama",
|
|
1976
|
+
name: "Ollama",
|
|
1977
|
+
authType: "api",
|
|
1978
|
+
npm: "@ai-sdk/openai-compatible",
|
|
1979
|
+
defaultBaseUrl: "http://127.0.0.1:11434/v1",
|
|
1980
|
+
urlPrompt: "Ollama API Base URL:",
|
|
1981
|
+
apiKeyOptional: true,
|
|
1982
|
+
modelSource: "api-list",
|
|
1983
|
+
supported: true
|
|
1984
|
+
},
|
|
1985
|
+
{
|
|
1986
|
+
id: "lmstudio",
|
|
1987
|
+
name: "LM Studio",
|
|
1988
|
+
authType: "api",
|
|
1989
|
+
npm: "@ai-sdk/openai-compatible",
|
|
1990
|
+
defaultBaseUrl: "http://127.0.0.1:1234/v1",
|
|
1991
|
+
urlPrompt: "LM Studio API Base URL:",
|
|
1992
|
+
apiKeyOptional: true,
|
|
1993
|
+
modelSource: "api-list",
|
|
1994
|
+
supported: true
|
|
1995
|
+
},
|
|
1996
|
+
{
|
|
1997
|
+
id: "venice",
|
|
1998
|
+
name: "Venice AI",
|
|
1999
|
+
authType: "api",
|
|
2000
|
+
npm: "venice-ai-sdk-provider",
|
|
2001
|
+
defaultBaseUrl: "https://api.venice.ai/api/v1",
|
|
2002
|
+
signupUrl: "https://venice.ai/settings/api",
|
|
2003
|
+
modelSource: "api-list",
|
|
2004
|
+
supported: true
|
|
2005
|
+
},
|
|
2006
|
+
{
|
|
2007
|
+
id: "cloudflare",
|
|
2008
|
+
name: "Cloudflare Workers AI",
|
|
2009
|
+
authType: "api",
|
|
2010
|
+
npm: "@ai-sdk/openai-compatible",
|
|
2011
|
+
defaultBaseUrl: "https://api.cloudflare.com/client/v4/accounts/{ACCOUNT_ID}/ai/v1",
|
|
2012
|
+
modelsPath: "/models/search?task=Text%20Generation",
|
|
2013
|
+
signupUrl: "https://dash.cloudflare.com",
|
|
2014
|
+
accountIdPrompt: "Cloudflare Account ID:",
|
|
2015
|
+
modelSource: "api-list",
|
|
2016
|
+
supported: true
|
|
2017
|
+
},
|
|
2018
|
+
{
|
|
2019
|
+
id: "anthropic",
|
|
2020
|
+
name: "Anthropic",
|
|
2021
|
+
authType: "api",
|
|
2022
|
+
npm: "@ai-sdk/anthropic",
|
|
2023
|
+
defaultBaseUrl: "https://api.anthropic.com",
|
|
2024
|
+
signupUrl: "https://console.anthropic.com/settings/keys",
|
|
2025
|
+
modelSource: "api-list",
|
|
2026
|
+
supported: true
|
|
2027
|
+
},
|
|
2028
|
+
{
|
|
2029
|
+
id: "bedrock",
|
|
2030
|
+
name: "Amazon Bedrock",
|
|
2031
|
+
authType: "api",
|
|
2032
|
+
npm: "@ai-sdk/amazon-bedrock",
|
|
2033
|
+
modelSource: "manual-only",
|
|
2034
|
+
supported: false,
|
|
2035
|
+
unsupportedReason: "Not supported yet (requires AWS credentials). Optional: relay-ai providers import if already set up in OpenCode CLI."
|
|
2036
|
+
},
|
|
2037
|
+
{
|
|
2038
|
+
id: "azure",
|
|
2039
|
+
name: "Azure OpenAI",
|
|
2040
|
+
authType: "api",
|
|
2041
|
+
npm: "@ai-sdk/azure",
|
|
2042
|
+
modelSource: "manual-only",
|
|
2043
|
+
supported: false,
|
|
2044
|
+
unsupportedReason: "Not supported yet (requires Azure deployment URLs). Optional: relay-ai providers import if already set up in OpenCode CLI."
|
|
2045
|
+
},
|
|
2046
|
+
{
|
|
2047
|
+
id: "vertex",
|
|
2048
|
+
name: "Google Vertex AI",
|
|
2049
|
+
authType: "none",
|
|
2050
|
+
npm: "@ai-sdk/google-vertex",
|
|
2051
|
+
modelSource: "manual-only",
|
|
2052
|
+
supported: false,
|
|
2053
|
+
unsupportedReason: "Uses gcloud Application Default Credentials \u2014 use relay-ai server --vertex, not an API key."
|
|
2054
|
+
},
|
|
2055
|
+
{
|
|
2056
|
+
id: "opencode-cloud",
|
|
2057
|
+
name: "OpenCode Zen / Go",
|
|
2058
|
+
authType: "api",
|
|
2059
|
+
npm: "@ai-sdk/openai-compatible",
|
|
2060
|
+
signupUrl: "https://opencode.ai/auth",
|
|
2061
|
+
modelSource: "zen-go-api",
|
|
2062
|
+
supported: true
|
|
2063
|
+
},
|
|
2064
|
+
{
|
|
2065
|
+
id: "zen",
|
|
2066
|
+
name: "OpenCode Zen",
|
|
2067
|
+
authType: "api",
|
|
2068
|
+
npm: "@ai-sdk/openai-compatible",
|
|
2069
|
+
signupUrl: "https://opencode.ai/auth",
|
|
2070
|
+
modelSource: "zen-go-api",
|
|
2071
|
+
supported: true,
|
|
2072
|
+
addable: false
|
|
2073
|
+
},
|
|
2074
|
+
{
|
|
2075
|
+
id: "go",
|
|
2076
|
+
name: "OpenCode Go",
|
|
2077
|
+
authType: "api",
|
|
2078
|
+
npm: "@ai-sdk/openai-compatible",
|
|
2079
|
+
signupUrl: "https://opencode.ai/auth",
|
|
2080
|
+
modelSource: "zen-go-api",
|
|
2081
|
+
supported: true,
|
|
2082
|
+
addable: false
|
|
2083
|
+
},
|
|
2084
|
+
// Subscription OAuth providers — Authorization Code + PKCE (browser redirect)
|
|
2085
|
+
// ⚠️ These extract tokens from paid subscriptions. Account risk — see plan docs.
|
|
2086
|
+
{
|
|
2087
|
+
id: "claude-code",
|
|
2088
|
+
name: "Claude Code (Anthropic subscription)",
|
|
2089
|
+
shortName: "Claude Code",
|
|
2090
|
+
authType: "oauth",
|
|
2091
|
+
npm: "@ai-sdk/anthropic",
|
|
2092
|
+
defaultBaseUrl: "https://api.anthropic.com",
|
|
2093
|
+
signupUrl: "https://claude.ai",
|
|
2094
|
+
modelSource: "api-list",
|
|
2095
|
+
supported: true,
|
|
2096
|
+
hidden: true,
|
|
2097
|
+
subscriptionRisk: true
|
|
2098
|
+
},
|
|
2099
|
+
{
|
|
2100
|
+
id: "antigravity",
|
|
2101
|
+
name: "Cloud Code Assist OAuth (Google)",
|
|
2102
|
+
shortName: "Cloud Code Assist",
|
|
2103
|
+
authType: "oauth",
|
|
2104
|
+
npm: "@ai-sdk/openai-compatible",
|
|
2105
|
+
signupUrl: "https://antigravity.google",
|
|
2106
|
+
modelSource: "api-list",
|
|
2107
|
+
supported: true,
|
|
2108
|
+
hidden: true,
|
|
2109
|
+
subscriptionRisk: true
|
|
2110
|
+
},
|
|
2111
|
+
// OAuth-gated subscription providers — device code or broker sign-in
|
|
2112
|
+
{
|
|
2113
|
+
id: "xai-oauth",
|
|
2114
|
+
name: "xAI Grok (SuperGrok)",
|
|
2115
|
+
shortName: "xAI Grok",
|
|
2116
|
+
authType: "oauth",
|
|
2117
|
+
npm: "@ai-sdk/xai",
|
|
2118
|
+
signupUrl: "https://x.ai",
|
|
2119
|
+
modelSource: "api-list",
|
|
2120
|
+
supported: true
|
|
2121
|
+
},
|
|
2122
|
+
{
|
|
2123
|
+
id: "openai-oauth",
|
|
2124
|
+
name: "OpenAI (ChatGPT)",
|
|
2125
|
+
shortName: "OpenAI",
|
|
2126
|
+
authType: "oauth",
|
|
2127
|
+
npm: "@ai-sdk/openai",
|
|
2128
|
+
signupUrl: "https://chatgpt.com",
|
|
2129
|
+
modelSource: "api-list",
|
|
2130
|
+
supported: true
|
|
2131
|
+
},
|
|
2132
|
+
{
|
|
2133
|
+
id: "github-copilot",
|
|
2134
|
+
name: "GitHub Copilot",
|
|
2135
|
+
authType: "oauth",
|
|
2136
|
+
npm: "@ai-sdk/openai-compatible",
|
|
2137
|
+
defaultBaseUrl: "https://api.githubcopilot.com",
|
|
2138
|
+
modelsPath: "/models",
|
|
2139
|
+
signupUrl: "https://github.com/features/copilot",
|
|
2140
|
+
modelSource: "api-list",
|
|
2141
|
+
headers: { "Editor-Version": "vscode/1.85.1" },
|
|
2142
|
+
supported: true
|
|
2143
|
+
}
|
|
2144
|
+
];
|
|
2145
|
+
function getTemplateById(id) {
|
|
2146
|
+
return PROVIDER_TEMPLATES.find((t) => t.id === id);
|
|
2147
|
+
}
|
|
2148
|
+
|
|
2149
|
+
// src/registry/resolve-template.ts
|
|
2150
|
+
var TEMPLATE_ID_ALIASES = {
|
|
2151
|
+
"google-vertex": "vertex"
|
|
2152
|
+
};
|
|
2153
|
+
function resolveProviderTemplate(provider) {
|
|
2154
|
+
const candidates = [
|
|
2155
|
+
TEMPLATE_ID_ALIASES[provider.templateId],
|
|
2156
|
+
provider.templateId,
|
|
2157
|
+
TEMPLATE_ID_ALIASES[provider.id],
|
|
2158
|
+
provider.id
|
|
2159
|
+
].filter(Boolean);
|
|
2160
|
+
for (const id of candidates) {
|
|
2161
|
+
const template = getTemplateById(id);
|
|
2162
|
+
if (template) return template;
|
|
2163
|
+
}
|
|
2164
|
+
return void 0;
|
|
2165
|
+
}
|
|
2166
|
+
|
|
1742
2167
|
// src/core/errors.ts
|
|
1743
2168
|
var DEFAULT_RETRYABLE = {
|
|
1744
2169
|
INVALID_ROUTE_ID: false,
|
|
@@ -1928,10 +2353,12 @@ function favoriteKey(providerId, modelId) {
|
|
|
1928
2353
|
}
|
|
1929
2354
|
function toDescriptor(provider, model, favorites) {
|
|
1930
2355
|
const upstreamModelId = model.upstreamModelId ?? model.id;
|
|
2356
|
+
const providerShortName = resolveProviderTemplate(provider)?.shortName ?? provider.name;
|
|
1931
2357
|
return {
|
|
1932
2358
|
routeId: toRelayRouteId(provider.id, model.id),
|
|
1933
2359
|
providerId: provider.id,
|
|
1934
2360
|
providerName: provider.name,
|
|
2361
|
+
providerShortName,
|
|
1935
2362
|
modelId: model.id,
|
|
1936
2363
|
upstreamModelId,
|
|
1937
2364
|
displayName: model.name,
|