@juspay/neurolink 12.38.0 → 12.39.0
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/CHANGELOG.md +2 -2
- package/README.md +1 -1
- package/dist/browser/neurolink.min.js +464 -464
- package/dist/constants/enums.d.ts +226 -0
- package/dist/constants/enums.js +246 -0
- package/dist/core/modelConfiguration.js +1 -0
- package/dist/providers/anthropic/client.js +8 -1
- package/dist/providers/catalog/above-dev.json +194 -0
- package/dist/providers/catalog/aiand.json +204 -0
- package/dist/providers/catalog/ambient.json +117 -0
- package/dist/providers/catalog/bee-heossi.json +174 -0
- package/dist/providers/catalog/charm-hyper.json +349 -0
- package/dist/providers/catalog/chutes.json +236 -0
- package/dist/providers/catalog/deepinfra.json +157 -0
- package/dist/providers/catalog/empiriolabs.json +143 -0
- package/dist/providers/catalog/featherless-ai.json +212 -0
- package/dist/providers/catalog/inco.json +196 -0
- package/dist/providers/catalog/index.generated.d.ts +1 -1
- package/dist/providers/catalog/index.generated.js +60 -0
- package/dist/providers/catalog/inference-net.json +172 -0
- package/dist/providers/catalog/koscompute.json +81 -0
- package/dist/providers/catalog/lilac.json +107 -0
- package/dist/providers/catalog/llmtech.json +63 -0
- package/dist/providers/catalog/moark.json +94 -0
- package/dist/providers/catalog/neuralwatt.json +179 -0
- package/dist/providers/catalog/ovhcloud.json +232 -0
- package/dist/providers/catalog/pareto-inference.json +74 -0
- package/dist/providers/catalog/sarvam.json +72 -0
- package/dist/providers/catalog/schema.d.ts +2 -2
- package/dist/providers/catalog/synthetic.json +205 -0
- package/dist/providers/openRouter/client.js +1 -0
- package/dist/providers/openaiChatCompletionsBase.js +37 -1
- package/dist/types/openaiCompatible.d.ts +10 -0
- package/dist/types/providerCatalog.generated.d.ts +2 -2
- package/dist/types/providers.d.ts +80 -0
- package/docs-site/static/search-index.json +221 -4
- package/package.json +2 -1
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "./provider-catalog.schema.json",
|
|
3
|
+
"id": "synthetic",
|
|
4
|
+
"displayName": "Synthetic",
|
|
5
|
+
"aliases": [],
|
|
6
|
+
"tier": 2,
|
|
7
|
+
"wire": {
|
|
8
|
+
"baseURL": "https://api.synthetic.new/openai/v1"
|
|
9
|
+
},
|
|
10
|
+
"models": {
|
|
11
|
+
"default": "syn:large:text",
|
|
12
|
+
"fallbacks": [
|
|
13
|
+
"syn:small:text",
|
|
14
|
+
"syn:large:vision",
|
|
15
|
+
"syn:small:vision",
|
|
16
|
+
"hf:zai-org/GLM-5.3-Flash",
|
|
17
|
+
"hf:openai/gpt-oss-120b",
|
|
18
|
+
"hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4",
|
|
19
|
+
"hf:deepseek-ai/DeepSeek-V4.1-Flash",
|
|
20
|
+
"hf:moonshotai/Kimi-K3",
|
|
21
|
+
"hf:Qwen/Qwen3.8-27B",
|
|
22
|
+
"hf:zai-org/GLM-4.7-Flash"
|
|
23
|
+
],
|
|
24
|
+
"defaultContextWindow": 524288,
|
|
25
|
+
"defaultMaxOutputTokens": 65536,
|
|
26
|
+
"catalog": {
|
|
27
|
+
"syn:large:text": {
|
|
28
|
+
"contextWindow": 524288,
|
|
29
|
+
"maxOutputTokens": 65536,
|
|
30
|
+
"pricingPerMTok": {
|
|
31
|
+
"input": 0.6,
|
|
32
|
+
"output": 1.2,
|
|
33
|
+
"cachedInput": 0.03
|
|
34
|
+
},
|
|
35
|
+
"vision": true,
|
|
36
|
+
"status": "production",
|
|
37
|
+
"description": "Recommended - Synthetic's \"large:text\" convenience alias for deepseek-ai/DeepSeek-V4.1-Flash, described by the vendor as \"an efficient near-Fable model with vision.\" Despite the `:text` suffix it accepts image input (input_modalities: text, image, per the live roster). 512K context, 64K max output. Per unauthenticated GET https://api.synthetic.new/openai/v1/models (2026-09-28, HTTP 200): supported_features = tools, json_mode, structured_outputs, reasoning; reasoning_parameters.efforts = none/low/high/xhigh/max. Pricing (converted from the roster's per-token USD rates): $0.60 / $1.20 per MTok input/output, $0.03 per MTok cached input. Also reachable via the underlying weights id hf:deepseek-ai/DeepSeek-V4.1-Flash (same model, same pricing) — see that catalog entry. Not itself capability-probed with a live key; this is a roster+docs verified entry (see evidence.liveMatrix: null)."
|
|
38
|
+
},
|
|
39
|
+
"syn:small:text": {
|
|
40
|
+
"contextWindow": 196608,
|
|
41
|
+
"maxOutputTokens": 65536,
|
|
42
|
+
"pricingPerMTok": {
|
|
43
|
+
"input": 0.1,
|
|
44
|
+
"output": 0.5,
|
|
45
|
+
"cachedInput": 0.02
|
|
46
|
+
},
|
|
47
|
+
"vision": false,
|
|
48
|
+
"status": "production",
|
|
49
|
+
"description": "Synthetic's \"small:text\" convenience alias for zai-org/GLM-4.7-Flash — the smaller, faster sibling in the ~30B-parameter class, text-only input (no image modality on the live roster). Consumes rate limits more slowly per the vendor's own description. 192K context, 64K max output. supported_features = tools, json_mode, structured_outputs, reasoning (live roster GET, 2026-09-28). Pricing: $0.10 / $0.50 per MTok input/output, $0.02 per MTok cached input. Also reachable via hf:zai-org/GLM-4.7-Flash (same model). Roster+docs verified only; no live key probe."
|
|
50
|
+
},
|
|
51
|
+
"syn:large:vision": {
|
|
52
|
+
"contextWindow": 524288,
|
|
53
|
+
"maxOutputTokens": 65536,
|
|
54
|
+
"pricingPerMTok": {
|
|
55
|
+
"input": 3.0,
|
|
56
|
+
"output": 15.0,
|
|
57
|
+
"cachedInput": 0.45
|
|
58
|
+
},
|
|
59
|
+
"vision": true,
|
|
60
|
+
"status": "production",
|
|
61
|
+
"description": "Synthetic's \"large:vision\" convenience alias for moonshotai/Kimi-K3, described by the vendor as \"a massive 2.8T-parameter open-source model ... [that] supports vision on uploaded images.\" 512K context, 64K max output. supported_features = tools, json_mode, structured_outputs, reasoning (live roster GET, 2026-09-28). Pricing: $3.00 / $15.00 per MTok input/output, $0.45 per MTok cached input — the most expensive model in this roster. Also reachable via hf:moonshotai/Kimi-K3 (same model). Roster+docs verified only; no live key probe."
|
|
62
|
+
},
|
|
63
|
+
"syn:small:vision": {
|
|
64
|
+
"contextWindow": 262144,
|
|
65
|
+
"maxOutputTokens": 65536,
|
|
66
|
+
"pricingPerMTok": {
|
|
67
|
+
"input": 0.45,
|
|
68
|
+
"output": 2.2,
|
|
69
|
+
"cachedInput": 0.09
|
|
70
|
+
},
|
|
71
|
+
"vision": true,
|
|
72
|
+
"status": "production",
|
|
73
|
+
"description": "Synthetic's \"small:vision\" convenience alias for Qwen/Qwen3.8-27B — \"a small but capable coding and vision model from Qwen\" that consumes rate limits less quickly per the vendor. 256K context, 64K max output. supported_features = tools, json_mode, structured_outputs, reasoning (live roster GET, 2026-09-28). Pricing: $0.45 / $2.20 per MTok input/output, $0.09 per MTok cached input. Also reachable via hf:Qwen/Qwen3.8-27B (same model). Roster+docs verified only; no live key probe."
|
|
74
|
+
},
|
|
75
|
+
"hf:zai-org/GLM-5.3-Flash": {
|
|
76
|
+
"contextWindow": 524288,
|
|
77
|
+
"maxOutputTokens": 65536,
|
|
78
|
+
"pricingPerMTok": {
|
|
79
|
+
"input": 0.15,
|
|
80
|
+
"output": 0.5,
|
|
81
|
+
"cachedInput": 0.04
|
|
82
|
+
},
|
|
83
|
+
"vision": true,
|
|
84
|
+
"status": "production",
|
|
85
|
+
"description": "zai-org GLM-5.3-Flash, described by the vendor as \"an extremely efficient, Opus-4.8-equivalent model with vision.\" No `syn:` short alias — only reachable via this hf: (Hugging Face weights id) form. 512K context, 64K max output. supported_features = tools, json_mode, structured_outputs, reasoning (live roster GET, 2026-09-28). Pricing: $0.15 / $0.50 per MTok input/output, $0.04 per MTok cached input. Roster+docs verified only; no live key probe."
|
|
86
|
+
},
|
|
87
|
+
"hf:openai/gpt-oss-120b": {
|
|
88
|
+
"contextWindow": 131072,
|
|
89
|
+
"maxOutputTokens": 65536,
|
|
90
|
+
"pricingPerMTok": {
|
|
91
|
+
"input": 0.1,
|
|
92
|
+
"output": 0.1,
|
|
93
|
+
"cachedInput": 0.02
|
|
94
|
+
},
|
|
95
|
+
"vision": false,
|
|
96
|
+
"status": "production",
|
|
97
|
+
"description": "OpenAI's open-weight gpt-oss-120b, described by the vendor as \"OpenAI's largest open-source model. A strong reasoning model with great support for agentic tasks.\" Text-only input on the live roster. 128K context, 64K max output. supported_features = tools, json_mode, structured_outputs, reasoning (live roster GET, 2026-09-28). Pricing: $0.10 / $0.10 per MTok input/output, $0.02 per MTok cached input. Roster+docs verified only; no live key probe."
|
|
98
|
+
},
|
|
99
|
+
"hf:nvidia/NVIDIA-Nemotron-3-Super-120B-A12B-NVFP4": {
|
|
100
|
+
"contextWindow": 262144,
|
|
101
|
+
"maxOutputTokens": 65536,
|
|
102
|
+
"pricingPerMTok": {
|
|
103
|
+
"input": 0.3,
|
|
104
|
+
"output": 1.0,
|
|
105
|
+
"cachedInput": 0.06
|
|
106
|
+
},
|
|
107
|
+
"vision": false,
|
|
108
|
+
"status": "production",
|
|
109
|
+
"description": "NVIDIA Nemotron-3-Super-120B (NVFP4 quant on the roster id; the vendor's own hugging_face_id field reports the FP8 build), described by the vendor as \"a fast, 120b-parameter model with good support for coding agents. Consumes rate limits more slowly.\" Text-only input on the live roster. 256K context, 64K max output. supported_features = tools, json_mode, structured_outputs, reasoning (live roster GET, 2026-09-28). Pricing: $0.30 / $1.00 per MTok input/output, $0.06 per MTok cached input. Roster+docs verified only; no live key probe."
|
|
110
|
+
},
|
|
111
|
+
"hf:deepseek-ai/DeepSeek-V4.1-Flash": {
|
|
112
|
+
"contextWindow": 524288,
|
|
113
|
+
"maxOutputTokens": 65536,
|
|
114
|
+
"pricingPerMTok": {
|
|
115
|
+
"input": 0.6,
|
|
116
|
+
"output": 1.2,
|
|
117
|
+
"cachedInput": 0.03
|
|
118
|
+
},
|
|
119
|
+
"vision": true,
|
|
120
|
+
"status": "production",
|
|
121
|
+
"description": "Underlying weights id for the model also reachable via the syn:large:text convenience alias — same hugging_face_id, same pricing, same specs. Kept as a distinct catalog/fallback entry because both id forms are valid values for `model` on the live roster. See syn:large:text for the fuller description."
|
|
122
|
+
},
|
|
123
|
+
"hf:moonshotai/Kimi-K3": {
|
|
124
|
+
"contextWindow": 524288,
|
|
125
|
+
"maxOutputTokens": 65536,
|
|
126
|
+
"pricingPerMTok": {
|
|
127
|
+
"input": 3.0,
|
|
128
|
+
"output": 15.0,
|
|
129
|
+
"cachedInput": 0.45
|
|
130
|
+
},
|
|
131
|
+
"vision": true,
|
|
132
|
+
"status": "production",
|
|
133
|
+
"description": "Underlying weights id for the model also reachable via the syn:large:vision convenience alias — same hugging_face_id, same pricing, same specs. Kept as a distinct catalog/fallback entry because both id forms are valid values for `model` on the live roster. See syn:large:vision for the fuller description."
|
|
134
|
+
},
|
|
135
|
+
"hf:Qwen/Qwen3.8-27B": {
|
|
136
|
+
"contextWindow": 262144,
|
|
137
|
+
"maxOutputTokens": 65536,
|
|
138
|
+
"pricingPerMTok": {
|
|
139
|
+
"input": 0.45,
|
|
140
|
+
"output": 2.2,
|
|
141
|
+
"cachedInput": 0.09
|
|
142
|
+
},
|
|
143
|
+
"vision": true,
|
|
144
|
+
"status": "production",
|
|
145
|
+
"description": "Underlying weights id for the model also reachable via the syn:small:vision convenience alias — same hugging_face_id (Qwen/Qwen3.8-27B-FP8), same pricing, same specs. Kept as a distinct catalog/fallback entry because both id forms are valid values for `model` on the live roster. See syn:small:vision for the fuller description."
|
|
146
|
+
},
|
|
147
|
+
"hf:zai-org/GLM-4.7-Flash": {
|
|
148
|
+
"contextWindow": 196608,
|
|
149
|
+
"maxOutputTokens": 65536,
|
|
150
|
+
"pricingPerMTok": {
|
|
151
|
+
"input": 0.1,
|
|
152
|
+
"output": 0.5,
|
|
153
|
+
"cachedInput": 0.02
|
|
154
|
+
},
|
|
155
|
+
"vision": false,
|
|
156
|
+
"status": "production",
|
|
157
|
+
"description": "Underlying weights id for the model also reachable via the syn:small:text convenience alias — same hugging_face_id, same pricing, same specs. Kept as a distinct catalog/fallback entry because both id forms are valid values for `model` on the live roster. See syn:small:text for the fuller description."
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"topModels": [
|
|
161
|
+
"syn:large:text",
|
|
162
|
+
"syn:small:text",
|
|
163
|
+
"syn:large:vision",
|
|
164
|
+
"syn:small:vision",
|
|
165
|
+
"hf:zai-org/GLM-5.3-Flash"
|
|
166
|
+
]
|
|
167
|
+
},
|
|
168
|
+
"capabilities": {
|
|
169
|
+
"text": true,
|
|
170
|
+
"streaming": true,
|
|
171
|
+
"tools": true,
|
|
172
|
+
"toolsWithStreaming": true,
|
|
173
|
+
"structuredOutput": true,
|
|
174
|
+
"structuredOutputWithTools": false,
|
|
175
|
+
"embeddings": false,
|
|
176
|
+
"thinking": true
|
|
177
|
+
},
|
|
178
|
+
"errorRules": [],
|
|
179
|
+
"setup": {
|
|
180
|
+
"url": "https://synthetic.new",
|
|
181
|
+
"apiKeyFormat": null,
|
|
182
|
+
"billingPolicy": "no-free-tier",
|
|
183
|
+
"instructions": [
|
|
184
|
+
"1. Visit: https://synthetic.new and choose Sign up (or Log in if you already have an account)",
|
|
185
|
+
"2. Subscribe to a Pack ($1/day or $30/month, 500 requests/5hr per the pricing page) or set up enterprise usage-based billing — Synthetic has no free tier or keyless trial",
|
|
186
|
+
"3. Generate an API key from your account dashboard",
|
|
187
|
+
"4. Set {apiKeyEnvVar} in your .env file"
|
|
188
|
+
],
|
|
189
|
+
"description": "OpenAI-compatible endpoint at https://api.synthetic.new/openai/v1 (confirmed by both the vendor's own docs and LiteLLM's third-party provider page, which lists /chat/completions as the only supported operation), serving 11 model ids covering 7 unique always-on open-source models (DeepSeek V4.1 Flash, Kimi K3, Qwen 3.8 27B, GLM 5.3 Flash, GLM 4.7 Flash, GPT-OSS-120B, Nemotron-3-Super-120B) under one flat-fee or usage-based subscription. No free tier or keyless trial; billing is a $1/day or $30/month pack (500 req/5hr) or enterprise pay-per-token. The pricing page also lists a separate embeddings model (hf:nomic-ai/nomic-embed-text-v1.5) included in the subscription, but NeuroLink's embeddings capability is not currently wired for Tier-2 catalog providers (only OpenAI, Google AI Studio, Google Vertex and Bedrock embed natively), so capabilities.embeddings is false here regardless of vendor support."
|
|
190
|
+
},
|
|
191
|
+
"evidence": {
|
|
192
|
+
"rosterVerified": {
|
|
193
|
+
"date": "2026-09-28",
|
|
194
|
+
"method": "unauthenticated GET https://api.synthetic.new/openai/v1/models — 11 models; credential-free, no key used",
|
|
195
|
+
"status": 200
|
|
196
|
+
},
|
|
197
|
+
"billingProbe": {
|
|
198
|
+
"date": "2026-09-28",
|
|
199
|
+
"method": "unauthenticated GET https://synthetic.new/pricing — no free tier; $1/day or $30/month subscription pack (500 req/5hr), or enterprise usage-based pricing; credential-free, no key used",
|
|
200
|
+
"status": 200
|
|
201
|
+
},
|
|
202
|
+
"liveMatrix": null,
|
|
203
|
+
"addedInPR": "https://github.com/juspay/neurolink/pull/1848"
|
|
204
|
+
}
|
|
205
|
+
}
|
|
@@ -1648,6 +1648,12 @@ export class OpenAIChatCompletionsProvider extends BaseProvider {
|
|
|
1648
1648
|
// middleware short-circuits the request — the case where there is no
|
|
1649
1649
|
// turn to build on at all.
|
|
1650
1650
|
let loopConversation;
|
|
1651
|
+
// Cell-3 identity fix: the last model id the SERVER actually echoed on
|
|
1652
|
+
// the wire (via `onModelObserved`, see `runStreamLoop`), distinct from
|
|
1653
|
+
// the pre-call resolved/requested `modelId` below. Stays undefined for
|
|
1654
|
+
// backends that never echo `model` on a chunk, in which case the
|
|
1655
|
+
// `result.model` getter falls back to `modelId` — unchanged behavior.
|
|
1656
|
+
let observedServerModel;
|
|
1651
1657
|
const providerNameForLoop = this.providerName;
|
|
1652
1658
|
const streamBaseModel = {
|
|
1653
1659
|
specificationVersion: "v3",
|
|
@@ -1700,6 +1706,9 @@ export class OpenAIChatCompletionsProvider extends BaseProvider {
|
|
|
1700
1706
|
resolveUsage,
|
|
1701
1707
|
resolveFinish,
|
|
1702
1708
|
responseFormat,
|
|
1709
|
+
onModelObserved: (model) => {
|
|
1710
|
+
observedServerModel = model;
|
|
1711
|
+
},
|
|
1703
1712
|
});
|
|
1704
1713
|
const completion = loopPromise.then(() => Promise.all([usagePromise, finishPromise]).then(([usage, reason]) => ({
|
|
1705
1714
|
type: "finish",
|
|
@@ -1930,6 +1939,24 @@ export class OpenAIChatCompletionsProvider extends BaseProvider {
|
|
|
1930
1939
|
toolsUsed,
|
|
1931
1940
|
metadata: streamMetadata,
|
|
1932
1941
|
};
|
|
1942
|
+
// Cell-3 identity fix: `model` starts as a plain `modelId` data property
|
|
1943
|
+
// above (satisfying StreamResult's type and giving every reader a value
|
|
1944
|
+
// even before the loop starts), then gets redefined as a live getter.
|
|
1945
|
+
// A plain reassignment (`result.model = observedServerModel`) would not
|
|
1946
|
+
// survive `preserveLiveStreamAccessors`' re-wrapping at the
|
|
1947
|
+
// BaseProvider/NeuroLink boundaries — those boundaries spread `result`
|
|
1948
|
+
// into a new object BEFORE the background loop has produced a single
|
|
1949
|
+
// chunk, which freezes a plain field at its construction-time value.
|
|
1950
|
+
// Re-defining as a getter (the same mechanism already used for
|
|
1951
|
+
// `toolExecutions` below) means every boundary's spread re-applies the
|
|
1952
|
+
// getter itself, so a caller reading `.model` after draining `.stream`
|
|
1953
|
+
// sees whatever the server actually echoed, falling back to the
|
|
1954
|
+
// pre-call resolved `modelId` when the backend never echoed one.
|
|
1955
|
+
Object.defineProperty(result, "model", {
|
|
1956
|
+
enumerable: true,
|
|
1957
|
+
configurable: true,
|
|
1958
|
+
get: () => observedServerModel ?? modelId,
|
|
1959
|
+
});
|
|
1933
1960
|
// Lazy getter: every read transforms the live `toolExecutionSummaries`
|
|
1934
1961
|
// through the canonical `transformToolExecutions()` so consumers see
|
|
1935
1962
|
// `{name, input, output, duration}[]` (codebase convention), while still
|
|
@@ -1952,7 +1979,7 @@ export class OpenAIChatCompletionsProvider extends BaseProvider {
|
|
|
1952
1979
|
return result;
|
|
1953
1980
|
}
|
|
1954
1981
|
async runStreamLoop(args) {
|
|
1955
|
-
const { maxSteps, modelId, url, fetchImpl, abortSignal, options, conversation, openAITools, openAIToolChoice, toolsRecord, toolNameFromWire, emitter, toolsUsed, toolExecutionSummaries, pushChunk, closeChannel, resolveUsage, resolveFinish, responseFormat, } = args;
|
|
1982
|
+
const { maxSteps, modelId, url, fetchImpl, abortSignal, options, conversation, openAITools, openAIToolChoice, toolsRecord, toolNameFromWire, emitter, toolsUsed, toolExecutionSummaries, pushChunk, closeChannel, resolveUsage, resolveFinish, responseFormat, onModelObserved, } = args;
|
|
1956
1983
|
// Hoisted above the try so the catch can resolve the usage accumulated
|
|
1957
1984
|
// by steps that completed BEFORE the failure — those steps were billed.
|
|
1958
1985
|
let stepFinish = null;
|
|
@@ -2060,6 +2087,15 @@ export class OpenAIChatCompletionsProvider extends BaseProvider {
|
|
|
2060
2087
|
if (stepResult.usage) {
|
|
2061
2088
|
stepUsage = mergeUsage(stepUsage, stepResult.usage);
|
|
2062
2089
|
}
|
|
2090
|
+
// Cell-3 identity fix: `stepResult.model` is what the SERVER echoed
|
|
2091
|
+
// on the wire (parseSSEStream captures `chunk.model`), which can
|
|
2092
|
+
// differ from the pre-call resolved `modelId` a gateway/router was
|
|
2093
|
+
// asked for. Surfaced via callback rather than the method's return
|
|
2094
|
+
// value so `executeStream` can update the already-returned
|
|
2095
|
+
// `StreamResult` in place (see `onModelObserved` wiring there).
|
|
2096
|
+
if (stepResult.model) {
|
|
2097
|
+
onModelObserved?.(stepResult.model);
|
|
2098
|
+
}
|
|
2063
2099
|
if (stepResult.toolCalls.size === 0) {
|
|
2064
2100
|
break;
|
|
2065
2101
|
}
|
|
@@ -255,6 +255,16 @@ export type StreamLoopArgs = {
|
|
|
255
255
|
* schema was requested, or when tools suppress it.
|
|
256
256
|
*/
|
|
257
257
|
responseFormat?: OpenAICompatResponseFormat;
|
|
258
|
+
/**
|
|
259
|
+
* Fired once per step that echoes a `model` field on the wire (SSE
|
|
260
|
+
* `chunk.model`, captured by `parseSSEStream` into `OpenAICompatSSEResult.model`).
|
|
261
|
+
* Lets the caller learn what the SERVER actually served, distinct from the
|
|
262
|
+
* pre-call resolved/requested `modelId` — a gateway or router can rewrite
|
|
263
|
+
* an alias to a concrete model id. Not called when a step's response omits
|
|
264
|
+
* `model` (some backends don't echo it), so the caller must keep its own
|
|
265
|
+
* fallback.
|
|
266
|
+
*/
|
|
267
|
+
onModelObserved?: (model: string) => void;
|
|
258
268
|
};
|
|
259
269
|
export type OpenAICompatBuildBodyArgs = {
|
|
260
270
|
modelId: string;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export type CatalogProviderName = "api-route" | "baseten" | "cerebras" | "cloudflare" | "deepseek" | "fireworks" | "friendli" | "gmicloud" | "groq" | "huggingface" | "inception-labs" | "io-intelligence" | "mancer" | "mistral" | "morph" | "novita" | "perplexity" | "sambanova" | "together-ai" | "upstage" | "xai";
|
|
2
|
-
export type CatalogCredentialKey = "apiRoute" | "baseten" | "cerebras" | "cloudflare" | "deepseek" | "fireworks" | "friendli" | "gmicloud" | "groq" | "huggingFace" | "inceptionLabs" | "ioIntelligence" | "mancer" | "mistral" | "morph" | "novita" | "perplexity" | "sambanova" | "together" | "upstage" | "xai";
|
|
1
|
+
export type CatalogProviderName = "above-dev" | "aiand" | "ambient" | "api-route" | "baseten" | "bee-heossi" | "cerebras" | "charm-hyper" | "chutes" | "cloudflare" | "deepinfra" | "deepseek" | "empiriolabs" | "featherless-ai" | "fireworks" | "friendli" | "gmicloud" | "groq" | "huggingface" | "inception-labs" | "inco" | "inference-net" | "io-intelligence" | "koscompute" | "lilac" | "llmtech" | "mancer" | "mistral" | "moark" | "morph" | "neuralwatt" | "novita" | "ovhcloud" | "pareto-inference" | "perplexity" | "sambanova" | "sarvam" | "synthetic" | "together-ai" | "upstage" | "xai";
|
|
2
|
+
export type CatalogCredentialKey = "aboveDev" | "aiand" | "ambient" | "apiRoute" | "baseten" | "beeHeossi" | "cerebras" | "charmHyper" | "chutes" | "cloudflare" | "deepinfra" | "deepseek" | "empiriolabs" | "featherlessAi" | "fireworks" | "friendli" | "gmicloud" | "groq" | "huggingFace" | "inceptionLabs" | "inco" | "inferenceNet" | "ioIntelligence" | "koscompute" | "lilac" | "llmtech" | "mancer" | "mistral" | "moark" | "morph" | "neuralwatt" | "novita" | "ovhcloud" | "paretoInference" | "perplexity" | "sambanova" | "sarvam" | "synthetic" | "together" | "upstage" | "xai";
|
|
@@ -172,6 +172,18 @@ export type NeurolinkCredentials = {
|
|
|
172
172
|
apiKey?: string;
|
|
173
173
|
baseURL?: string;
|
|
174
174
|
};
|
|
175
|
+
aboveDev?: {
|
|
176
|
+
apiKey?: string;
|
|
177
|
+
baseURL?: string;
|
|
178
|
+
};
|
|
179
|
+
aiand?: {
|
|
180
|
+
apiKey?: string;
|
|
181
|
+
baseURL?: string;
|
|
182
|
+
};
|
|
183
|
+
ambient?: {
|
|
184
|
+
apiKey?: string;
|
|
185
|
+
baseURL?: string;
|
|
186
|
+
};
|
|
175
187
|
apiRoute?: {
|
|
176
188
|
apiKey?: string;
|
|
177
189
|
baseURL?: string;
|
|
@@ -180,19 +192,43 @@ export type NeurolinkCredentials = {
|
|
|
180
192
|
apiKey?: string;
|
|
181
193
|
baseURL?: string;
|
|
182
194
|
};
|
|
195
|
+
beeHeossi?: {
|
|
196
|
+
apiKey?: string;
|
|
197
|
+
baseURL?: string;
|
|
198
|
+
};
|
|
183
199
|
cerebras?: {
|
|
184
200
|
apiKey?: string;
|
|
185
201
|
baseURL?: string;
|
|
186
202
|
};
|
|
203
|
+
charmHyper?: {
|
|
204
|
+
apiKey?: string;
|
|
205
|
+
baseURL?: string;
|
|
206
|
+
};
|
|
207
|
+
chutes?: {
|
|
208
|
+
apiKey?: string;
|
|
209
|
+
baseURL?: string;
|
|
210
|
+
};
|
|
187
211
|
cloudflare?: {
|
|
188
212
|
apiKey?: string;
|
|
189
213
|
baseURL?: string;
|
|
190
214
|
accountId?: string;
|
|
191
215
|
};
|
|
216
|
+
deepinfra?: {
|
|
217
|
+
apiKey?: string;
|
|
218
|
+
baseURL?: string;
|
|
219
|
+
};
|
|
192
220
|
deepseek?: {
|
|
193
221
|
apiKey?: string;
|
|
194
222
|
baseURL?: string;
|
|
195
223
|
};
|
|
224
|
+
empiriolabs?: {
|
|
225
|
+
apiKey?: string;
|
|
226
|
+
baseURL?: string;
|
|
227
|
+
};
|
|
228
|
+
featherlessAi?: {
|
|
229
|
+
apiKey?: string;
|
|
230
|
+
baseURL?: string;
|
|
231
|
+
};
|
|
196
232
|
fireworks?: {
|
|
197
233
|
apiKey?: string;
|
|
198
234
|
baseURL?: string;
|
|
@@ -217,10 +253,30 @@ export type NeurolinkCredentials = {
|
|
|
217
253
|
apiKey?: string;
|
|
218
254
|
baseURL?: string;
|
|
219
255
|
};
|
|
256
|
+
inco?: {
|
|
257
|
+
apiKey?: string;
|
|
258
|
+
baseURL?: string;
|
|
259
|
+
};
|
|
260
|
+
inferenceNet?: {
|
|
261
|
+
apiKey?: string;
|
|
262
|
+
baseURL?: string;
|
|
263
|
+
};
|
|
220
264
|
ioIntelligence?: {
|
|
221
265
|
apiKey?: string;
|
|
222
266
|
baseURL?: string;
|
|
223
267
|
};
|
|
268
|
+
koscompute?: {
|
|
269
|
+
apiKey?: string;
|
|
270
|
+
baseURL?: string;
|
|
271
|
+
};
|
|
272
|
+
lilac?: {
|
|
273
|
+
apiKey?: string;
|
|
274
|
+
baseURL?: string;
|
|
275
|
+
};
|
|
276
|
+
llmtech?: {
|
|
277
|
+
apiKey?: string;
|
|
278
|
+
baseURL?: string;
|
|
279
|
+
};
|
|
224
280
|
mancer?: {
|
|
225
281
|
apiKey?: string;
|
|
226
282
|
baseURL?: string;
|
|
@@ -229,14 +285,30 @@ export type NeurolinkCredentials = {
|
|
|
229
285
|
apiKey?: string;
|
|
230
286
|
baseURL?: string;
|
|
231
287
|
};
|
|
288
|
+
moark?: {
|
|
289
|
+
apiKey?: string;
|
|
290
|
+
baseURL?: string;
|
|
291
|
+
};
|
|
232
292
|
morph?: {
|
|
233
293
|
apiKey?: string;
|
|
234
294
|
baseURL?: string;
|
|
235
295
|
};
|
|
296
|
+
neuralwatt?: {
|
|
297
|
+
apiKey?: string;
|
|
298
|
+
baseURL?: string;
|
|
299
|
+
};
|
|
236
300
|
novita?: {
|
|
237
301
|
apiKey?: string;
|
|
238
302
|
baseURL?: string;
|
|
239
303
|
};
|
|
304
|
+
ovhcloud?: {
|
|
305
|
+
apiKey?: string;
|
|
306
|
+
baseURL?: string;
|
|
307
|
+
};
|
|
308
|
+
paretoInference?: {
|
|
309
|
+
apiKey?: string;
|
|
310
|
+
baseURL?: string;
|
|
311
|
+
};
|
|
240
312
|
perplexity?: {
|
|
241
313
|
apiKey?: string;
|
|
242
314
|
baseURL?: string;
|
|
@@ -245,6 +317,14 @@ export type NeurolinkCredentials = {
|
|
|
245
317
|
apiKey?: string;
|
|
246
318
|
baseURL?: string;
|
|
247
319
|
};
|
|
320
|
+
sarvam?: {
|
|
321
|
+
apiKey?: string;
|
|
322
|
+
baseURL?: string;
|
|
323
|
+
};
|
|
324
|
+
synthetic?: {
|
|
325
|
+
apiKey?: string;
|
|
326
|
+
baseURL?: string;
|
|
327
|
+
};
|
|
248
328
|
together?: {
|
|
249
329
|
apiKey?: string;
|
|
250
330
|
baseURL?: string;
|