@juspay/neurolink 12.41.10 → 12.42.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.
Files changed (37) hide show
  1. package/CHANGELOG.md +3 -3
  2. package/README.md +2 -2
  3. package/dist/browser/neurolink.min.js +406 -406
  4. package/dist/constants/enums.d.ts +195 -0
  5. package/dist/constants/enums.js +214 -0
  6. package/dist/providers/catalog/arcee.json +212 -0
  7. package/dist/providers/catalog/baidu-qianfan.json +170 -0
  8. package/dist/providers/catalog/byteplus-modelark.json +246 -0
  9. package/dist/providers/catalog/bytez.json +87 -0
  10. package/dist/providers/catalog/dashscope.json +165 -0
  11. package/dist/providers/catalog/gradientai.json +238 -0
  12. package/dist/providers/catalog/hetzner-inference.json +83 -0
  13. package/dist/providers/catalog/inceptron.json +145 -0
  14. package/dist/providers/catalog/index.generated.d.ts +1 -1
  15. package/dist/providers/catalog/index.generated.js +57 -0
  16. package/dist/providers/catalog/lemonfox-ai.json +78 -0
  17. package/dist/providers/catalog/loader.js +3 -0
  18. package/dist/providers/catalog/meta-model-api.json +150 -0
  19. package/dist/providers/catalog/modelscope.json +146 -0
  20. package/dist/providers/catalog/parasail.json +251 -0
  21. package/dist/providers/catalog/poolside.json +79 -0
  22. package/dist/providers/catalog/provider-catalog.schema.json +5 -0
  23. package/dist/providers/catalog/reka.json +112 -0
  24. package/dist/providers/catalog/sakana-ai.json +162 -0
  25. package/dist/providers/catalog/schema.d.ts +1 -0
  26. package/dist/providers/catalog/schema.js +1 -0
  27. package/dist/providers/catalog/stackit.json +126 -0
  28. package/dist/providers/catalog/telnyx.json +181 -0
  29. package/dist/providers/catalog/thinking-machines.json +212 -0
  30. package/dist/providers/catalog/vispark.json +109 -0
  31. package/dist/providers/configuredOpenAICompat.d.ts +9 -0
  32. package/dist/providers/configuredOpenAICompat.js +14 -0
  33. package/dist/types/providerCatalog.d.ts +9 -0
  34. package/dist/types/providerCatalog.generated.d.ts +2 -2
  35. package/dist/types/providers.d.ts +80 -0
  36. package/docs-site/static/search-index.json +211 -2
  37. package/package.json +2 -1
@@ -0,0 +1,145 @@
1
+ {
2
+ "$schema": "./provider-catalog.schema.json",
3
+ "id": "inceptron",
4
+ "displayName": "Inceptron",
5
+ "aliases": [],
6
+ "tier": 2,
7
+ "wire": {
8
+ "baseURL": "https://api.inceptron.io/v1"
9
+ },
10
+ "models": {
11
+ "default": "zai-org/GLM-5.3",
12
+ "fallbacks": [
13
+ "moonshotai/Kimi-K2.6",
14
+ "deepseek-ai/DeepSeek-V4-Flash-0731",
15
+ "zai-org/GLM-5.2"
16
+ ],
17
+ "defaultContextWindow": 128000,
18
+ "defaultMaxOutputTokens": 16384,
19
+ "catalog": {
20
+ "zai-org/GLM-5.3": {
21
+ "contextWindow": 1048576,
22
+ "pricingPerMTok": {
23
+ "input": 1.4,
24
+ "output": 4.4,
25
+ "cachedInput": 0.26
26
+ },
27
+ "vision": false,
28
+ "status": "production",
29
+ "description": "NeuroLink default. The model named in the code examples on the vendor's docs Get Started page (https://docs.inceptron.io), Introduction (https://docs.inceptron.io/introduction), Chat Completions API Reference (https://docs.inceptron.io/API%20Reference/chat-completions), Error Handling and Handling Streaming Responses pages, and in the Kilo Code and OpenCode config (\"model\": \"inceptron/zai-org/GLM-5.3\") on https://docs.inceptron.io/Guides/kilo-code, which states: \"GLM-5.3 supports a 1M-token context window (1,048,576 tokens)\". The config block on that page has \"limit\" set to context 1048576 and output 1048576. Models page https://www.inceptron.io/models (2026-09-29): tags text, code, tool-calling, reasoning; 1M context; quantization fp4; size 754B; input $1.40, output $4.40 and cache read $0.26 per 1M tokens. The docs Models API Reference (https://docs.inceptron.io/API%20Reference/models) lists it with Deployment Mode Serverless. Roster (unauthenticated GET https://api.inceptron.io/v1/models, 2026-09-29): context_length 1048576, max_output_length 1048576, input_modalities [\"text\"], supported_features chat, completion, tools, reasoning, json_mode, structured_outputs. vision is false because the roster input_modalities is [\"text\"]."
30
+ },
31
+ "moonshotai/Kimi-K2.6": {
32
+ "contextWindow": 262144,
33
+ "pricingPerMTok": {
34
+ "input": 0.73,
35
+ "output": 3.5,
36
+ "cachedInput": 0.25
37
+ },
38
+ "vision": true,
39
+ "status": "production",
40
+ "description": "NeuroLink fallback. The model named in the tool-calling examples on https://docs.inceptron.io/Guides/tool-calling and https://docs.inceptron.io/API%20Reference/chat-completions (request, response and streamed tool-call response examples). Models page https://www.inceptron.io/models (2026-09-29): tags multimodal, tool-calling, reasoning; 262K context; quantization Int4; size 1T; input $0.73, output $3.50 and cache read $0.25 per 1M tokens. The docs Models API Reference (https://docs.inceptron.io/API%20Reference/models) lists it with Deployment Mode Serverless. Roster (unauthenticated GET https://api.inceptron.io/v1/models, 2026-09-29): context_length 262144, max_output_length 262144, input_modalities [\"text\",\"image\"], supported_features chat, completion, tools, reasoning, logprobs, json_mode, structured_outputs. vision is true from the models page tag multimodal and the roster input_modalities; an image request was not exercised live."
41
+ },
42
+ "deepseek-ai/DeepSeek-V4-Flash-0731": {
43
+ "contextWindow": 1048576,
44
+ "pricingPerMTok": {
45
+ "input": 0.13,
46
+ "output": 0.28,
47
+ "cachedInput": 0.03
48
+ },
49
+ "vision": false,
50
+ "status": "production",
51
+ "description": "NeuroLink fallback. Listed among the currently supported Inceptron model IDs on https://docs.inceptron.io/Guides/kilo-code and with Deployment Mode Serverless on the docs Models API Reference (https://docs.inceptron.io/API%20Reference/models). Models page https://www.inceptron.io/models (2026-09-29): tags text, code, tool-calling, reasoning; 1M context; quantization fp4; size 284B; input $0.13, output $0.28 and cache read $0.03 per 1M tokens. Roster (unauthenticated GET https://api.inceptron.io/v1/models, 2026-09-29): context_length 1048576, max_output_length 1048576, input_modalities [\"text\"], supported_features chat, completion, tools, reasoning, logprobs, json_mode, structured_outputs. vision is false because the roster input_modalities is [\"text\"]."
52
+ },
53
+ "zai-org/GLM-5.2": {
54
+ "contextWindow": 1048576,
55
+ "pricingPerMTok": {
56
+ "input": 1.2,
57
+ "output": 4.2,
58
+ "cachedInput": 0.26
59
+ },
60
+ "vision": false,
61
+ "status": "production",
62
+ "description": "NeuroLink fallback. Listed among the currently supported Inceptron model IDs on https://docs.inceptron.io/Guides/kilo-code and with Deployment Mode Serverless on the docs Models API Reference (https://docs.inceptron.io/API%20Reference/models). Models page https://www.inceptron.io/models (2026-09-29): tags text, code, tool-calling, reasoning; 1M context; quantization fp4; size 754B; input $1.20, output $4.20 and cache read $0.26 per 1M tokens. Roster (unauthenticated GET https://api.inceptron.io/v1/models, 2026-09-29): context_length 1048576, max_output_length 1048576, input_modalities [\"text\"], supported_features chat, completion, tools, reasoning, logprobs, json_mode, structured_outputs. vision is false because the roster input_modalities is [\"text\"]."
63
+ },
64
+ "moonshotai/Kimi-K2.7-Code": {
65
+ "contextWindow": 262144,
66
+ "pricingPerMTok": {
67
+ "input": 0.75,
68
+ "output": 3.5,
69
+ "cachedInput": 0.2
70
+ },
71
+ "vision": true,
72
+ "status": "production",
73
+ "description": "Listed among the currently supported Inceptron model IDs on https://docs.inceptron.io/Guides/kilo-code and with Deployment Mode Serverless on the docs Models API Reference (https://docs.inceptron.io/API%20Reference/models). Models page https://www.inceptron.io/models (2026-09-29): tags multimodal, tool-calling, reasoning; 262K context; quantization Int4; size 1T; input $0.75, output $3.50 and cache read $0.20 per 1M tokens. Roster (unauthenticated GET https://api.inceptron.io/v1/models, 2026-09-29): context_length 262144, max_output_length 262144, input_modalities [\"text\",\"image\"], supported_features chat, completion, tools, reasoning, logprobs, json_mode, structured_outputs. vision is true from the models page tag multimodal and the roster input_modalities; an image request was not exercised live."
74
+ },
75
+ "zai-org/GLM-5.3-Flash": {
76
+ "contextWindow": 1048576,
77
+ "pricingPerMTok": {
78
+ "input": 0.15,
79
+ "output": 0.5,
80
+ "cachedInput": 0.07
81
+ },
82
+ "vision": false,
83
+ "status": "production",
84
+ "description": "The vendor homepage (https://www.inceptron.io) shows the text \"Try GLM 5.3 Flash\". Models page https://www.inceptron.io/models (2026-09-29): tags text, code, tool-calling, reasoning; \"1.3M context\"; quantization fp8; size 753B; input $0.15, output $0.50 and cache read $0.07 per 1M tokens. Roster (unauthenticated GET https://api.inceptron.io/v1/models, 2026-09-29): context_length 1048576 (contextWindow uses this figure), max_output_length 1048576, input_modalities [\"text\"], supported_features chat, completion, tools, reasoning, json_mode, structured_outputs. vision is false because the roster input_modalities is [\"text\"]."
85
+ }
86
+ },
87
+ "topModels": [
88
+ "zai-org/GLM-5.3",
89
+ "moonshotai/Kimi-K2.6",
90
+ "deepseek-ai/DeepSeek-V4-Flash-0731",
91
+ "zai-org/GLM-5.2",
92
+ "moonshotai/Kimi-K2.7-Code",
93
+ "zai-org/GLM-5.3-Flash"
94
+ ],
95
+ "visionModel": "moonshotai/Kimi-K2.6"
96
+ },
97
+ "capabilities": {
98
+ "text": true,
99
+ "streaming": true,
100
+ "tools": true,
101
+ "toolsWithStreaming": true,
102
+ "structuredOutput": false,
103
+ "structuredOutputWithTools": false,
104
+ "embeddings": false,
105
+ "thinking": false
106
+ },
107
+ "errorRules": [
108
+ {
109
+ "status": 401,
110
+ "class": "authentication",
111
+ "message": "Inceptron returned HTTP 401 unauthorized. The vendor's Error Handling page (https://docs.inceptron.io/Guides/error-handling) describes 401 as: Your API key is missing, invalid, or disabled. NeuroLink reads {apiKeyEnvVar}; keys come from {setupUrl}"
112
+ },
113
+ {
114
+ "status": 429,
115
+ "class": "rate-limit",
116
+ "message": "Inceptron returned HTTP 429. The vendor's Error Handling page (https://docs.inceptron.io/Guides/error-handling) describes 429 as: You have exceeded your rate limit."
117
+ }
118
+ ],
119
+ "setup": {
120
+ "url": "https://console.inceptron.io",
121
+ "apiKeyFormat": null,
122
+ "billingPolicy": "no-free-tier",
123
+ "instructions": [
124
+ "1. Visit: https://console.inceptron.io and sign in or sign up — the sign-in page shows Continue with Google, Continue with GitHub and Sign in with email, and links to https://console.inceptron.io/auth/signup",
125
+ "2. Create an API key — the Introduction page says: \"After signing up, navigate to the account section of the dashboard to create an API key.\" (https://docs.inceptron.io/introduction)",
126
+ "3. Set {apiKeyEnvVar} in your .env file (the docs' examples read INCEPTRON_API_KEY)"
127
+ ],
128
+ "description": "OpenAI-compatible endpoint at https://api.inceptron.io/v1 (https://docs.inceptron.io/API%20Reference/chat-completions: \"Our API is compliant with OpenAI's Chat Completions API\"), with the 6 models the unauthenticated GET /models roster listed on 2026-09-29 in models.catalog. An unauthenticated GET of https://api.inceptron.io/v1/chat/completions returned HTTP 401 with error.type invalid_request_error and error.code unauthorized (2026-09-29), so errorRules match status 401; the 429 rule uses the status the vendor's Error Handling page lists. pricingPerMTok is taken from the models page https://www.inceptron.io/models (2026-09-29); the pricing field in the roster response carries different values. models.defaultContextWindow (128000) and models.defaultMaxOutputTokens (16384) are NeuroLink placeholders for model ids outside models.catalog, not vendor figures; the roster max_output_length values are quoted in the models.catalog descriptions and no per-model maxOutputTokens is set. Each model's status field holds production, a placeholder for a value the catalog schema requires; it is not a vendor statement. billingPolicy no-free-tier is a schema placeholder (the schema has no unknown value), not a vendor statement. Verification level: docs- and roster-verified, not yet live-verified."
129
+ },
130
+ "evidence": {
131
+ "rosterVerified": {
132
+ "date": "2026-09-29",
133
+ "status": 200,
134
+ "method": "unauthenticated GET https://api.inceptron.io/v1/models — 6 models; credential-free, no key used"
135
+ },
136
+ "authProbe": {
137
+ "date": "2026-09-29",
138
+ "status": 401,
139
+ "code": "unauthorized",
140
+ "method": "unauthenticated GET https://api.inceptron.io/v1/chat/completions — error.type invalid_request_error; credential-free, no key used"
141
+ },
142
+ "liveMatrix": null,
143
+ "addedInPR": "https://github.com/juspay/neurolink/pull/1862"
144
+ }
145
+ }
@@ -1,3 +1,3 @@
1
1
  import type { ProviderCatalogJson } from "../../types/index.js";
2
2
  export declare const CATALOG_JSON_ENTRIES: ProviderCatalogJson[];
3
- export declare const CATALOG_PROVIDER_IDS: readonly ["above-dev", "ai21", "aiand", "aionlabs", "ambient", "api-route", "atlas-cloud", "avian-io", "baseten", "bee-heossi", "cerebras", "charm-hyper", "chutes", "cloudflare", "crusoe", "deepinfra", "deepseek", "empiriolabs", "featherless-ai", "fireworks", "friendli", "gmicloud", "groq", "huggingface", "inception-labs", "inco", "inference-net", "io-intelligence", "koscompute", "lilac", "llmtech", "mancer", "minimax", "mistral", "moark", "moonshot-ai", "morph", "nebius", "neuralwatt", "novita", "ovhcloud", "pareto-inference", "perplexity", "prime-intellect", "sambanova", "sarvam", "scaleway", "siliconflow", "stepfun", "subconscious", "synthetic", "tinfoil", "together-ai", "umans-ai", "upstage", "venice-ai", "vultr-inference", "wafer", "wandb-inference", "xai", "z-ai"];
3
+ export declare const CATALOG_PROVIDER_IDS: readonly ["above-dev", "ai21", "aiand", "aionlabs", "ambient", "api-route", "arcee", "atlas-cloud", "avian-io", "baidu-qianfan", "baseten", "bee-heossi", "byteplus-modelark", "bytez", "cerebras", "charm-hyper", "chutes", "cloudflare", "crusoe", "dashscope", "deepinfra", "deepseek", "empiriolabs", "featherless-ai", "fireworks", "friendli", "gmicloud", "gradientai", "groq", "hetzner-inference", "huggingface", "inception-labs", "inceptron", "inco", "inference-net", "io-intelligence", "koscompute", "lemonfox-ai", "lilac", "llmtech", "mancer", "meta-model-api", "minimax", "mistral", "moark", "modelscope", "moonshot-ai", "morph", "nebius", "neuralwatt", "novita", "ovhcloud", "parasail", "pareto-inference", "perplexity", "poolside", "prime-intellect", "reka", "sakana-ai", "sambanova", "sarvam", "scaleway", "siliconflow", "stackit", "stepfun", "subconscious", "synthetic", "telnyx", "thinking-machines", "tinfoil", "together-ai", "umans-ai", "upstage", "venice-ai", "vispark", "vultr-inference", "wafer", "wandb-inference", "xai", "z-ai"];
@@ -6,15 +6,20 @@ import aiandJson from "./aiand.json" with { type: "json" };
6
6
  import aionlabsJson from "./aionlabs.json" with { type: "json" };
7
7
  import ambientJson from "./ambient.json" with { type: "json" };
8
8
  import apiRouteJson from "./api-route.json" with { type: "json" };
9
+ import arceeJson from "./arcee.json" with { type: "json" };
9
10
  import atlasCloudJson from "./atlas-cloud.json" with { type: "json" };
10
11
  import avianIoJson from "./avian-io.json" with { type: "json" };
12
+ import baiduQianfanJson from "./baidu-qianfan.json" with { type: "json" };
11
13
  import basetenJson from "./baseten.json" with { type: "json" };
12
14
  import beeHeossiJson from "./bee-heossi.json" with { type: "json" };
15
+ import byteplusModelarkJson from "./byteplus-modelark.json" with { type: "json" };
16
+ import bytezJson from "./bytez.json" with { type: "json" };
13
17
  import cerebrasJson from "./cerebras.json" with { type: "json" };
14
18
  import charmHyperJson from "./charm-hyper.json" with { type: "json" };
15
19
  import chutesJson from "./chutes.json" with { type: "json" };
16
20
  import cloudflareJson from "./cloudflare.json" with { type: "json" };
17
21
  import crusoeJson from "./crusoe.json" with { type: "json" };
22
+ import dashscopeJson from "./dashscope.json" with { type: "json" };
18
23
  import deepinfraJson from "./deepinfra.json" with { type: "json" };
19
24
  import deepseekJson from "./deepseek.json" with { type: "json" };
20
25
  import empiriolabsJson from "./empiriolabs.json" with { type: "json" };
@@ -22,40 +27,54 @@ import featherlessAiJson from "./featherless-ai.json" with { type: "json" };
22
27
  import fireworksJson from "./fireworks.json" with { type: "json" };
23
28
  import friendliJson from "./friendli.json" with { type: "json" };
24
29
  import gmicloudJson from "./gmicloud.json" with { type: "json" };
30
+ import gradientaiJson from "./gradientai.json" with { type: "json" };
25
31
  import groqJson from "./groq.json" with { type: "json" };
32
+ import hetznerInferenceJson from "./hetzner-inference.json" with { type: "json" };
26
33
  import huggingfaceJson from "./huggingface.json" with { type: "json" };
27
34
  import inceptionLabsJson from "./inception-labs.json" with { type: "json" };
35
+ import inceptronJson from "./inceptron.json" with { type: "json" };
28
36
  import incoJson from "./inco.json" with { type: "json" };
29
37
  import inferenceNetJson from "./inference-net.json" with { type: "json" };
30
38
  import ioIntelligenceJson from "./io-intelligence.json" with { type: "json" };
31
39
  import koscomputeJson from "./koscompute.json" with { type: "json" };
40
+ import lemonfoxAiJson from "./lemonfox-ai.json" with { type: "json" };
32
41
  import lilacJson from "./lilac.json" with { type: "json" };
33
42
  import llmtechJson from "./llmtech.json" with { type: "json" };
34
43
  import mancerJson from "./mancer.json" with { type: "json" };
44
+ import metaModelApiJson from "./meta-model-api.json" with { type: "json" };
35
45
  import minimaxJson from "./minimax.json" with { type: "json" };
36
46
  import mistralJson from "./mistral.json" with { type: "json" };
37
47
  import moarkJson from "./moark.json" with { type: "json" };
48
+ import modelscopeJson from "./modelscope.json" with { type: "json" };
38
49
  import moonshotAiJson from "./moonshot-ai.json" with { type: "json" };
39
50
  import morphJson from "./morph.json" with { type: "json" };
40
51
  import nebiusJson from "./nebius.json" with { type: "json" };
41
52
  import neuralwattJson from "./neuralwatt.json" with { type: "json" };
42
53
  import novitaJson from "./novita.json" with { type: "json" };
43
54
  import ovhcloudJson from "./ovhcloud.json" with { type: "json" };
55
+ import parasailJson from "./parasail.json" with { type: "json" };
44
56
  import paretoInferenceJson from "./pareto-inference.json" with { type: "json" };
45
57
  import perplexityJson from "./perplexity.json" with { type: "json" };
58
+ import poolsideJson from "./poolside.json" with { type: "json" };
46
59
  import primeIntellectJson from "./prime-intellect.json" with { type: "json" };
60
+ import rekaJson from "./reka.json" with { type: "json" };
61
+ import sakanaAiJson from "./sakana-ai.json" with { type: "json" };
47
62
  import sambanovaJson from "./sambanova.json" with { type: "json" };
48
63
  import sarvamJson from "./sarvam.json" with { type: "json" };
49
64
  import scalewayJson from "./scaleway.json" with { type: "json" };
50
65
  import siliconflowJson from "./siliconflow.json" with { type: "json" };
66
+ import stackitJson from "./stackit.json" with { type: "json" };
51
67
  import stepfunJson from "./stepfun.json" with { type: "json" };
52
68
  import subconsciousJson from "./subconscious.json" with { type: "json" };
53
69
  import syntheticJson from "./synthetic.json" with { type: "json" };
70
+ import telnyxJson from "./telnyx.json" with { type: "json" };
71
+ import thinkingMachinesJson from "./thinking-machines.json" with { type: "json" };
54
72
  import tinfoilJson from "./tinfoil.json" with { type: "json" };
55
73
  import togetherAiJson from "./together-ai.json" with { type: "json" };
56
74
  import umansAiJson from "./umans-ai.json" with { type: "json" };
57
75
  import upstageJson from "./upstage.json" with { type: "json" };
58
76
  import veniceAiJson from "./venice-ai.json" with { type: "json" };
77
+ import visparkJson from "./vispark.json" with { type: "json" };
59
78
  import vultrInferenceJson from "./vultr-inference.json" with { type: "json" };
60
79
  import waferJson from "./wafer.json" with { type: "json" };
61
80
  import wandbInferenceJson from "./wandb-inference.json" with { type: "json" };
@@ -68,15 +87,20 @@ export const CATALOG_JSON_ENTRIES = [
68
87
  aionlabsJson,
69
88
  ambientJson,
70
89
  apiRouteJson,
90
+ arceeJson,
71
91
  atlasCloudJson,
72
92
  avianIoJson,
93
+ baiduQianfanJson,
73
94
  basetenJson,
74
95
  beeHeossiJson,
96
+ byteplusModelarkJson,
97
+ bytezJson,
75
98
  cerebrasJson,
76
99
  charmHyperJson,
77
100
  chutesJson,
78
101
  cloudflareJson,
79
102
  crusoeJson,
103
+ dashscopeJson,
80
104
  deepinfraJson,
81
105
  deepseekJson,
82
106
  empiriolabsJson,
@@ -84,40 +108,54 @@ export const CATALOG_JSON_ENTRIES = [
84
108
  fireworksJson,
85
109
  friendliJson,
86
110
  gmicloudJson,
111
+ gradientaiJson,
87
112
  groqJson,
113
+ hetznerInferenceJson,
88
114
  huggingfaceJson,
89
115
  inceptionLabsJson,
116
+ inceptronJson,
90
117
  incoJson,
91
118
  inferenceNetJson,
92
119
  ioIntelligenceJson,
93
120
  koscomputeJson,
121
+ lemonfoxAiJson,
94
122
  lilacJson,
95
123
  llmtechJson,
96
124
  mancerJson,
125
+ metaModelApiJson,
97
126
  minimaxJson,
98
127
  mistralJson,
99
128
  moarkJson,
129
+ modelscopeJson,
100
130
  moonshotAiJson,
101
131
  morphJson,
102
132
  nebiusJson,
103
133
  neuralwattJson,
104
134
  novitaJson,
105
135
  ovhcloudJson,
136
+ parasailJson,
106
137
  paretoInferenceJson,
107
138
  perplexityJson,
139
+ poolsideJson,
108
140
  primeIntellectJson,
141
+ rekaJson,
142
+ sakanaAiJson,
109
143
  sambanovaJson,
110
144
  sarvamJson,
111
145
  scalewayJson,
112
146
  siliconflowJson,
147
+ stackitJson,
113
148
  stepfunJson,
114
149
  subconsciousJson,
115
150
  syntheticJson,
151
+ telnyxJson,
152
+ thinkingMachinesJson,
116
153
  tinfoilJson,
117
154
  togetherAiJson,
118
155
  umansAiJson,
119
156
  upstageJson,
120
157
  veniceAiJson,
158
+ visparkJson,
121
159
  vultrInferenceJson,
122
160
  waferJson,
123
161
  wandbInferenceJson,
@@ -131,15 +169,20 @@ export const CATALOG_PROVIDER_IDS = [
131
169
  "aionlabs",
132
170
  "ambient",
133
171
  "api-route",
172
+ "arcee",
134
173
  "atlas-cloud",
135
174
  "avian-io",
175
+ "baidu-qianfan",
136
176
  "baseten",
137
177
  "bee-heossi",
178
+ "byteplus-modelark",
179
+ "bytez",
138
180
  "cerebras",
139
181
  "charm-hyper",
140
182
  "chutes",
141
183
  "cloudflare",
142
184
  "crusoe",
185
+ "dashscope",
143
186
  "deepinfra",
144
187
  "deepseek",
145
188
  "empiriolabs",
@@ -147,40 +190,54 @@ export const CATALOG_PROVIDER_IDS = [
147
190
  "fireworks",
148
191
  "friendli",
149
192
  "gmicloud",
193
+ "gradientai",
150
194
  "groq",
195
+ "hetzner-inference",
151
196
  "huggingface",
152
197
  "inception-labs",
198
+ "inceptron",
153
199
  "inco",
154
200
  "inference-net",
155
201
  "io-intelligence",
156
202
  "koscompute",
203
+ "lemonfox-ai",
157
204
  "lilac",
158
205
  "llmtech",
159
206
  "mancer",
207
+ "meta-model-api",
160
208
  "minimax",
161
209
  "mistral",
162
210
  "moark",
211
+ "modelscope",
163
212
  "moonshot-ai",
164
213
  "morph",
165
214
  "nebius",
166
215
  "neuralwatt",
167
216
  "novita",
168
217
  "ovhcloud",
218
+ "parasail",
169
219
  "pareto-inference",
170
220
  "perplexity",
221
+ "poolside",
171
222
  "prime-intellect",
223
+ "reka",
224
+ "sakana-ai",
172
225
  "sambanova",
173
226
  "sarvam",
174
227
  "scaleway",
175
228
  "siliconflow",
229
+ "stackit",
176
230
  "stepfun",
177
231
  "subconscious",
178
232
  "synthetic",
233
+ "telnyx",
234
+ "thinking-machines",
179
235
  "tinfoil",
180
236
  "together-ai",
181
237
  "umans-ai",
182
238
  "upstage",
183
239
  "venice-ai",
240
+ "vispark",
184
241
  "vultr-inference",
185
242
  "wafer",
186
243
  "wandb-inference",
@@ -0,0 +1,78 @@
1
+ {
2
+ "$schema": "./provider-catalog.schema.json",
3
+ "id": "lemonfox-ai",
4
+ "displayName": "Lemonfox AI",
5
+ "aliases": ["lemonfox"],
6
+ "tier": 2,
7
+ "wire": {
8
+ "baseURL": "https://api.lemonfox.ai/v1"
9
+ },
10
+ "models": {
11
+ "default": "deepseek-v4-flash",
12
+ "fallbacks": ["mimo-v2.5-pro"],
13
+ "defaultContextWindow": 32768,
14
+ "defaultMaxOutputTokens": 4096,
15
+ "catalog": {
16
+ "deepseek-v4-flash": {
17
+ "contextWindow": 1000000,
18
+ "vision": false,
19
+ "status": "production",
20
+ "description": "NeuroLink default. On https://www.lemonfox.ai/apis/chat (retrieved 2026-09-29) the model parameter reads \"Specify the model ID to be used. Default: deepseek-v4-flash. Also supported: mimo-v2.5-pro.\", the introduction says \"We support state-of-the-art open-source AI models, including DeepSeek V4 Flash (default) and MiMo V2.5 Pro.\", and the model table row reads \"DeepSeek V4 Flash is our default model — fast, cost-effective, and suitable for most tasks. Supports a 1M token context window.\" with \"Price / 1M tokens\" $0.50. contextWindow 1000000 is NeuroLink's decimal reading of \"1M\". The page's JavaScript, Python and Curl examples name this id."
21
+ },
22
+ "mimo-v2.5-pro": {
23
+ "vision": false,
24
+ "status": "production",
25
+ "description": "NeuroLink fallback. On https://www.lemonfox.ai/apis/chat (retrieved 2026-09-29) the model parameter reads \"Specify the model ID to be used. Default: deepseek-v4-flash. Also supported: mimo-v2.5-pro.\", the introduction names \"MiMo V2.5 Pro\", and the model table row reads \"MiMo V2.5 Pro is a powerful model from Xiaomi, recommended for complex reasoning and coding tasks.\" with \"Price / 1M tokens\" $1.25. No contextWindow is set."
26
+ }
27
+ },
28
+ "topModels": ["deepseek-v4-flash", "mimo-v2.5-pro"]
29
+ },
30
+ "capabilities": {
31
+ "text": true,
32
+ "streaming": true,
33
+ "tools": false,
34
+ "toolsWithStreaming": false,
35
+ "structuredOutput": false,
36
+ "structuredOutputWithTools": false,
37
+ "embeddings": false,
38
+ "thinking": false
39
+ },
40
+ "errorRules": [
41
+ {
42
+ "status": 401,
43
+ "class": "authentication",
44
+ "message": "Lemonfox AI answered HTTP 401 (a request with no key gets: \"You didn't provide an API key.\"). Check {apiKeyEnvVar}. Keys: https://lemonfox.ai/apis/keys"
45
+ }
46
+ ],
47
+ "setup": {
48
+ "url": "https://lemonfox.ai/signup",
49
+ "apiKeyFormat": null,
50
+ "billingPolicy": "free-with-card",
51
+ "instructions": [
52
+ "1. Visit: https://lemonfox.ai/signup (the \"Get started\" and \"Start Your Free Trial\" links on https://www.lemonfox.ai/apis/chat both point to /signup); sign-up was not attempted while building this entry",
53
+ "2. Create an API key at https://lemonfox.ai/apis/keys — https://www.lemonfox.ai/apis/chat links \"create an API key\" to that page, and the API's 401 reply says \"You can obtain an API key from https://lemonfox.ai/apis/keys.\"",
54
+ "3. Billing as the vendor states it: https://www.lemonfox.ai/ shows \"Try our APIs for 1 month for free.\"; https://www.lemonfox.ai/apis/chat shows \"First month for free!\" and lists \"Price / 1M tokens\" of $0.50 for deepseek-v4-flash and $1.25 for mimo-v2.5-pro; https://www.lemonfox.ai/terms says Lemon Fox GmbH uses Paddle as its Merchant of Record and offers \"subscription-based pricing and usage-based pricing\"",
55
+ "4. Set {apiKeyEnvVar} in your .env file"
56
+ ],
57
+ "description": "Docs-verified only: the vendor's GET https://api.lemonfox.ai/v1/models needs a key (it answers HTTP 401 without one), so the two model ids come from https://www.lemonfox.ai/apis/chat (retrieved 2026-09-29) and the roster has not been checked; the entry is not yet live-verified. OpenAI-compatible endpoint at https://api.lemonfox.ai/v1: the page says \"Our OpenAI-compatible API takes a list of messages as input and provides an AI-generated (assistant) message as output.\", its JavaScript and Python examples pass baseURL/base_url \"https://api.lemonfox.ai/v1\" to the OpenAI client, its API Parameters section shows POST https://api.lemonfox.ai/v1/chat/completions, and its Curl example sends the header Authorization: Bearer YOUR_API_KEY. Unauthenticated GETs made 2026-09-29: /models, /chat/completions and the base URL /v1 each answered HTTP 401 with the JSON body {\"status\":401,\"error\":{\"message\":\"You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY). You can obtain an API key from https://lemonfox.ai/apis/keys.\",\"type\":\"invalid_request_error\",\"param\":null,\"code\":null}}. No POST request was sent. errorRules holds one rule, for status 401. The page's model table lists deepseek-v4-flash and mimo-v2.5-pro; a second table under the heading \"Deprecated models\" lists llama-8b-chat and llama-70b-chat, each description starting \"Deprecated.\", and those two ids are not in this catalog. models.defaultContextWindow (32768) and models.defaultMaxOutputTokens (4096) are placeholders the vendor does not publish, for model ids outside models.catalog; the page's max_tokens parameter reads \"integer, optional, default: infinity\". deepseek-v4-flash's contextWindow (1000000) is NeuroLink's decimal reading of \"Supports a 1M token context window.\"; mimo-v2.5-pro has no contextWindow set. pricingPerMTok is unset on both models: the model table has one column, \"Price / 1M tokens\" ($0.50 and $1.25), and the catalog field takes separate input and output figures. Each model's vision field holds false, a placeholder for a boolean the catalog schema requires; it is not a vendor statement. Each model's status field holds production, a value the catalog schema requires; the page lists these two models in its main table. capabilities.text is true because the page's examples send a messages array and read choices[0].message.content. capabilities.streaming is true because the page's stream parameter reads \"incremental message updates are transmitted as server-sent events with data-only messages.\" capabilities.tools, toolsWithStreaming, structuredOutput, structuredOutputWithTools, embeddings and thinking are false, meaning not declared by this entry: the page's API Parameters section lists messages, model, max_tokens, stop, stream, frequency_penalty, presence_penalty, temperature and top_p, and no request exercising any capability was sent. billingPolicy holds free-with-card, the growth queue's classification, because the catalog schema has no unknown value and takes one of free-tier, free-with-card and no-free-tier; it is not a vendor statement of signup terms, and the vendor's own wording is in setup.instructions step 3 and evidence.billingProbe. apiKeyFormat is null so NeuroLink's key-format check is not applied."
58
+ },
59
+ "evidence": {
60
+ "rosterVerified": {
61
+ "date": "2026-09-29",
62
+ "status": 401,
63
+ "method": "docs-only — unauthenticated GET https://api.lemonfox.ai/v1/models answers 401 without a key, so model ids are taken from https://www.lemonfox.ai/apis/chat (retrieved 2026-09-29); roster not verified"
64
+ },
65
+ "authProbe": {
66
+ "date": "2026-09-29",
67
+ "status": 401,
68
+ "code": "invalid_request_error",
69
+ "method": "unauthenticated GET https://api.lemonfox.ai/v1/models with no credentials — HTTP 401, content-type application/json; charset=utf-8, JSON body {\"status\":401,\"error\":{\"message\":\"You didn't provide an API key. You need to provide your API key in an Authorization header using Bearer auth (i.e. Authorization: Bearer YOUR_KEY). You can obtain an API key from https://lemonfox.ai/apis/keys.\",\"type\":\"invalid_request_error\",\"param\":null,\"code\":null}}; code records the body's error.type because error.code is null; the same day unauthenticated GETs of https://api.lemonfox.ai/v1/chat/completions and https://api.lemonfox.ai/v1 answered HTTP 401 with a byte-identical body; credential-free, no key used, no POST request sent"
70
+ },
71
+ "billingProbe": {
72
+ "date": "2026-09-29",
73
+ "method": "public pages https://www.lemonfox.ai/ (\"Try our APIs for 1 month for free.\"), https://www.lemonfox.ai/apis/chat (\"First month for free!\", \"Start Your Free Trial\") and https://www.lemonfox.ai/terms (Paddle as Merchant of Record; \"subscription-based pricing and usage-based pricing\"); credential-free, no signup performed"
74
+ },
75
+ "liveMatrix": null,
76
+ "addedInPR": "https://github.com/juspay/neurolink/pull/1862"
77
+ }
78
+ }
@@ -166,6 +166,9 @@ export function buildCatalogEntries() {
166
166
  if (entry.quirks?.replayReasoningContent) {
167
167
  base.replayReasoningContent = true;
168
168
  }
169
+ if (entry.quirks?.authHeaderStyle) {
170
+ base.authHeaderStyle = entry.quirks.authHeaderStyle;
171
+ }
169
172
  return base;
170
173
  });
171
174
  }